您的位置 首页 测评

2440发动代码剖析心得体会

通过研究2440启动代码,发现这个启动代码压根就没有从nandflash复制代码的功能,怪不得下载到nandflash没现象呢!用伪C代码来描述2440的正

经过研讨2440发动代码,发现这个发动代码压根就没有从nandflash仿制代码的功用,怪不得下载到nandflash没现象呢!

用伪C代码来描绘2440的正常的发动进程。

2440发动函数()

{

复位函数();

未定义形式函数()//这个是死循环

SWI函数();//这个函数在其他文件中存在

PAbt_Addr函数();//又是个死循环函数

DAbt_Addr函数();//仍是个死循环函数
……

}

复位函数()

{

if(关掉看门狗==1)

关掉看门狗;

Else

不关;

if(设置时钟==1)

设置好时钟;

Else

不设置时钟;

If(初始化贮存操控器==1)

初始化内存操控器;

Else

不初始化贮存操控器;

If(初始化I/O操控寄存器==1)

初始化I/O操控寄存器;

Else不初始化I/O操控寄存器

If(反常中断向量仿制到IRAM==1)

反常中断向量到IRAM;//IRAM为0x40000000;

Else不仿制;

装备相应形式仓库的巨细;//最终装备的是用户形式仓库的巨细,在用户形式下进入main函数

main();//调用main函数,这便是为什么单片机裸奔的时分需求死循环了。

}

其实在2440中main函数中不必死循环,在履行main函数结束之后,相当于复位函数()现已履行结束,接下来履行的是未定义函数(),因为方才剖析未定义函数是个死循环,相当于最坏的状况是,2440一直在未定义函数中停藏着。当然并不期望看到这样的状况,所以2440裸奔时,最好在main函数中构成死循环!关于51单片机来说,没有死循环的话,这个51单片机程序会跑飞!!!

假如想从nandflash发动,并发动一个体系的话,需求在C函数之前参加初始化nandflash函数以及从nandflash代码仿制到sdram的函数。假如再加一点其他的东西的话,一个小的bootloader就完结啦!

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/257902.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部