C和汇编语言的混合编程实验_第1页
C和汇编语言的混合编程实验_第2页
C和汇编语言的混合编程实验_第3页
C和汇编语言的混合编程实验_第4页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验2c和汇编语言的混合编程实验1、实验目的学习在C程序中使用嵌入式汇编编写

程序了解嵌入式汇编的格式、语言特点2、实验设备S3c2410开发板ADS1.2集成开发环境,JTAG调试器串ロ连接线3、实验原理序在底层的操作仍然具有C程序无法替代的功能,有时候我们需要在C程序中嵌入汇编程序来完成一些直接对底层的诸如寄存器的操作。在ARMC语言中,使用关键词ーasm

来标志一段汇编指令程序:其格式

如下,UISE汇编程序嵌入式汇编语言不同的地方有:如果一行中有多个汇编指令,指令之间用分号(ワ隔离如果一天指令占多行,要使用续行符号(ヽ)在汇编指令段中可以使用C语言的注释语句4、实验电路图5、程序实现5.1创建GPFC.c源文件,应用C

语言实现嵌入式编程/・这是ー个利用GPIO做跑马灯

的程序・1/*GPI01到GPIO4分别对应2410

的GPF4至リGPF7*/#includen24101ib.hn#defineGPFCON(*(volatile

unsigned*)0x56000050)//PortF

control#defineGPFDAT(*(volatile

unsigned*)0x56000054)//PortF

data#defineGPFUP(*(volatile

unsigned*)0x56000058)//Pull-up

controlFintMain()GPFCON=(GPFCONIOxFFOO)&Ox

FFFF55FF;//GPF4—GPF7设置为

outputGPFUPI=OxFFOO;GPFpullup//disablewhile(l)GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxEO;Delay(lOO);GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxDO;Delay(lOO);GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxBO;Delay(lOO);GPFDAT=(GPFDAT&OxFFFFFFO

F)IOx7O;Delay(lOO);2创建GPFA.c源程序,实现在C程序中嵌入ARM汇编指令〃定义寄存器地址#defineGPFCON(*(volatile

unsigned*)0x56000050)//PortF

control#defineGPFDAT(*(volatile

unsigned*)0x56000054)//PortF

data#defineGPFUP(*(volatile

unsigned*)0x56000058)//Pull-up

controlFintMain()OHXJin〃时钟、端口、串口初始化SetClockDivider(l,1);xlVAMqoHIHd)ヨ。」SAS而sXanvq—Ixvn=UIgrlGPFCON=(GPFCONIOxFFOO)&Ox

FFFF55FF;//GPF4—GPF7设置为

outputGPFUPI=OxFFOO;GPFpullup//disablewhile(l)GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxEO;Delay(200);asm〃嵌入汇编指令GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxDO;Delay(200);GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxBO;Delay(200);GPFDAT=(GPFDAT&OxFFFFFFO

F)IOx7O;Delay(200);Uart_Printf(nthevalueofxis:%d\n”,x);〃串口输出5.3创建delays和GPFTEST.c源

文件,实现在C程序中汇编函数

调用/*delay,s*/EXPORTdelayAREADELAY,CODE,READONLY;该伪指令定义了一个代码段,段名为Init,属性只读;下面是延迟子程序p①prO,rO,ttl;rO=rOsub;rO=rO-1cmprO,#0x0将rO的值与〇相比较比较的结果不为〇(rO不为〇),继续调用delay,否则执行下一条语句movpc,Ir返回END程序结束符 ’/*GPFTEST.C刃/*c语言函数・//・端口F寄存器预定义・/#defineGPFCON(*(volatile

unsigned*)0x56000050)//PortF

control#defineGPFDAT(*(volatile

unsigned*)0x56000054)//PortF

data#defineGPFUP(*(volatile

unsigned*)0x56000058)//Pull-up

controlFexternintdelay(inttime);/・声明汇

编函数・/intMain()GPFCON=(GPFCONIOxFFOO)&Ox

FFFF55FF;//GPF4—GPF7设置为

outputGPFUPI=OxFFOO;GPFpullup//disablewhile(l)GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxEO;delay(Oxlffff);GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxDO;delay(Oxlffff);GPFDAT=(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论