这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » =**=手机厂商是怎样往Flash里烧写程序的?=**=

共20条 1/2 1 2 跳转至

=**=手机厂商是怎样往Flash里烧写程序的?=**=

菜鸟
2006-10-08 23:15:43     打赏

手机厂商是怎样往Flash里烧写程序的?

[align=right][color=#000066][此贴子已经被作者于2006-10-9 15:38:16编辑过][/color][/align]



关键词: 手机     厂商     怎样     Flash     里烧     程序    

菜鸟
2006-10-09 20:11:00     打赏
2楼

我也想知道。


菜鸟
2006-10-09 23:08:00     打赏
3楼

前段时间在某手机贴片厂,看到他们通过USB烧写程序 :在PC上接 USB HUB,在HUB上挂了几十个手机,然后通过装在PC上的烧写软件,一次就可以把这些手机全部烧写。

不知道这样烧写的原理是什么呢?烧写手机之前手机里是不是已经有一个可以和USB通信的程序了呢,否则USB怎么和手机通信把数据传输到内存或Flash里呢?如果手机烧写之前里头有一个小的程序,那么这个小程序又是怎么烧写进去呢,编程器?

不知道手机刷机软件能不能一次性的刷几十个手机呢?

============================================================

望高人指点。


菜鸟
2006-10-11 07:44:00     打赏
4楼

我来回答吧:

对一般的手机来说,用的CPU的芯片里都会有片上ROM,另外,还有外部存储FLASH芯片。ROM里面会有一个简单的程序,叫BOOTTRAP,FLASH里有另外一个程序叫BOOTLOADER. BOOTTRAP是上电首先执行的程序,这个程序提供最基本的功能,USB通信和FLASH烧写。HOST可以通过USB和BOOTTRAP交互,发送一定的命令,通过BOOTTRAP来烧写FLASH. BOOTTRAP一般是在出产的时候就固化在手机里面的,可以说是一百年不变。另外一个是BOOTLOADER,BOOTLOADER一般在FLASH里面,BOOTTRAP启动完毕后,会把控制交给BOOTLOADER,BOOTLOADER装载手机软件,然后把控制交给手机软件。BOOTLOADER还有另外的作用-用来升级手机软件。BOOTLOADER一般也不会轻易换。但如果发现BOOTLOADER有很严重的BUG的话,可以通过BOOTTRAP来升级BOOTLOADER.

基本上,就是这么一个结构。每个手机厂商,都会有自己专门的工具的。而且现在的手机厂商越来越重视安全性能,对所有软件都是要加密的,添加数字签名,防止手机软件被修改。


菜鸟
2006-10-11 07:47:00     打赏
5楼

在多说一句:现在有很多开发,都不会设计自己专门的BOOTLOADER,其实BOOTLOADER是很重要的一个环节 - 安全,升级,2个很重要的步骤都是要通过BOOTLADER来完成的。


菜鸟
2006-10-11 21:34:00     打赏
6楼

谢谢twentyone.还有问题请教各位。

1. 如果用rom存储boottrap,因为rom本身不能执行程序,那么cpu又是怎样把这段程序拷贝到内存或其它可以运行程序的介质中去呢?

2. 采用nor flash做非易失存储器的手机,程序可以“芯片内执行”,那么对于采用nand flash做非易失性存储器的的设备来说,nand flash 里的程序是怎样被拷贝到可以执行程序的介质上呢?

像三星的s3c2410 CPU,它支持SDRAM + NAND FLASH 的存储类型,CPU 本身集成4kB sram,cpu 启动时,它会把位于nand flash前4KB的数据拷贝到sram中并运行这段程序,但我不明白CPU是怎样把nand flash的数据拷贝到SRAM 中去的。

[em01][em01][em01]

菜鸟
2006-10-11 21:56:00     打赏
7楼

另外一个问题,也是我在上边提到过的:在PC的一个USB 接口上接 USB HUB,在HUB上挂了几十个手机,通过PC上的烧写软件,同时烧写这些手机。这样的做法走的是什么协议呢,PC上的USB设备驱动程序不能够通过一个USB接口识别这么多设备吧?


菜鸟
2006-10-11 23:13:00     打赏
8楼

1. 听谁说的rom不能执行程序?

2. 你自己都回答了,“它会把位于nand flash前4KB的数据拷贝到sram中并运行这段程序”。


菜鸟
2006-10-12 01:40:00     打赏
9楼

1. 上学时候,我就不大明白为什么有rom(只读存储器)的概念,为什么像eprom,eeprom,flash rom这些明明可写的存储器也归为“rom”;咨询了先生,先生没有给我一个满意的答案。到现在为止,我还没弄清楚rom的概念有多大,目前有多少类存储器可归为rom。由于对基础概念的模糊,今天被版主这么一问,我还真不知道该怎样回答。请版主原谅我的浅薄,在这里向你请教了。

2. 我想知道cpu 是怎样把程序从nand flash 拷贝到sram中的,想了解一下过程、原理。

[align=right][color=#000066][此贴子已经被作者于2006-10-13 10:04:20编辑过][/color][/align]

菜鸟
2006-10-12 18:56:00     打赏
10楼

一般的rom(串行的除外)也是可以随机读取的,因此可以执行程序。

关于从Nand flash启动,前4KB是由nand flash controller自动拷贝的;后续部份由这4KB里的程序拷贝。


共20条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]