IT业行者,行者无疆
分类: 嵌入式
2010-09-27 09:23:15
from: http://fangheng1005.blog.163.com/blog/static/3291297200852493353569/
欧洲杯真是好看,我在想为什么奇迹总是人家的呢?你看人家土耳其,连干那么多的强队,进入四强,你说人家是运气,我看不是,运气是眷顾有实力的人的,你再看我们家的男足,那是没得说,你看准吐血,所以我相信实力是决定你未来的重要因素,运气只是另一部分,好好增强自己的实力吧,朋友,相信奇迹会是属于你的,或许当你有了实力之后,奇迹就变成一种必然了。
今天我们来看zlg移植过程中的其他文件吧,每个移植都有针对的移植结构,要会使用zlg的移植代码并可靠的运行,这部分代码是你必须理解的。
mem_c.scf文件
ROM_LOAD 0x0
内部ROM的起始地址,因为LPC系列的ROM地址是从0x000000开始的
{
ROM_EXEC 0x00000000
可执行代码存放的起始地址,即你所写的代码编译成二进制之后往ROM存放的起始代码
{
Startup.o (vectors, +First)
文件Startup存放在ROM的第一个块,即Startup文件存放在低地址单元,这是你启动代码的存放位置
}
RAM的起始地址是0x40000000,这是针对LPC系列来说的,如果其他芯片不是这样请修改
{
Startup.o (MyStacks)
* (+RW,+ZI)
}
{
Startup.o (Heap)
}
这是RAM的最高地址,LPC2131有8K的空间,所以为0x40002000,也要根据实际情况进行修改
{
Startup.o (Stacks)
Stacks区域的数据存放在最高地址单元中,这是用户堆栈
}
如果你的程序是在内部ROM进行调试的话你可能要更改的数据为0x40002000与0x40000000,根据你芯片的RAM大小进行修改,其他的就不要修改了,默认就行。
CONFIG.H文件
typedef unsigned char
typedef signed
typedef unsigned short uint16;
typedef signed
typedef unsigned int
typedef signed
typedef float
typedef double
以上定义的数据类型就是zlg自己习惯用的数据类型,嘿嘿,好像是陈明计先生在自己写的Small
#define Fosc
//应当与实际一至晶振频率,10MHz~25MHz,应当与实际一至
#define Fcclk
//系统频率,必须为Fosc的整数倍(1~32),且<=60MHZ
#define Fcco
//CCO频率,必须为Fcclk的2、4、8、16倍,范围为156MHz~320MHz
#define Fpclk
Fosc 所定义的频率就是你外部晶振的频率啦,其实频率不一定是在10MHz~25MHz的范围,因为这个代码移植使用了PLL模块,故必须在这个范围,具体的规定请看LPC系列芯片的介绍,其他的你默认就可以啦。但是你要清楚你的VPB时钟是多大,因为后面的程序中外设的时钟就是这个时钟。
(待续连载5)