当前位置: 嵌入式研究室 > 课程介绍 > 短期强化嵌入式技术课程 >
ARM体系 移植及Bootloader开发
|
UEA-ARM ARM体系 移植及Bootloader开发 课程描述:
|
||
ARM在嵌入式处理器领域拥有60%以上的份额,是嵌入式智能设备处理芯片中的王者,尚观曾经报道过iphone第一代就采用ARM11处理器,目前不论 Nokia、HTC还是Moto 索爱都采用ARM处理器作为智能设备的首选平台,甚至ARM已经向上网本等领域进军,尚观嵌入式研究室报道过2009年初已经出现了1.3G的ARM芯片。本课程从ARM体系架构上开始进行分析,引导学员一步步用自己的编码来直接控制ARM处理器的各个部分,完成ARM平台的Bootloader、网络控制器、存贮等部分的控制程序编写,能否自己手写代码而非简单移植是衡量ARM体系掌握程度的标准,尚观ARM平台超出一般点到为止的所谓ARM培训。尚观2007年就专门开设了ARM11的课程,对ARM体系结构有着深入的了解。 |
||
|
教学目标:
|
||
强调从零开始写驱动,让学员真正掌握ARM平台的编程能力,让学员可以熟练掌握ARM汇编、ARM体系结构、ARM平台的直接控制程序(裸驱动)。同时学员将会在ARM开发板上直接自己动手书写硬件控制程序以及Bootloader等,一定不是简单的移植,而是真正理解并且亲自书写。同时熟悉ARM微处理结构、指令和外围器件,可以进行ARM处理器平台下的深层次开发,可以开发裸板驱动(无操作系统直接驱动硬件),同时不只可以进行bootloader移植,并且可以自己开发bootloader |
||
|
面向行业及岗位:
|
||
消费类电子(手机、PDA、游戏机)、数字多媒体(网络点播、机顶盒)、汽车电子(导航仪)、医疗电子、工业控制等行业的研发工程师,软件工程师,嵌入式软件工程师。 |
||
|
培养对象:
|
||
希望掌握ARM平台底层编程技术的学员;以及希望从事移动终端开发的爱好者、工程师、程序员、已及相关行业的工程技术人员;有志于从事嵌入式核心研发的软件开发技术人员和正在学习计算机、软件、通信专业的学生,以下是主要应用方向: ◆ 手机内核驱动软件开发; ◆ 智能设备的驱动软件开发; ◆ 芯片公司的操作系统级开发; |
||
|
课程特色:
|
||
◆本课程设计者为8年嵌入式技术项目经理经验的李老师,他对MIPS PPC等技术都有涉及。 ◆从零开始手写裸驱动和控制程序,直接用自己的代码控制ARM处理器。 ◆从零开始手写Bootloader(启动装载器)。 ◆全新案例教学,自己编写ARMUart控制程序、LCD控制程序、触摸屏控制程序、IIS控制程序,网卡控制程序 。 ◆高强度授课,全部项目型教学,每个环节都有案例。 |
||
|
课程大纲:(共160学时,每天8学时,共20天- 1个月授课)
|
||
案例实践: (根据各地的环境以及老师的不同可能实际案例有一定变化,案例为以下其中几个) a. ARM模拟器开发。 b. Uart控制程序 (bootloader上执行)。 c. LCD控制程序 (bootloader上执行)。 d. 触摸屏控制程序 (bootloader上执行)。 e. IIS控制程序 (bootloader上执行)。 f. 网卡控制程序。 g. TCP/IP协议栈移植。 h. bootloader开发--my-boot。 i. 文件系统制作。 j. ARM-Linux移植。 1、ARM体系结构与ARM处理器的体系结构 .IP核、芯片与开发板。 .处理器结构。 .处理器模式。 .寄存器。 .流水线结构。 .C语言内嵌汇编格式 与编程实例 2、ARM指令系统 . 算术逻辑指令。 . 指令对状态寄存器的影响。 . 比较指令。 . 分支指令。 . 移位。 . 指令位图。 . 识别机器指令。 3、内存访问与内存控制 . 数据总线与地址总线的使用与实例。 . STR/LDR。 4、ARM过程调用标准 . LDM/STM。 . 反汇编。 . APCS。 . C语言函数与汇编的互相调用。 5、ARM AT&T汇编 . AT&T汇编语法详解。 . gas工具的使用。 . label标签的作用。 . 数据与代码的分布。 6、链接脚本ld-script . 段地址的确定。 . 编写ld-script。 . ELF格式与libc函数库的关系。 7、时序电路基础 . 电平信号。 . 电路图分析。 . 时序图分析。 . datasheet查看。 . s3c2440的外围器件结构。 . GPIO操作。 8、AMBA总线标准 . AMBA总线标准。 . FCLK/HCLK/PCKL频率分配与设置。 . Watchdog计时操作。 . UART操作。 9、ARM中断体系 . 异常向量表。 . ARM模式切换。 . ARM中断控制器。 . 软中断。 . Linux系统调用的实现。 10、Nand Flash控制器 . Flash原理。 . Nand控制器原理及时序分板。 . k9f1208时序分析。 11、内存控制器 . s3c2440物理地址分布。 . SDRAM原理与时序。 . 内存控制器的物理连接。 . 地址对齐。 . SRAM访问。 12、内存管理单元 . MMU的原理。 . ARM协处理器指令。 . section模式。 . small page模式。 . I & D TLBs。 . I & D Cache。 . 哈佛结构的原理与实现。 13、DMA 直接内存访问的机制与使用 . DMA的状态机。 . DMA的控制。 14、触摸屏接口与ADC接口与实例 . ADC原理。 . 触摸屏接口与控制。 15、LCD控制器 . 图形显示原理。 . LCD控制器。 . LCD时序。 . LCD驱动相关的框架与体系。 16、I2S音频总线 . 音频硬件原理。 . I2S时序。 . s3c2440上I2S的操作。 . 音频设备的裸驱动讨论。 17、CS8900网卡控制 . 逻辑链路层与MAC层。 . CS8900原理与时序分析。 . 后续网卡裸驱动讨论与体系结构 。 18、TCP/IP协议栈移植,与网络体系结构 . LwIP TCP/IP协议栈简介。 . LwIP配置与编译。 . tftp配置与编译。 19、Bootloader原理与移植 . u-boot的配置、编译。 . u-boot启动过程分析。 . ARM-Linux的启动要求。 . ARM-Linux kernel的ld-sript分析。 . u-boot到ARM-Linux的跳转代码分析。 . 使用mkimage制作启动镜像文件。 20、ARM-Linux原理与移植 . ARM-Linux的配置、编译。 . ARM-Linux启动代码分析。 . ARM-Linux 地址映射的关系。 . Busybox的配置、编译 。 |
||
|
实验环境:
|
||
处理器:ARM9 S3C2440A。 内存:SDRAM 64M。 存储器:NorFlash+NandFlash。 外围设备:RS-232、Ethernet、USB、IIC、IIS、CF Card、SD Card。 |
||
|
适用对象:
|
||
熟练使用Linux平台开发工具。 熟练使用C语言及数据结构。 |








