嵌入式

嵌入式软件开发编程规范很重要,很重要,很重要!

Ⅰ 写在前面

不知道大家有没有这样的感受:看到不规范(杂乱差)的代码,瞬间就没有看下去的欲望了。

相信大家看到标题都应该能明白编程的规范及原则对于每一个软件开发的工程师来说是多么重要。

初学者编写测试程序、小的模块程序也许不能感受它的重要性;但有经验及大型项目开发的人就知道程序的规范性对他们来说是有多么的重要。

Ⅱ 关于编程规范及原则

编程规范也就是编写出简洁、可维护、可靠、可测试、高效、可移植的代码,提高产品代码的质量。

本文针对嵌入式,主要结合C语言编程的规范给大家讲述。

1. 头文件

对于C语言来说,头文件的设计体现了大部分的系统设计,不合理的头文件布局是编译时间过长的原因。

有很多人将工程中所有的头文件包含在一个include.h文件中,然后在每一个.c源代码文件中包含include.h头文件,这样做可以让代码看上去简洁,但实际忽视了编译效率问题,而且代码的可移植性也不好。

原则:

A. 头文件中适合放置接口的声明,不适合放置实现;
B. 头文件应当职责单一;
C. 头文件应向稳定的方向包含。

规则:

硬件电路设计的几个注意事项!

嵌入式设计是个庞大的工程,今天就说说硬件电路设计方面的几个注意事项,首先,咱们了解下嵌入式的硬件构架。

我们知道,CPU是这个系统的灵魂,所有的外围配置都与其相关联,这也突出了嵌入式设计的一个特点硬件可剪裁。在做嵌入式硬件设计中,以下几点需要关注。

第一、电源确定

电源对于嵌入式系统中的作用可以看做是空气对人体的作用,甚至更重要:人呼吸的空气中有氧气、二氧化碳和氮气等但是含量稳定,这就相当于电源系统中各种杂波,我们希望得到纯净和稳定符合要求的电源,但由于各种因素制约,只是我们的梦想。这个要关注两个方面:

a、电压

嵌入式系统需要各种量级的电源比如常见的5v、3.3v、1.8v等,为尽量减小电源的纹波,在嵌入式系统中使用LDO器件。如果采用DCDC不仅个头大,其纹波也是一个很头疼的问题。

b、电流

嵌入式系统的正常运行不但需要稳定足够的电源,还要有足够的电流,因此在选择电源器件的时候需要考虑其负载,我设计时一般留有30%的余量。

嵌入式系统中boot的理解

1. 首先boot和boot loader是一个东西吗?是的,都是一个东西。

2. Boot中包含了CPU的初始化代码,Memory与外围接口的初始化代码,随后会回引系统(OS),最后将控制权交给OS,编译完成后将二进制文件烧入FLASH。如果板卡复位,CPU异常矢量或复位矢量指的地址就是FLASH地址,Flash中的Boot代码初始化CPU、Memory、简单的外设,随后把Flash中的OS移到内存里,随后OS就会引导起来。

3. boot其最大的作用就是系统初始化,分配内存,将应用代码(可以带OS,也可以不带)从FLASH中导入内存,最后将运行指针指向这段代码,把控制权交给应用程序。

4. Bootloader是在操作系统运行之前执行的一小段程序,通过这一小段程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。意思就是说如果我们要想让一个操作系统在我们的板子上运转起来,我们就必须首先对我们的板子进行一些基本配置和初始化,然后才可以将操作系统引导进来运行。

5. 没有操作系统的简单嵌入式计算机,系统上电后,通常直接进入用户应用程序,有操作系统的计算机中,上电后首先运行的是一个标准化的软件—–引导程序(bootloader)

嵌入式物联网(IoT)的六大硬件设计挑战

在开发嵌入式物联网设备时,硬件设计被视为物联网产品成功的关键组成部分。为了确保嵌入式物联网产品满足所需功能,功耗低、安全可靠,嵌入式物联网设备制造商在这些设备的硬件设计阶段面临许多挑战。随着物联网的出现,由于连接设备的快速发展,嵌入式系统市场出现了大幅增长。

嵌入式系统在物联网中的作用

物联网(IoT)被定义为一个过程,其中对象配备有涉及硬件板设计和开发的传感器,执行器和处理器,软件系统,Web API和协议,它们共同创建了嵌入式系统的连接环境。这种连接环境允许技术跨多个设备,平台和网络连接,创建一个通信网络,彻底改变我们与世界进行数字交互的方式。例如与我们的环境,社区和家庭的互动和行为,甚至与我们自己的身体。

我们周围的嵌入式系统采用商业系统的形式,如自动售货机,智能信息亭,AC控制器,联网汽车,酒店票据打印机等,它们能够执行独特的各种操作。因此,在设计这些嵌入式物联网系统时,需要针对特定​​功能进行设计,具有良好的产品设计质量,如低功耗,安全架构,可靠的处理器等。但是,设计嵌入式物联网硬件系统不简单。

在嵌入式系统上运行应用程序缺乏必要的灵活性

设计出更高效的嵌入式电路只需七个要素!

嵌入式开发项目中,首先需要做需求分析,然后根据需求分析进行综合考虑,这里给出几个嵌入式硬件设计时特别要注意的问题。

1、MCU的选择

适用于STM32的五大嵌入式操作系统,你选哪个?

基于STM平台且满足实时控制要求操作系统,有以下5种可供移植选择,分别为μClinux、μC/OS-II、eCos、FreeRTOS和都江堰操作系统(djyos)。

下面分别介绍这五种嵌入式操作系统的特点及不足。

1、μClinux

嵌入式初学者注意事项

1 嵌入式系统的知识体系

嵌入式单片机程序架构之顺序结构

时间片轮询法,在很多书籍中有提到,而且有很多时候都是与操作系统一起出现,也就是说很多时候是操作系统中使用了这一方法。不过我们这里要说的这个时间片轮询法并不是挂在操作系统下,而是在前后台程序中使用此法。也是本文要详细说明和介绍的方法。

一招教你ARM嵌入式系统硬件怎么用?

ARM嵌入式系统硬件设计

图1是系统硬件结构图“系统采用外部3.6864MHz的晶振产生内核所需要的18.432MHz、36.864MHz、49.152MHz或73.728MHz的时钟。

学习嵌入式不可不知的十六个硬件概念,你知道几个?

做嵌入式系统开发,经常要接触硬件。做嵌入式开发对数字电路和模拟电路要有一定的了解。这样才能深入的研究下去。

下面我们简单的介绍嵌入式开发中的一些硬件相关的概念。