资源描述:
《亚嵌教育内部培训资料_-_myboot项目框架设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构1myboot项目框架设计课程编号:3101北京亚嵌教育研究中心©2010AKAE北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构2学习安排项目概述文件结构布局初始化流程技术难点makefile应用参考代码北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构3Section1项目概述北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构4功能需求开机自启动启动提示硬件初始化软件初始化Shell支持串口下载binFlash烧写启动自加载外设测试
2、LEDBEEPDIPSEG7KEY北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构5程序流程北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构6Section2文件布局北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构7项目文件布局(参考)文件描述Startup.s程序入口/初始化代码-asm/设堆栈/禁中断/跳入C代码Main.c初始化代码-C/延时等待/程序主循环/命令分派Libc.c常用c函数移植(printf,gets,puts,getchar,putchar等)Commands.c命
3、令实现(help,down,go,nand,etc.)Peripherals.c外设控制函数库(led,beep,seg7,dip,uart,etc…)Nand.c闪存读写操作函数X-modem.cX-modem协议实现函数Makefile/Readme工程管理/说明文档北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构8Section3初始化流程北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机C9初始化流程(asm)屏蔽中断LED提示(关闭BEEP)设置时钟——MCLK/HCLK/PCLK关闭看门狗初
4、始化C环境(设置堆栈指针,RW段搬移,ZI段初始化)跳转至C北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构10初始化流程(C)初始化UART—开始系统输出初始化SDRAM–并自检初始化NAND–并自检(*)用户等待自动加载<<-->>进入shell循环北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构11Section4技术难点北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构12技术难点—命令分派命令分派——函数指针数组void*commands[cmd_nums][2];char*str
5、=(char*)commands[0][0];void(*)(void)cmd=(void(*)(void))commands[0][1];if(strnicmp(str,”go”,strlen(str)==0)){cmd();}参数怎么办?北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构13技术难点—命令分派2命令分派——switch…case….指派命令号由统一函数处理intcommands(intcmdid,intargc,char*argv[]);北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训
6、机构14技术难点—变参实现my_printf(char*format,…)va_list,va_arg,va_end#include见参考代码北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构15技术难点—flash启动RO-BASE=0x0不想搬移RO和RW段:code_size+rw_size<4K不想搬移RO段:code_size<4K生成bin烧写烧写工具烧写到nand-flash0x0处北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构16技术难点—flash启动加载地址和
7、执行地址
8、Image$$RO$$Limit
9、
10、Image$$RW$$Base
11、
12、Image$$ZI$$Base
13、北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构17技术难点—堆栈指针栈方向取决于硬件和c编译器可编程确定或通过JTAG观察其他模式(用到C)都要设置
14、北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构18技术难点—不要main()避免_main()等自动代码为减少代码尺寸,可避免使用标准C库函数北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构19Section5命令行工具北京亚嵌
15、教育研究中心(AKAE)-专业的嵌入式技术培训机构20命令行编译工具armccarmlinkfromelfmakemakefile北京亚嵌教育研究中心(AKAE)-专业的嵌入式技术培训机构21参考代码优秀学员代码U-boot代码其他