大家不要只收藏不关注呀,哪怕只是点个赞也可以呀!🤣
粉丝私信发邮箱,免费发你PDF!!!
从这章开始,所学的内容就比较重要,希望大家可以认真复习这部分的内容,考试占的分值比较大。
程序设计、数据结构和算法
一、软件设计基础(只考选择题)
1、嵌入式软件开发原理
1.宿主机和目标机:
宿主机实际就是咱们开发的电脑,目标机是开发的板子。在宿主机上建立开发环境,完成编码和交叉编译工作,然后在宿主机和目标机之间建立连接,将目标程序下载到目标机中进行交叉调试和运行。
2.交叉编译:
嵌入式软件开发采用的编译为交叉编译。交叉编译就是在一个平台(通常是电脑)上生成,然后在另一个平台(嵌入式板卡)上执行的代码。就是用电脑去开发程序,编译程序,再用板卡去运行。
3.交叉调试:
一般通过串口或者网络去读取被调试进程的状态,可以打印或者去输一些命令去调试程序。在电脑上去查看和控制板卡上程序的运行。
4.开发特点或者挑战:
需要交叉编译、仿真调试、需要懂硬件、资源有限。软硬件都要懂,还要懂嵌入式系统、代码优化、I/O功能。
5.开发工具:
编辑器有vs、keil等,我一般用Source Insight。
编译器有windriver(开发Vxworks,商业收费)、gcc(linux开源免费)等。
调试器:串口软件等。
2、程序设计语言基本概念
1.解释和编译:
解释和编译都是将高级语言翻译成计算机硬件认可的机器语言加以执行。编译程序生成独立的可执行文件,直接运行,运行的适合无法控制源程序,效率高。而解释程序不生成可执行文件,可以逐条解释执行,便于调试,执行速度慢,效率低。
2.常见程序设计语言:
Fortran语言:科学计算,执行效率高。Pascal语言:为教学开发,表达能力强,C语言:指针操作能力强们可以开发系统级软件,高效。(C语言是效率比较高的语言,C生万物), C++:面向对象,高效,JAVA语言,跨平台。C#语言:面向对象,中间代码,.Net框架。XML(可扩展标记语言):标准通用标记语言的子集,是一种标记电子文件使其具有结构性的标记语言,python:一种面向对象、解释型计算机程序设计语言(爬虫用这种语言写)。Prolog:逻辑型程序设计语言。
3.程序设计语言的基本成分
数据成分:程序语言的数据和数据类型。数据分为变量、常量、全局量、局部量。数据类型有整形、字符型、双精度、单精度浮点型、布尔型等。
运算成分:算术运算、逻辑运算、关系运算、位运算等
控制成分:顺序结构、选择结构、循环结构。
传输成分:数据传输方式,如赋值处理、数据的输入输出。
3、编译程序基本原理
1.目标代码生成过程
二、C语言编程基础
这部分是最主要的,上午选择题会考56分,下午大题会考2030分,是最重要的部分。
知识结构图如下
C语言编程基础:数据类型说简单一点就是可以去定义数据是多长字节的数据,会在存储空间中占据多大的位置。C的不同关键字有不同的意义,怎么去用单独看一下就行。运算符包括逻辑运算(与或非)、位运算(左移、右移)、算术运算(加减乘除)。C语言结构包括语言判断
(if、if else、switch case),循环语句(while、for、do while,break、continue 、goto),C函数和作用域,全局变量就是程序中所有地方都能改变和调用的变量,局部变量就是某个文件或者函数里能调用,出了这个范围就用不了的。C指针是相对难的部分,但是也是C语言的精华所在,理解好这部分你就掌握了C语言。联合体和结构体类似,当作一种自定义的数据包,文件操作就是创建读写文件,字符串操作看看函数的概述就能知道怎么用。
但是C语言部分又是最基础的一部分内容,所以默认大家都是很熟悉的,这部分不做具体笔记,内容太多,如果大家对这部分不熟悉,还是建议去找本书来看,推荐《C和指针》,这本书我觉得是适合作为教材去用的,人手一本才最合适,经典中的经典。
三、数据结构与算法
还是大致过一下这本书,线性表有顺序表和链表,顺序表就是用连续的内存去春初,链表是用指针去链接起来,在内存上不是连续的,队列是先进先出,栈是先进后出,这个相当于是一种机制,定义成为这样。环形队列就是把队头和队尾连接到一起。树是一种非线性结构,一般树的代码用递归更容易实现。前序遍历:根左右,中序遍历:左根右,后序遍历,左右根。图是非线性结构,重点是邻接矩阵,邻接链表,以及深度优先遍历和广度优先遍历。算法的时间复杂度和空间复杂度要回计算。
这部分内容也是一本书,适合去看课,只要入门阶段就能应付考试,希望大家去网上找课去看,推荐BILIBILI去找课 ,免费的课就行,只看一部分内容,不需要学习的很深入。如果有需要,后面再单独出两部分笔记来讲C语言和数据结构,这两本书学好对你的编程事关重要。
这两部分都特别重要,简要的笔记记不了,希望大家还是走课程的路线,之前学过的肯定会很轻松,没学过不要想着速成了,慢慢看课,相当重要的内容。
嵌入式系统基础:笔记(一)
嵌入式软件学习路线(入门)
C陷阱与缺陷(读书笔记总)
嵌入式系统开发和维护:笔记(九)