- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式C语言编程要点解读
嵌入式C语言编程要点 说明: (1)无论8位还是32位系统中,99%以上的代码是用C语言完成的。只有不到1%的代码是必须用汇编完成的。 (2)在ARM系统中启动引导程序bootloader可分为两大段,第一段用汇编完成,主要是初始化必要的硬件(关看门狗、关中断、设置系统时钟、初始化内存控制器、初始化各模式堆栈指针、设置缺省中断处理函数、为C语言准备环境)第二段用C语言完成(主要包括进一步的初始化硬件外设、代码复制(解压)、准备参数、引导系统启动、甚至网络下载代码、shell等功能) (1)嵌入式C语言指针对绝对地址的访问方法 #define rBWSCON (*(volatile unsigned *)0x1C80000) #define rUTXH0 (*(volatile unsigned char *)0x1D00023) unsigned int tmp; tmp=rBWSCON; rBWSCON = 0x3f478; (2)嵌入式C语言函数指针的使用 #define DOWNLOAD_ADDR 0x04c00000 void (* restart)(void)=(void(*)(void)0x0); void (* run)(void)=(void (*)(void)DOWNLOAD_ADDR); (3)嵌入式中断函数的声明 void __irq IRQ_Eint1(void) { //C语言代码 } #define BEEPCON 0 /* P0.7引脚控制B1,低电平蜂鸣 */ /**************************************************************************** * 名称:IRQ_Eint1() * 功能:外部中断EINT1服务函数,取反B1控制口。 ****************************************************************************/ void __irq IRQ_Eint1(void) { uint32 i; i = IO0SET; // 读取当前B1控制值 if( (iBEEPCON)==0 ) // 控制B1输出取反 { IO0SET = BEEPCON; } else { IO0CLR = BEEPCON; } EXTINT = 0x02; // 清除EINT1中断标志 VICVectAddr = 0; // 向量中断结束 } /**************************************************************************** * 名称:main() * 功能:初始化外部中断1(EINT1)为向量中断,并设置为下降沿触发模式,然后等待外部中断。 * 说明:在STARTUP.S文件中使能IRQ中断(清零CPSR中的I位)。 ****************************************************************************/ int main(void) { PINSEL0 = 0 // 设置管脚连接,P0.14设置为EINT1 IO0DIR = BEEPCON; // 设置B1控制口为输出,其它I/O为输入 EXTMODE = 0x02; // 设置EINT1中断为边沿触发模式 EXTPOLAR = 0x00; // 设置EINT1中断为下降沿触发 /* 打开EINT1中断(设置向量控制器,即使用向量IRQ) */ VICIntSelect = 0 // 设置所有中断分配为IRQ中断 VICVectCntl0 = 0x2F; // 分配EINT1中断到向量中断0 VICVectAddr0 = (int)IRQ_Eint1; // 设置中断服务程序地址 EXTINT = 0x02; // 清除EINT1中断标志 VICIntEnable = 0 // 使能EINT1中断 while(1); // 等待中断 return(0); } (4)嵌入式C和C++兼容
您可能关注的文档
- XT1511-WWA灯珠规格书讲解.doc
- xxx区电子政务建设和管理办法讲解.doc
- 岩石力学-学生习题1解读.doc
- 岩溶地区桥梁桩基勘察、设计及溶洞处理方案设计攻关解读.ppt
- xxx电子政务中心平台和新大楼统一网络建设讲解.doc
- xxx设计讲解.doc
- 岩石强度理论解读.ppt
- 岩浆岩总论二解读.ppt
- 岩石特性对旋挖钻的施工影响解读.ppt
- 岩浆岩总论三解读.ppt
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
最近下载
- 结题报告高中物理小课题.PPT
- NB∕T 32037-2017 光伏发电建设项目文件归档与档案整理规范.pdf VIP
- 2024《高考志愿填报咨询服务意愿的影响因素实证研究》16000字.docx
- 无线网络优化模考试题(附答案).docx
- 中图版高中地理必修第二册课后习题 第四章 国土开发与保护 第一节 京津冀协同发展的地理背景 (2).doc VIP
- 工厂消防安全设备检查记录表.docx VIP
- 海绵城市监理实施细则.doc VIP
- 人教版小学二年级数学下册期中试卷.doc VIP
- 巴黎奥运樊振东乒乓球故事介绍【优质公开课】精品PPT课件模板.pptx
- 丽声北极星分级绘本第一级上 A Day with Monster Toon课件 .pptx VIP
文档评论(0)