766培训网
电脑培训
嵌入式开发流程是怎样的

嵌入式开发流程是怎样的

发布时间 :2021-02-03 11:30:35 浏览量:240 收藏
导读:

学习嵌入式开发,需要具备简单的硬件电路设计能力,包括数字电路和模拟电路。下面小编给大家介绍嵌入式开发流程是怎样的,一起来看看吧。

嵌入式开发流程是怎样的

嵌入式开发的流程

根据使用的开发工具套件不同,嵌入式软件开发流程会有差异,但主要步骤大致相同。对于使用宿主机(PC)的集成化开发环境,软件开发流程一般包括创建项目、添加文件、编译连接、下载调试等步骤,具体如下:

(1)创建工程项目:在配置硬件设备和安装软件开发工具后,就可以开始创建工程项目,通常需要选择项目文件的存储位置及目标处理器。

(2)添加项目文件:开发人员需要创建源程序文件,编写应用程序代码,并添加到工程项目中;还将使用设备驱动程序的库文件,包括启动代码、头文件和一些外设控制函数,甚至中间件等。这些文件也需要添加到项目中。

(3)配置工程选项:源于硬件设备的多样性和软件工具的复杂性,工程项目提供了不少选项,需要开发人员配置,如输出文件类型和位置、编译选项和优化类型等,还要根据选用的开发板和在线仿真器,配置代码调试和下载选项等。

(4)交叉编译连接:利用开发软件工具对项目的多个文件分别编译,生成相应的目标文件,然后连接生成最终的可执行文件映像,以下载到目标设备的文件格式保存。如果编译连接有错误,返回修改;如果没有错误,先进行软件模拟运行和调试,再下载到开发板运行和调试。

(5)程序下载:目前,绝大多数微控制器都使用闪存保存程序。创建可执行文件映像后,需要使用在线仿真器(或串口、网口)将其下载到微控制器的闪存中,实现闪存的编程;还可以将可执行文件下载到SRAM中运行。

(6)运行和调试:程序下载后,可以启动运行,看是否正常工作。如果有问题,连接在线仿真器,借助软件开发工具的调试环境进行断点和单步调试,观察程序操作的详细过程。如果应用程序运行有错误,返回修改。

嵌入式开发要掌握的知识点

1、具备简单的硬件电路设计能力,包括数字电路和模拟电路;做嵌入式软件对硬件一样要有一定的基础。

2、MCU设计与应用,从单片机到ARM到DSP等要具备根据客户要求设计产品的能力;外围端口和设备的设计使用以及驱动程序的编写能力,包括ADC、FLASH、EEPROM、RTC、Timer、GPIO、CAN、UART、I2C、SPI、以太网、液晶显示器等等。

3、操作系统方面至少要精通一种嵌入式操作系统,比如uCOSIII、freeRTOS 、Vxworks等,并且一定要学嵌入式linux ,搞明白多任务调度、信号量、邮箱等的原理和使用;在实际的项目中使用这些操作系统并逐渐掌握它们。

4、能编写常见的linux平台下的外围设备驱动,包括但不限于ADC、GPIO、UART、I2C、摄像头、SD卡、网卡、SPI等等,搞明白字符设备、块设备以及网络设备的常用设备驱动程序架构。

5、具备GUI设计能力,可以学习Qt,它的跨平台特性使得一套设计可以应用于不同的平台包括windows以及linux。

6、具备多线程编程能力,弄懂线程池的原理并应用到实际工作中。

7、具备高并发网络通信编程能力,epoll以及libevent 的使用和设计。

8、精通C/C++,并涉猎其他编程语言比如python。

9、具备至少一种数据库编程能力,嵌入式可以学习SQLite。

10、掌握常用数据结构及算法的原理以及编程实现,包括链表、队列、二叉树等,掌握常用排序、查找等算法的实现;多关注一些开源项目,从中学习编程能力,提高自己。

学习嵌入式的书籍

一、Linux基础

《Linux与UnixShell编程指南》

二、C语言基础

1、《CPrimerPlus,5thEdition》

2、《嵌入式Linux应用程序开发详解》

三、Linux内核

1、《深入理解Linux内核》

2、《Linux内核源代码情景分析》

四、研发方向

1、《UNIXNetworkProgramming》

2、《TCP/IP详解》

3、《Linux内核编程》

4、《Linux设备驱动开发》

5、《Linux高级程序设计》