资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,1,怎样从,0,开始写,bootloader,?,李明,北京亚嵌教育研究中心,www.akaedu.org,2,开场介绍,本次课程讲什么?,从,0,开始写,bootloader,本次课程谁来讲?,limingthakaedu.org,本次课程适合的听众是哪些人?,有时间在接下来,1,个月内开始动手实践的人,已经购买或者准备购买开发板的人,3,今日主题,从,0,开始写,bootloader,0(,零基础,),指的是什么?,学习过,C,语言,了解,ARM,体系结构和汇编语言,没有在开发板上做过软件开发,Bootloader,是什么?,Boot:,能够初始化基本硬件,(,时钟,存储,串口,),Loader:,能够加载,运行,固化外部程序,(,操作系统,),4,学习动机,为什么会有,bootloader?,为什么我们要自己写,Bootloader?,移植一个别人写的,bootloader,可以吗,?,u-boot/vivi/redboot/blob/,你怎样学游泳,?,5,本次课程收获,了解不同嵌入式软件运行的硬件基础和依赖,软件运行的存储芯片,哪些程序运行依赖栈空间?,Bootloader,能调用库函数吗?,main,函数的功过是非,用全局变量好,还是局部变量好?,掌握一种嵌入式开发工具,开发流程和开发方法,ARM ADS1.2 IDE(JTAG,调试,Flash,烧写,,AXD,下载,),命令行工具,(armcc,armasm,armlink,fromelf,make),步步为营,左右互搏,屡试不爽,通过写,bootloader,,深刻领会,ARM,嵌入式开发核心概念之,“,寄存器,”,sp,(栈指针),,lr,(链接返回地址),,pc,,,CPSR,GPIO,寄存器,,UART,寄存器,,NandFlash,寄存器,ARM Architecture Referrence Manual,plus,DataSheet,6,预备,7,预备工作之一,首先,得有一个板子,推荐友善之臂,mini2440,+3.5LCD,套餐,:680RMB,mini2440,单板,:499RMB,8,预备工作之二,书籍,ARM Architecture Reference Manual,PDF,,,Part A,ARM,体系结构与编程,清华大学出版社,杜春雷著,以上,2,本都有电子版提供,可以课后向张婷老师要一下,.,9,预备工作之三,构建基础知识体系,硬件知识,ARM,寄存器,37,个寄存器:,R0-R12,R13(SP),,,R14(LR),,,R15(PC),,,CPSR(SPSR),ARM,芯片外设控制器,WatchDog,(看门狗),,GPIO,(通用,IO,),,UART,(串口),,Nand Flash Controller,,,Clock&Power Management,(时钟和电源管理),,10,预备工作之三,构建基础知识体系,软件知识,ARM开发调试工具,ADS1.2,AXD,make,,,hypertrm,(超级终端),ARM命令行工具,armcc,,,armasm,,,armlink,,,fromelf,ARM,汇编指令,mov,,,add,,,sub,,,b,,,bl,,,ldr,,,str,11,未完待续,敬请关注谢谢!,12,动手实践,目标,-,实现一个,bootloader,支持外部程序的下载,运行,固化和自加载,完成这个目标,有哪些中间步骤,?,1-,能够实现,led,灯的闪烁,(,汇编级和,C,语言级,),2-,能够实现串口的初始化和读写,(C,语言,),3-,能够实现基于串口的下载和执行,(C,语言,),4-,能够实现命令行解析方式的下载和执行,5-,能够实现,Flash,的固化,6-,能够实现固化后的自加载启动,13,中间里程碑之一,闪灯,汇编语言实现,LDR,STR,内存读写指令,B,Bl,跳转指令,armasm,汇编器,armlink,链接器,S3C2440 DataSheet,数据手册,SFR,特殊功能寄存器之,GPIO,控制器,硬件设计原理图,H-jtag flasher,烧写,14,中间里程碑之一,闪灯,C,语言实现,SRAM,内部存储和地址,sp,堆栈指针和栈空间,armcc,编译器,volatile,关键字,#define,宏用法,main,函数,反汇编工具,fromelf,SDRAM,初始化,15,中间里程碑之二,串口,串口工作原理,缓冲寄存器,移位寄存器,帧格式,数据位,停止位,奇偶校验,流控,波特率,时钟频率设置,IO,管脚的功能复用,控制寄存器,数据寄存器,状态寄存器,16,中间里程碑之三,下载和执行,接收二进制可执行代码,getchar,跳转命令的,C,语言实现,函数指针,Xmodem,协议,协议帧格式,传输过程控制,17,中间里程碑之四,命令行解析,标准,IO,输入输出,gets,puts,printf,字符串函数,strcmp,函数,(,字符串比较,),strstr,函数,(,字符串匹配,),atoi,函数,(,字符串转整数,),常用命令,download,go,flashw,18,中间里程碑之五,Flash,固化,flash,的内部存储结构,flash,与主芯片的连接关系,怎样传地址,怎样传数据,flash,的初始化配置,flash,的读写时序,Nor flash,Nand flash,19,中间里程碑之六,自启动方式,加电后的启动流程,等待,1-3,秒,如无用户输入,则进入自加载模式,Flash,的分区,加载不同应用,(,操作系统,),传递给内核相应参数,20,哈哈,搞定了,
展开阅读全文