欢迎来到天天文库
浏览记录
ID:34445929
大小:171.23 KB
页数:3页
时间:2019-03-06
《arm单片机启动代码研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、No.3Jun.,2008微处理机MICROPROCESSORS第3期2008年6月ARM单片机启动代码研究何永泰(楚雄师范学院物理与电子科学系,楚雄675000)摘要:在32位ARM核单片机嵌入式系统的开发中,为了保证系统能正常独立运行,用户必须编写自己的启动程序。以飞利浦公司的LPC2210单片机为例,在ADSl.2集成开发环境中,介绍了启动程序的编写过程。该启动程序在EasyARM2200开发板运行成功。关键词:单片机;启动代码;嵌入式系统中图分类号:TP334文献标识码:B文章编号:1002—
2、2279(2008)03—0088—03StudyingStartupCodeofARMCoreSingle-—-chipHEYong—tai(DepartmentofPhysicsandElectronScience,ChuxiongNormalUniwrsity,c^w如昭675000,China)Abstract:Forsystemcanindependentlyrun,usermustwriteownstartupprogramondevelopmentofembeddedsystemof32
3、bitARMcore.Inthepaper。theprocesswriteofstartupprogramwasintroducedontheADSI.2byUSeLPC2210MCU.ThestartupprogramhassuccessfullyrunontheEasyARM2200developmentboard.Keywords:Single—chip;Startupcode;ARM(AdvancedRISCMachines)1引言在ARM核的嵌入式系统开发中,由于ARM公司只设计核心,不自己
4、生产芯片,只是把核心授权给其他厂商,其他厂商购买了授权后加入自己的外设,生产出各具特色的单片机,例如,ATMEL公司生产的ATgl系列单片机,PHILLPS公司生产的LPC2000系列单片机等。因此,ARM公司提供的ARM集成开发环境ADSl.2中,不可能为所有的单片机提供完整的启动代码,启动代码的不足部分由厂商或用户自己编写。启动代码与单片机的结构特点有直接的联系,为不同的单片机编写属于自己的启动代码是保证系统应用程序正确运行的基础。本文中根据PHILIPS公司生产的LPC2200系列单片机中的LP
5、C2210单片机为例,介绍其启动代码的编写过程。2LPC2210单片机的启动过程及启动代码的结构2.1单片机的启动过程在ARM嵌入式系统的设计中,最重要的是一上电就能对系统初始化,引导进入用户应用程序,使系统真正运行起来。这一过程就称为启动。在单片机LPC2210中,当外部复位端为低电平时,BOOT0、BOOTl脚的状态和存储器映射控制寄存器MEMMAP的最低两位控制着启动的进程。复位时,MEMMAP=0,启动BOOT装载程序,BOOT装载程序根据单片机P0.14脚的状态,决定是进入ISP状态还是启动
6、用户程序,若Po.14为高电平,则设置MEMMAP=3,采用外部存储器模式,开始运行单片机启动程序。复位处理过程如图1所示。图1单片机的复位启动过程当内部复位消除后,处理器从地址0开始运行,但由于MEMMAP=3,程序实际从外部存储器地址Ox80000000处开始执行。2.2启动程序的组成结构为了完成对LPC2210单片机的初始化,使系统的应用程序运行起来。启动程序主要由完成以下几部分功能的启动程序组成:①定义程序堆栈初始化·作者简介:何永泰(1970一).男.云南南华人.硕士研究生,副教授,主研方向
7、:嵌入式系统、可编程逻辑器件应用的研究。收稿日期:2006—01一113期何永泰:ARM单片机启动代码研究·89·中断异常向量表;②外部存储器接口控制寄存器的初始化;③堆栈初始化;④系统目标板的初始化;⑤进人c程序等。3启动程序的编写3.1定义入口地址ARM单片机复位后,PC值为Ox00000000,因此必须保证用户向量表定位在Ox00000000或重映射地址处。在单片机LPC2210中无片内程序存储器,启动代码及应用程序代码存放在MEMMAP=3时对应的重映射地址0x80000000开始的区域中。在
8、ADSl.2集成开发环境中,使用ADSl.2的分散加载机制.通过编写相应的分散加载描述文件,将代码加载到0xS0000000开始的地址空间中。分散加载描述文件如程序清单l所示。程序清单l:ROM—LOADOxS00000000{ROM—EXEC0x800000000{Starmp.o(vectors,+First)tilt(+n0)}IRAMOx40D0100000jStartup.o(MyStad龃)}STACKS—BOTTOM+OUNINITISta
此文档下载收益归作者所有