嵌入式系统的c语言—译自《c for embedded systems》

嵌入式系统的c语言—译自《c for embedded systems》

ID:15799115

大小:3.29 MB

页数:68页

时间:2018-08-05

嵌入式系统的c语言—译自《c for embedded systems》_第1页
嵌入式系统的c语言—译自《c for embedded systems》_第2页
嵌入式系统的c语言—译自《c for embedded systems》_第3页
嵌入式系统的c语言—译自《c for embedded systems》_第4页
嵌入式系统的c语言—译自《c for embedded systems》_第5页
资源描述:

《嵌入式系统的c语言—译自《c for embedded systems》》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、嵌入式系统的C语言译自《CforEmbeddedSystems》讲稿刘永重译一、C语言基础1、什么是C?‘C’程序语言最初是由DennisRitchie在1971年为UNIX系统开发并实现的。C的一个最大优点是与任何特定的硬件或系统无关。这使得一个用户写的程序不作任何修改就能运行在几乎所有的机器上。C通常被称为中级计算机语言,因为它将高级语言的要素与汇编语言的功能结合了在一起。2、为什么用C?C非常灵活,而且可随心所欲。这种自由赋予C非常强大的功能,有经验的用户可以掌握;C是一个相对小的语言,但是

2、它经久耐用;C有时被认为是“高级汇编语言”;低级(位操作)编程也容易实现;松类型(不象其它高级语言);C是结构化编程语言;C允许你创建你脑海中已有的任何任务。C保留了程序员知道正在做的事情的基本体系;它只需要他们明白地表达其意图。3、为什么不用C?文化的问题…当考虑转到C语言时,我们会遇到一些共同的问题:产生大而低效的代码;标准IO程序的雍余代码(printf,scanf,strcpy等);存贮器定位的使用:malloc(),alloc()…;堆栈的使用,在C中不很直接;在RAM和ROM中数据的声

3、明;难于写中断服务程序。4、8位微控制器的ANSIC对于嵌入式系统,纯粹的ANSIC并不方便,因为:嵌入式系统与硬件打交道。ANSIC提供的在固定存贮空间用寄存器寻址的工具非常拙劣;几乎所有的嵌入式系统使用中断;ANSIC有各种类型的促进规则,对8位机来说绝对是性能杀手;一些微控制器结构没有硬件支持C堆栈;很多微控制器有多个存贮空间。5、打破一些C范例当在低端的8位微控制器上用C语言,应想法使代码变小。这意味着打破一些编程规则:开/关全局中断;使用GOTO语句;全局标号;全局寄存器段;指针支持。6

4、、嵌入式与桌面编程嵌入式编程环境的主要特点:有限的RAM;有限的ROM;有限的栈空间;面向硬件编程;严格的定时(ISR,任务,…);很多不同种类的指针(far/near/rom/uni/paged/…);特殊关键字/标识符(@,interrupt,tiny,…)。7、汇编与C编译器只是一个能干的优秀汇编程序员。1写能够转换为高效率汇编代码的好的C代码,比手工写高效率的汇编代码容易得多。C是终极解决办法,但其本身并未终结。8、为什么改用C?有很多原因用C语言而不用汇编:C使我们提高效益;用C写的代码

5、更可靠;C代码更容易升级和扩展;不同平台之间更容易迁移;代码容易维护;文档、书籍、第三方库和程序都可得到。9、C代码结构如下图所示,一个C程序基本由以下部分组成:预处理命令、类型定义、函数原型(声明传给函数的函数类型和变量)、变量和函数。一个程序必须有一个main()函数,每个命令行必须用分号(;)结束。10、C函数一个函数的结构如下:类型函数名(参数){本地变量C语句}211、C关键字1)数据类型charshortsignedunsignedintfloatlongdouble2)修饰符cons

6、tstaticvolatilerestrict3)标识符structunionvoidenum4)选择体ifelseswitchcasedefault5)存贮指定registertypedefautoextern6)循环体dowhilefor7)跳转gotocontinuebreakreturn8)功能指定inline9)预处理指示#include#define#undef#line#error#pragma10)条件编译3#if#ifdef#ifndef#elif#else#endif12、C操

7、作符1)基本表达式和后缀操作符()子表达式和函数调用[]数组下标->结构指针.结构成员++增加(后缀)--减少(后缀)2)一元操作符!逻辑非~取补++增加(前缀)--减少(后缀)-一元减+一元加(类型)类型强制*间接指针&取地址sizeof大小3)赋值符=相等赋值+=加等于-=减等于*=乘等于/=除等于%=求余等于<<=左移位等于>>=右移位等于&=按位与等于^=按位异或等于

8、=按位或等于4)位操作&位与^位异或

9、位或<<位左移>>位右移5)数学运算*乘/除%求余+加-减6)关系运算<小于<=小于

10、或等于>大于>=大于或等于==相等测试!=不等测试7)逻辑运算&&逻辑与

11、

12、逻辑或8)条件运算?:条件测试9)序列,逗号二、嵌入式编程1、变量变量的类型决定其可带值的类型。也就是说,为变量选择一个类型与我们使用这个变量的方法直接相关。我们将学习C的基本类型、怎样写常量和声明这些变量。1.1选择一个类型“值集合”是有限的。C的整数类型不能代表所有整数;它的浮点类型也不能代表所有浮点数。当声明一个变量并为它选择一个类型,你应紧记你需要的值和操作。1.2C的基本数据类型4ANSI标准并没

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。