20111010最近学习计划布置

来源:互联网 发布:华为java代码规范 编辑:程序博客网 时间:2024/06/12 01:08

在网上看了无数的帖子,其中很多让我学习到了很多实用的技能。在此感谢各位网络大虾的无私奉献。

10年3月开始有计划接触到at91sam9260这颗芯片,本来有块三星的2440学习板,搞的时间也不是长,断断续续1年左右吧。

三星的2440学习,熟悉了嵌入式开发的流程,开发整体环境的搭建过程,各种网络资源的获取,对不同资料的筛选。选出对自己有价值的资料。

在这段时间里,对ARM9 的启动过程有了明确的熟悉,主要是对底层启动过程了分析,有记录,以后整理成笔记再说。


因为工作的原因,很长时间没有好好地研究这块东西了,总是断断续续的,很是不爽。

又是因为工作的原因,在两月前开始了自己业余的学习研究,总体来说,比第一次的学习过程要快的很多。

at91sam9260的学习过程和2440还是有很多的差距的,主要体现在启动的流程上

详细见:

启动过程

本文主要讲述从Data Flash上启动的过程,NAND flash启动,NOR Flash启动请参考相关文档。

  1. 处理器复位,根据BMS引脚的设置,选择从内部ROM启动(NOR Flash启动方式不在本文的讨论范围)。
  2. ROM中的代码开始运行,初始化处理器和必要的外设,比如DBGU,USB device port。然后开始从Data Flash的0地址检索合法的启动程序,也就是Bootstrap。
  3. 如果合理的Bootstrap存在,ROMBOOT将其复制到内部SRAM并跳转到Bootstrap运行。如果没有,则等待DBGU或者USB口的连接,这部分内容请参考SAM-BA手册。
  4. Bootstrap将初始化一些设备,主要是Data Flash与SDRAM,然后从Data Flash特定位置(在Bootstrap源代码中指定)将U-boot复制到SDRAM的指定位置,然后跳转到U-boot开始位置运行。
  5. U-boot根据环境变量(bootcmd)加载Linux Kernel的image。加载完成后跳转到Kernel运行,并传递启动参数(bootargs)。
  6. Linux Kernel开始运行,加载相关驱动,并加载rootfs。其中的细节,可以参考Linux书籍。

主要的学习在意于,连接脚本文件的分析,汇编代码,Makefile,C语言这些文件的源码分析


具体的学习计划布置:

AT91Bootstrap1.16

u-boot-2010.06

linux-2.6

文件系统


以后的笔记中有问题,还望各位指教了!在此谢过大家!

原创粉丝点击