嵌入式软考备考_5 嵌入式程序设计

嵌入式程序设计

开发流程

要想某个功能要用硬件还是软件实现(硬件快,但是耗资源)?BSP?裸机还是OS?

硬件的设计与实现-》设备驱动软件的设计与实现-》os的选择,移植,api接口函数的设计-》支撑软件的设计与调试-》应用程序的设计与调试-》系统联调,样机交付。

程序下载流程

诸多程序文件编译生成 .obj 文件,链接生成二进制文件,下载到开发板上。

image-20230506151305907

特点:

  1. 交叉编译,即在一个平台上生成在另一个平台上运行的代码(PC上生成开发板上的程序)。
  2. 仿真调试。
  3. 开发板是中间目标机。
  4. 资源有限。

开发模式:本机开发(如以前的计算机,二进制直接编程),交叉开发(宿主机开发,下载到目标机),模拟开发(宿主机上模拟目标平台)。

程序设计语言

低级语言:机器语言,asm。

高级语言:c,c++.

汇编语言包括:指令语句,伪指令语句(给编译器看的),宏指令语句(重复执行的多个指令合并为一个宏指令)。

image-20230506151916875

表达式

前缀:+ab

扫描二维码关注公众号,回复: 15069625 查看本文章

中缀:a+b

后缀:ab-

image-20230506152732178

ab-c5+*

编译

解释:不产生目标文件,边分析解释执行。

编译:产生

image-20230506153539941

编译过程中相关符号信息要存入符号表。

词法:非法字符,关键字。

语法:如 if else

语义:如死循环。

C语言

预处理

image-20230506154114102

简单的用途:可以代替函数,如#define square_1(x) x*x

预定义宏

image-20230506154451014

数据类型

image-20230506154611913

存储管理

image-20230506155458931

函数:入栈。

动态申请的数据:在堆中申请。

全局变量在最开始申请,程序结束时释放。static声明的全局变量只在本文件中可见。

面向对象

对象:现实世界中的实体,封装了属性和操作。

分类:把对象抽象成一个类。

通过消息的通信:类之间的通信。

继承:拓展。

三个特点:多态,重载,覆盖。

private:本类中可以访问。

缺省(default):本包内可以访问。

protected:其他包里的子类可访问。

public:都能访问。

例题:

image-20230506165443051

*p的值是字符串str的起始地址。

A,字符串地址不能改。

B,把p重新指向字符串ABC,可以。

C,给数组第一个元素赋值为ABC,不行。

D,和A一样。

例题:

image-20230506165732453

A错了,脚本语言也可以使用。

例题:

image-20230506165911869

A,符号表是编译语言处理符号用的。

B,对。

C,不受机器影响。生成目标代码时才受机器影响。

猜你喜欢

转载自blog.csdn.net/jtwqwq/article/details/130532090