上面的程序代码只包含了流程图中的几个主机步骤。这些步骤都是必不可少的,其余的步骤都在TargetResetInit函数中加以实现。本例中的TargerReset Init函数如下:void TargetResetInit(void){/*设置系统各部分时钟*/PLLCON=1;#if((Fcclk /4)/Fpclk==1VPBDIV=0;#endif#if((Fcclk/4)/Fpclk==2VPBDIV=2;#endif#if((Fcclk/4)/Fpclk==4VPBDIV=1;#endif#if(Fcco/Fcclk)==1PLLCFG=((Fcclk/Fosc)-1)|(1<<5);#endif#if(Fcco/Fcclk)==2PLLCFG=((Fcclk/Fosc)-1|(2<<5);#endif#if(Fcco/Fcclk)==4PLLCFG=((Fcclk/Fosc)-1|(3<<5);#endif#if(Fcco/Fcclk)==8PLLCFG=((Fcclk/Fosc)-1)|(4<<5);#endifPLLFEED=0xaa;PLLFEED=0x55;while(PLLSTAT &(1<<10)==0)PLLCON=3;PLLFEED=0xaa;PLLFEED=0x55;/*设置存储器加速模块*/MAMCR=2;#if Fcclk<20000000MAMTIM=1;#else#if Fcclk<40000000MAMTIM=2;#elseMAMTM=3;#endif#endif/*初始化VIC,使芯片在进入μC/OS-II多任务环境前关中断*/VICIntEnClr=0xffffffff;VICVectAddr=0;VICIntSelect=0;/*其它步骤的代码与实际的软件功能相关,不具有代表性,故在此不列出*/}3 结论本文介绍的Bootloader代码已经在基于Philips公司的LPC2106芯片开发的系统上运行并测试通过。针对不同的CPU芯片编写Bootloader代码,首先要了解该CPU的内核结构、指令系统,其次是具体芯片的结构和各种片上资源,以及所采用的操作系统。以上所列的设计流程不是一成不变的,在具体应用中要权衡取舍。
ARM7TDMIS在嵌入式系统中的Bootloader代码设计(2)
2
阅读
最新评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
- 本站是由一个众多学科的博士群体组建而成,主要创办者为成都各重点高校博士。本论文网内理工科写手均为博士,文科类写手大部分为博士,且领域涵盖广泛,写作势力强大,若有部分专业,没有相关的写手,我们给你寻找合适的写手! 依托强大的人力资源,我们本着诚心交流的宗旨,专门为您排解写作上的难题。从在科研及实践工作中稳扎稳打的经历,我们具备了研究问题,解决问题的能力。论文写作和论文发表,作为教育体系的一个重要环节,我们确实有能力给您解决好问题,正所谓,真金不怕火来炼,请相信我们的势力,没有把握的事,我们不会做!
热点关注
相关文章
赞助商链接
