Chinaunix首页 | 论坛 | 博客
  • 博客访问: 234759
  • 博文数量: 520
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 5810
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-17 23:07
文章分类

全部博文(520)

文章存档

2010年(520)

我的朋友

分类:

2010-10-29 09:42:48

  在eboot中有很多以oem开头的函数,这些函数都会直接或间接的被blcommon模块调用,来完成相应的功能。这些oem函数就是我们需要根据自己的平台来实现的。可以说,实现了这些oem函数,eboot的功能就完成了。   在eboot中有很多oem函数,有些是必须实现的,有些是不必实现的,而有些是根据你的eboot的功能需求来决定是否要实现的。下面会介绍一下直接由blcommon调用的oem控制函数:   1. void oemdebuginit(void)   这应该是第一个被调用的oem函数,用来初始化串口来打印调试信息。这里要提一下另一个函数叫oeminitdebugserial,是oal中用于初始化串口的函数。所以一般会实现oeminitdebugserial函数,然后在oemdebuginit中调用它就可以了。实际上这只是一个初始化函数,如果想实现串口调试,还需要实现另外几个函数,如下;   oemwritedebugstring   oemwritedebugbyte   oemreaddebugbyte   上述三个函数在我以前的博客“wince bsp中打印信息的实现介绍”中有介绍,这里不再重复了。   2. bool oemplatforminit(void)   这个函数用于初始化硬件平台,就是说出实话硬件板子的相关外设。一般会先初始化rtc,然后初始化nandflash控制器,初始化硬件中断,初始化网卡,如果需要,还可以在这个时候初始化display,然后显示一个logo。下面是微软提供的该函数的模板: booloemplatforminit(void) {   bool          fret=false;   boot_args       *pbootargs;    eth_hardware_settings *pedbgsettings;    edbg_addr       *pmyaddr;   //打印版本号和时间日期信息   edbgoutputdebugstring("microsoftwindowsembeddedceethernetbootloader%d.%dforplatformexample(%s%s)nn", eboot_version_major,eboot_version_minor,__date__,__time__);   //初始化driverglobals区域中的boot引导参数信息   pbootargs=(boot_args*)boot_args_physical_memory_start;   memset(pbootargs,0,sizeof(boot_args));   pbootargs->dwsig      =bootarg_sig;   pbootargs->dwlen      =sizeof(boot_args);   pbootargs->dwedbgdebugzone =edbgdebugzone;   //添加按键输入判断,允许用户进入shell   if(waitforkeypress())   {     //允许用户设置网络相关的信息,比如ip地址等     loadermainmenu();      }   //初始化以太网控制器   pedbgsettings=&pbootargs->edbg;   fret     =initethernet(pedbgsettings);  if(!fret)   {     edbgoutputdebugstring("error:ethernetinitializationfailedrn");     spinforever();   }   pmyaddr=&pedbgsettings->adapter.addr;   edbgoutputdebugstring("info:debugethernetmacaddress:%b:%b:%b:%b:%b:%brn",pmyaddr->wmac[0">&0x00ff,pmyaddr->wmac[0">>>8,     pmyaddr->wmac[1">&0x00ff,pmyaddr->wmac[1">>>8,     pmyaddr->wmac[2">&0x00ff,pmyaddr->wmac[2">>>8);   return(true); } 如果喜欢wince eboot中的oem控制函数请收藏或告诉您的好朋友.
阅读(110) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~