自己经历过的几种更新arm设备操作系统的方法
时间:10-02
整理:3721RD
点击:
1)初次接触的嵌入式设备的操作系统是windowsxp,微软的东西,高度集成化,选择模块编译即可,系统保存在一块可以取下来的flash上,特殊的设备和应用程序将编译好的系统烧录到flash上,然后flash放回设备后即可使用。纪念自己接触的第一个嵌入式驱动acpi-sim,驱动很简单就是控制设备上面的几个按键,难点是按键可以在windowsxp系统启动前和启动后按下。
2)下面开始做arm设备,第一款芯片是via的480芯片,时间不长,公司就放弃了这款芯片转而做三星的芯片。系统更新当时主要是通过usb下载。
3)三星的芯片经历很多,不过同一家公司的芯片所以更新方法很类似,usb+dnw下载。后面我们添加了两种方式,1.系统启动完成后,应用程序启动将外插u盘上的系统更新到设备上,不过这部分是其他人完成,只了解大概原理。2.是在eboot启动的特定时间内按下两个按键,而后更新外插U盘上的系统,原理很简单,只要在eboot中能够获得按键中断,读取u盘文件,能够在eboot中向flash进行写操作即可完成此功能。
4)几年wince后自己终于转行android,而且还是进入手机开发,高通的芯片,jteg仿真器烧录是最基础的方法,由于手机基带技术是高通的核心,所以其更新比其他公司的步骤复杂不少。我们自己实现的第一种更新方式:cs(大家可以理解为bootloader,与之对应是kernel编译的bs部分)中判断tf卡中是否有合适的文件存在,有则开始更新。第二种方式:android手机当然也有android系统自己的方法,其核心就是利用android自带的回复出厂设置的功能,在合适地方添加逻辑读tf卡中的img而后更新系统。因为负责这个模块,自己还有幸到上海青浦工厂查找工厂使用这种方法更新失败的原因。
5)到了目前的公司,公司拥有自己的芯片,第一种更新方式是将一个制作好的rom直接烧录到emmc上,其核心是uboot检测到tf卡则将执行交给tf卡,tf卡来完成整个更新工作。第二种方式是自己添加的NFS更新方式,主要是uboot中添加网络和env支持即可,非常适合kernel反复修改测试。第三种方式是uboot读取tf卡中的img来实现更新,与第一种方式不同在于这种方式uboot中可以添加判断,没有特定文件头的img无法更新,而不像第一方式那么暴力直接更新完成。
2)下面开始做arm设备,第一款芯片是via的480芯片,时间不长,公司就放弃了这款芯片转而做三星的芯片。系统更新当时主要是通过usb下载。
3)三星的芯片经历很多,不过同一家公司的芯片所以更新方法很类似,usb+dnw下载。后面我们添加了两种方式,1.系统启动完成后,应用程序启动将外插u盘上的系统更新到设备上,不过这部分是其他人完成,只了解大概原理。2.是在eboot启动的特定时间内按下两个按键,而后更新外插U盘上的系统,原理很简单,只要在eboot中能够获得按键中断,读取u盘文件,能够在eboot中向flash进行写操作即可完成此功能。
4)几年wince后自己终于转行android,而且还是进入手机开发,高通的芯片,jteg仿真器烧录是最基础的方法,由于手机基带技术是高通的核心,所以其更新比其他公司的步骤复杂不少。我们自己实现的第一种更新方式:cs(大家可以理解为bootloader,与之对应是kernel编译的bs部分)中判断tf卡中是否有合适的文件存在,有则开始更新。第二种方式:android手机当然也有android系统自己的方法,其核心就是利用android自带的回复出厂设置的功能,在合适地方添加逻辑读tf卡中的img而后更新系统。因为负责这个模块,自己还有幸到上海青浦工厂查找工厂使用这种方法更新失败的原因。
5)到了目前的公司,公司拥有自己的芯片,第一种更新方式是将一个制作好的rom直接烧录到emmc上,其核心是uboot检测到tf卡则将执行交给tf卡,tf卡来完成整个更新工作。第二种方式是自己添加的NFS更新方式,主要是uboot中添加网络和env支持即可,非常适合kernel反复修改测试。第三种方式是uboot读取tf卡中的img来实现更新,与第一种方式不同在于这种方式uboot中可以添加判断,没有特定文件头的img无法更新,而不像第一方式那么暴力直接更新完成。
66666