从MSC51到ARM7的IO型器件的C代码移植——以128×64 LCM移植为例研究.pdfVIP

  • 3
  • 0
  • 约9.49千字
  • 约 6页
  • 2018-01-04 发布于广东
  • 举报

从MSC51到ARM7的IO型器件的C代码移植——以128×64 LCM移植为例研究.pdf

76 CESc2006年第一屠垒离嵌入式系镜学末交流会论文集 以128X64LCM移植为例 周融 周顾 黄书汉 浙江工商太学,杭州,310035 摘要奉文夼绍了IO型嚣件的C语言程序移植过程的部分经验。文章首先对MSC5l和ARM7的】o 操作的c代码进行了类比,然后逐步对移植过程覆其重点步骤给出了说明。谊文以实践为背景,具有一定的 参考价值。 关麓词 MSC5l+ARM7,lO控制,c语言,移植 引 言 不少上了32位平台的嵌人式爱好者往往有对MSC5I等8位机上C代码重用的需求。尽管C语言编写 的程序具有诅好的移植性.但因两者基于不同的编程体系,面向5l的代码需要进行相应的修改才能在32位平 台上使用。笔者通过部分移植实践,对相关移植方法作了部分总结。 2 MSC51和ARM7体系的异同 To控制的8051和ARM的C指令比较:标准C语言具有很好的移植性能,但在嵌入式体系的编程中面向 硬件控制发展了若干种的C语言变种.以盈编译环境的支持情况的不同,使得不同的体系存有部分差异。表 l、表2将805]和ARM7的IO控制所涉及的部分C语言实现指令进行r对比。 寝1 c5l的Io指令寝 C51指令 应用举饲 指令动作 #defineP1.o 从口线输出高或低电平 CLK 定义P1.0为CLK; #definePx.xnameCLK=lt 置PI.0为高输出l Px.x=I/0I CLK=0l 置PJ.O为低输出I 从口线读取外部电平信号 #definePx.xname #defineP1.1 LcdBusy定义P1.1为LcdBusy char char unsignedRdTmp unsignedRdTmp 定卫无符号字符型的RdTmp寄存器 Px.…1 LcdBu5y=1} 读rl线前先将口线拉高 RdTmp=Px.x‘ RdTmp=LcdBusyI读口线状态到RdTmp 裹2 ARM C的IO指令寰 ARMC指令 应用举倒 指令动作 从口线转出高或低电乎 CI.K #define020定义CLK为Px.20 #definenamexn PlNSEL00 芙闭所有P0rl线第二功能 PINSEL0IOAddress: IoODlRCLK 置P0.20为输出口 100DIRname l()oSETCLK 置Po20为高输出 l()。SETname I【为(:LRCLK) (置P0.20为低输出) (IoOCLRname) 从口线读取外部电平信号 #definena鼬xn#define O21 21 LedBasy 定义LcdBusy为Px PlNS

文档评论(0)

1亿VIP精品文档

相关文档