对于2410来说,对于端口的编程一般包括以下几个部分
汇编:
1 端口的入口地址的设置
2 设置段代码为只读代码
3 设置端口属性,包括三个主要的寄存器:GPFCON GPFDAT GPFUP(这里只是一个假设,可以为其他的端口)具体资料见端口说明书
4 上层应用程序
c语言跟汇编混合编程。
c语言跟汇编相互调用必学满足一定的规则:
1各寄存器的使用规则及相应的名车。
2数据栈的使用规则
3参数的传递规则
在c语言中嵌入汇编使用关键词——asm的标志,来标志一段汇编程序。
在做小程序中遇到的一些细节问题:
1 C与汇编的一些对比:
寄存器的声明:GPFCON EQU 0x56000050
#define rGPFCON *((volatile unsigned*)0x56000050)
volatile :volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。
2汇编中一些常用的伪指令
AREA 段定义
声明外部的文件 GET INCLUDE
声明一个符号可以被其他的文件引用:EXPORT GLORBAL 声明全局变量
声明一个外部符号 IMPORT EXTERN 引用全局变量
在函数的调用时候也是如此,当外部一个子函数,当通过在主函数前面声明的时候加上extern
3对于函数的一些结构分析
对于汇编:首先,向量,头文件等声明:接着段的声明,主函数,或者用B跳转到调用的函数名
对于c语言:都文件声明,main函数
阅读(804) | 评论(0) | 转发(0) |