tms320lf2407考试_tms320lf2407 开发环境_tms320lf2407(47)

电脑杂谈  发布时间:2017-01-30 03:04:38  来源:网络整理

/******************************************************/

?对于 嵌入的汇编指令,编译器不会进行语法检查,

编程者必须确认嵌入的指令合理有效。

?使用asm指令的时候应小心不要破坏C语言的环境 。

如果C代码中插入跳转指令和标识符可能会引起不可预料的操作结果。能够改变块或其它影响汇编环境的指令也可能引起麻烦。

?对带asm语句的代码使用优化器时要特别小心。 尽管优化器不能删除asm指令,但它可以重新安排asm

指令附近的代码顺序,这样就可能会引起不期望的结果。

13.1.5 访问I/O空间

?I/O空间地址声明要在程序中访问io空间地址,必须首先用关键字

“ioport”对要访问的地址进行定义。

语法:ioport type porthex_num

ioport 声明io空间端口变量的关键字;

type 变量类型,可以为char,short,int或

unsigned int;

porthex_num 端口号,port后面接16进制数字。

/*******************************************/

ioport unsigned int port10;

/******************************************/

注,声明io空间地址必须在C文件起始声明,不允许在函数中使用ioport声明io空间地址。

?I/O空间地址访问访问用ioport关键字声明的I/O端口变量和访问一般变量没有区别。

/***********************************************************/

ioport unsigned int port10; /* 访问I/O端口10h的变量 */

int func ()

{

...

port10 = a; /* 写 a到端口 10h */

...

b = port10; /* 读取端口10h的值到 b */

...

}

/***********************************************************/

I/O端口变量的使用不仅仅局限于赋值,和其他变量同样也可以应用于其它的表达式 。

/***********************************************************/

call (port10); /* read port 10h and pass to call */

a = port10 + b; /* read port 10h,add b,assign to a */

port10 += a; /* read port 10h,add a,write to port 10h */

/***********************************************************/

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

程序中访问的任何一个IO地址都必须在C语言程序起始处用ioport关键字声明!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

13.1.6 访问数据空间访问数据空间不需要对要访问的单元预先声明,访问是通过指针的方法实现的。

/***********************************************************/


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-29489-47.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...