s3c2410是三星公司针对嵌入式系统推出的高性价比微处理器,它是基于arm9tdmi内核的16/32位risc处理器,工作主频为200mhz。由于现有的linux系统引入了设备文件的概念,读写串口可以像读写普通文件一样进行操作,非常方便。
一、linux系统的安装
安装过程首先出现欢迎对话框,如上图所示。red hat先后会询问用户使用何种语言、用户使用的键盘类型(默认选项为美式键盘)以及安装软件的位置(选择本地cd -rom)等许多需用户选择的问题。
使用disk druid建立linux文件系统然后通过pc机对开发板进行设置,并执行以下命令,从而对开发板进行内核及文件系统的烧写工作:
此时,关闭开发板电源,接上lcd。重新启动开发板,lcd上将出现qt的定标程序,定标后就进入qt的接口。
二、u-boot启动程序及流程
u-boot是在pc- boot的基础上进化而来的一个开源的嵌i入式boot loader。它主要完成了系统环境的初始化,将后期执行j代码复制到sdram空间,为linux内核的运行提供条件。根据{其功能实现方式的不同可以分为两个阶段。可以通过修改配置应用到其他的开发板上。所以,选择u-boot不仅能应用于s3c2410,而且能为以后在其他开发板上的研究提供基础。
本文选择最常见的版本u-boot -1.1.6为例介绍u- boot的启动和相关移植程序。
1.u-boot运行前期阶段 arm系列处理器在上电或复位时从物理地址ox00000000处开始执行,此处也是第一片flash所使用的存储空间的起始位置,而u-boot就存放在flash的最前端。u - boot第一阶段由汇编语言实现,以达到短小精悍的目的,主要完成系统硬件环境的初始化,其工作流程如下图所示。
u - boot在这一步的启动过程中,需要初始化启动环境,然后完成对后续工作的准备,诸如串口、网口、flash等硬件设备的初始化工作,将kernel映像和根文件系统映像从flash上读到ram空间中,同时调用已经下载好的内核。
2.u-boot运行后期阶段在完成了启动环境初始化时,进入到后期启动阶段。此部分的代码用c语言来实现,以便于实现更复杂的功能和取得更好的代码可读性和可移植性。函数_start_armboot0是执行映像的入口点。
(1 )u-boot必要的初始化工作:系统初始化至少一个串口,以便和终端用户进行i/o输出信息,包括系统信息和操作菜单等;初始化计时器,方便读秒计时;初始化flash,注册flash操作函数,为实现flash读写做准备。在加载程序u- boot中可以通过kermit协议从宿主机接收可烧写的二进制文件,将该文件先放置于sdram中,然后通过norflash操作程序来完成对norflash am29lv160db的擦除,并将文件烧写到norflash中。后期的工作流程如图所示。
(2)使用tftp网络协议下载linux操作系统:在加载程序u-boot中包含tftp网络下载文件方式,其下载速度比kermit协议方式速度快几十倍,可大大节省文件下载时间,极大的简便了嵌入式程序的调试方法。
因为tftp使用udp,而udp使用lp,lp还可以使用其它本地通信方法。因此一个tftp包中会有以下几段:本地媒介头,lp头,数据报头,tftp头,剩下的就是tftp数据了。tftp在lp头中不指定任何数据,但是它使用udp中的源和目标端口以及包长度域。由tftp使用的包标记(tid)在这里被用做端口,因此tid必须介于0—65,535之间。tftp头中包括两上字节的操作码,这个码指出了包的类型,可以根据tftp包格式进行必要的移植工作。
三、u-boot的移植流程
不同的板极硬件配置要求进行u-boot的移植工作,移植u-boot的工作包括添加开发板硬件相关的文件、配置u- boot,然后编译。u-boot -1.1.4版本支持smdk2410开发板,并且smdk2410同样采用s3c2410芯片,因此选取smdk2410作为移植参考,定义目标板需要添加的u-boot:
1.在boarcl/目录下建立目标板目录 由于u- boot中本身支持很多开发板和处理器,所以可以找到和处理器型号相同或相近的开发板,在此基础之上再进行相应的修改。此处选择smdk2410作为模板。
2.创建s3c2410目录及文件,要对makefile进行修改mkdir board/s3c2410
3.通过修改文件smdk2410.h来修改u-boot软硬件配置增加ping命令功能
4.修改2m的flash通过查询相关数据手册中有关flash的地址,并在对应的s3c2410.h文件中找到有关信息。在此要用到一些硬件的知识,最关键的是扇区的计算,由于在arm中flash是按扇区划分的,每个扇区的大小是64k,所以2m就需要32个扇区,但是由数据手册可知s0,s1,s2,s3扇区的大小分别为:16k,8k,8k,32k,所以要加上3个扇区才能得到正确的结果。
四、结论
通过对u-boot的启动流程的详细分析和制作,不仅对其有一个整体的了解,而且也可以依据本文进行制作。通过对u-boot的重要参数的设置也使得其功能进一步增强。读者也可以仿效文中的步骤对其他型号的开发板进行制作,为以后的开发带来了方便。在制作过程中要注意的是接口参数的设置问题和越界问题。
BK7238,上海博通-单芯片Wi-Fi802.11n、低功耗蓝牙BLE5.2组合解决方案
!HP66332A/HP66332A/HP66332A电源
浮标式自动在线监测系统的特点及注意事项的介绍
魅族PRO7曝光: 双曲面屏加持, 8G运存惊艳了!
晶盛机电成功发布6英寸双片式SiC碳化硅外延设备
基于S3C2410嵌入式设备的U-Boot移植流程教程
西门子牵手微软对阵通用电气 物联网之争再升温
深度剖析异构数据存储
新能源汽车电驱动热管理系统解析
LED开关电源的过电流保护电路设计
德索连接器厂商详解RJ45接口及其特性
“十四五”时期,青岛将着力打造国际化创新型城市标杆
LG现身说事:并没有为苹果iPhone提供OLED显示屏
德国工业4.0的进阶之路详解
土木建筑工程中的激光技术解析
氮化硅与氮化铝陶瓷基板究竟有何区别?
IPv6新特性对于互联网有什么影响
世界互联网大会来袭 Eureka 01概念车完美诠释了智能移动终端
嵌入式主板的常见种类及应用领域
Linux内核的DL调度器的细节和怎么样使用DL调度器?