本站首页    管理页面    写新日志    退出


«July 2025»
12345
6789101112
13141516171819
20212223242526
2728293031


公告

☆★☆★☆★☆★☆★☆
生活的点点记录,以及一些体会...........

喜欢是淡淡的爱,爱是深深的喜欢.

时间会见证一切.......................

欢迎大家指出错误,共同进步..........

期待中..............................

☆★☆★☆★☆★☆★☆


我的分类(专题)

日志更新

最新评论

留言板

链接

世纪音频

 

 


Blog信息
blog名称:
日志总数:162
评论数量:312
留言数量:0
访问次数:939736
建立时间:2005年5月17日




[Arm_Embeded]也说eboot流程
文章收藏

oceanblue 发表于 2008/6/13 10:46:02

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://bluefish.blog.51cto.com/214870/58130       这一段时间利用工作之外的时间调试了一把eboot(wince5-s3c2440)。还好eboot终于可以用了,就是烧写太麻烦,256k要烧8分钟之多(通过jtag)。       wince5中的eboot默认是用的cs8900的网卡,而我们现在板子上的是dm9000。幸运的是从网上down了一个这么一个dm9000实现的代码。下面具体说下eboot的代码和修改流程。       bootloader的作用无非就是将nk从pc端先down到ram再写到指定地址的flash,下次启动的时候直接从flash上读到ram并跳到ram中去执行,以启动nk。       eboot(.nb0)是先被nboot之类的上电执行的代码拷贝到指定地址的ram中去,并执行。先是一段汇编,用以设置cpu时钟,屏蔽中断之类的,然后就是跳到main(smdk2440\src\bootloader\eboot\main.c)中去执行。这个函数直接调用BootloaderMain,并不再回头了。不过可以在这个main函数中打开led,以调试看eboot有没有跑到c函数的main中去。 所有的内容,包括下载nk和启动都是在BootloaderMain(public\common\oak\drivers\ethdbg\blcommon\blocommon.c)中实现。从大的方面说它调用了OEMPlatformInit,DownloadImage,OEMLaunch这3个功能函数。       OEMPlatformInit进入menu,让用户选择下一步所要执行的操作,并配置以太网控制器。如果是要下载nk则DownloadImage,如果从flash启动则加载并OEMLaunch(启动要从flash加载的话是在OEMPlatformInit中执行的)。       所有eboot的操作几乎都是通过pToc(很多值是通过boot.bib来映射的,g_pBootCfg是pToc的一个成员)这个结构连接在一起的。它包括所有用到的配置,例如是否在down完之后写flash等。      以下说下我在调试eboot时候的修改      首先InitEthDevice。由于现在要通过dm9000来实现eboot,所以要改下这个函数中的设置的几个功能函数:pfnEDbgInit      = DM9000DBG_Init;pfnEDbgGetFrame  = DM9000DBG_GetFrame;pfnEDbgSendFrame = DM9000DBG_SendFrame;也就是说在dm9000中只要实现这3个功能函数就ok了。在调试的时候pBaseIOAddress也是个值得关注的地方。       接下来是修改boot.bib中FLSCACHE的值,它是所down的nk在ram中的开始地址和长度。 loader.h中定义了很多宏需要注意,例如ROM_RAMIMAGE_START和ROM_RAMIMAGE_SIZE的值应该和config.bib中的对应。


阅读全文(4339) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.032 second(s), page refreshed 144763960 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号