不同C编译器注意事项

目前单片机有多种C编译器,不同编译器之间有很多区别。总结后,主要有以下几点,需要弄清楚:

1.寄存器的定义

不少编译器已经自带了寄存器的定义文件,比如AT89S52, 使用KEIL C V2.0 环境, 程序可以直接调用寄存器定义文件。 例如: #i nclude <reg52.h> (顺便讲一下,#i nclude <xxx.h> 与 #i nclude "yyy.h" 的区别,一般前者是指调用编译器系统的文件,而后者是用户自己写的文件), 当然如果没有寄存器定义文件,我们也可以自己去写,这时候就要了解如何去定义寄存器。特别需要注意的是位的定义,有些可以单片机可以直接对寄存器位操作,把位定义出,在写程序时很方便(在定义变量时,如果可以定义位变量,也是很有用的)。

2.编译器系统自带的库函数

了解编译器有哪些库函数,如何使用他们。

3.嵌入汇编

机器毕竟没有人脑聪明,C编译的效果,有时候不是很理想,这时候我们可以嵌入汇编。

4.系统程序的基本配置

有些编译器会自带启动文件,具体内容是设置堆栈,清RAM等,不同编译器不一样,有些编译没有,就需要自己在程序里面加上,另外与之相关的是,开关中断与WDT的写法。

5.中断

有中断我们的程序内容才会丰富多彩,需要知道如何定义一个中断函数和如何实现中断的嵌套。值得注意的是,有些编译器他的中断向量表也是需要我们自己去做的,还需要了解如何去定义一个中断向量表。

6.最后需要注意是的变量与常量,程序的段的定义。这里重要的是变量的定义,在某些情况下,定义在RAM中的变量不是开机后都需要清零的,就需要分别定义在不同的变量段中。

粽子糖果 发表于11-07 10:38 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

粽子糖果
粽子糖果(总统)
金币:41623个|学分:51975个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号