- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式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++兼容
您可能关注的文档
- 2.4桩与地基基础工程方案.ppt
- 岩土工程CAD深基础支护.ppt
- 2.5_焦耳定律_课件方案.ppt
- 2.5_做框架方案.ppt
- 2.5万吨制氢操作规程方案.doc
- 2.5焦耳定律(上课用)方案.ppt
- 岩土工程特殊施工技术(降水 冻结法 注浆 旋喷桩)_ppt.ppt
- 2.5焦耳定律3-1方案.ppt
- 2.5《做框架》PPT方案.ppt
- 2.5全等三角形的判定方法小结方案.ppt
- 6.3基层群众自治制度+课件-2025-2026学年高中政治统编版必修三政治与法治.pptx
- 2.2更好发挥政府的作用+课件-2025-2026学年高中政治统编版必修二经济与社会.pptx
- 考前押题01 阅读理解6大常考话题(期中专项训练)(原卷及解析).docx
- 6.2民族区域自治制度课件-2025-2026学年高中政治统编版必修三政治与法治 (1).pptx
- 2025-2026学年高一英语上学期期中模拟卷01(北师大版)(原卷及解析).docx
- 1.1+公有制为主体+多种所有制经济共同发展+课件-2025-2026学年高中政治统编版必修二经济与社会.pptx
- 年产10万吨氧化锌(有色金属粉末材料)生产加工项目可行性研究报告模板-立项申报用.doc
- 电子废旧线路板回收拆解再利用项目可行性研究报告模板-拿地立项申报.doc
- 年产12万套汽车电子控制模块项目可行性研究报告模板-拿地立项申报.doc
- 新建商用大飞机零部件项目可行性研究报告模板拿地申报.doc
最近下载
- 智能制造专业群建设方案.pdf VIP
- 幼儿园教师资格考试综合素质(教育法律法规)历年真题试卷汇编含答案解析.doc VIP
- 面试口语宝典(必杀技).doc VIP
- 《纺织品热转印》(TZFCX 1003-2024).pdf VIP
- 中央经济会议2024原文及解释.docx VIP
- PEP五年级-Unit1-2测试卷含听力材料.doc VIP
- 2023-2024学年高二生物期中冲刺(选择题专练45道)(解析版)(人教版2019选择性必修3).docx VIP
- NB_T47028-2023压力容器用镍及镍合金锻件.pdf VIP
- 高手接话:高情商的讲话方法.pdf VIP
- 网络与信息安全意识培训-202308-脱敏.pptx VIP
文档评论(0)