嵌入式系统包含两种截然不同的故障率类型。硬件和软件。硬件故障的概率是众所周知的,可以理解的概率曲线,可以从图1中观察到。在首次制造电子设备时,会有很短的时间出现故障的概率… 继续阅读 了解嵌入式系统故障率
类别: 软件技术
技巧和窍门–使用编译器内部函数编写可移植代码
并非所有预处理器指令均创建为相等。根据使用的是GNU C,IAR嵌入式工作台,Keil uVision还是任何其他编译器,开发人员将具有不同的预处理器指令。 ANSI-C具有有限数量的预处理器指令,该指令包含在标准中,可以视为可移植的。编译器供应商有能力… 继续阅读 技巧和窍门–使用编译器内部函数编写可移植代码
了解易失性访问警告
时不时地会出现一个有趣的编译器警告,该警告使开发人员感到惊讶。这样的警告之一是”未定义的行为:此语句中未定义易失性访问的顺序”在语句中使用IAR Workbench工具链在FreeRTOS端口中弹出此警告的示例。… 继续阅读 了解易失性访问警告
技巧和窍门–创建和使用便携式类型的7个技巧
对于嵌入式软件开发人员而言,编写可重用,可移植且经得起时间考验的软件至关重要。以下是在C中创建和使用可移植类型的7个技巧。技巧1–使用stdint.h使用内置数据类型可能会导致不同编译器之间的可移植性问题。 C标准未指定… 继续阅读 技巧和窍门–创建和使用便携式类型的7个技巧
使用条件复杂度测试嵌入式软件
工程师似乎难以解决的嵌入式软件开发领域之一就是测试。工程师通常会对设计和实施阶段感到兴奋,但是当要证明系统正常工作时,工作和/或兴趣确实开始减弱。考虑到可能花费的时间和精力,这是完全可以理解的… 继续阅读 使用条件复杂度测试嵌入式软件
嵌入式基础 –价值观和副作用
许多嵌入式软件开发人员学会了实时为嵌入式系统编程。结果通常是对该语言的非正式介绍,但往往会遗漏关键术语并造成理解空白。让我们探讨一些开发人员常常会误解的常见C编程语言概念。通常,在职业生涯初期,开发人员就会… 继续阅读 嵌入式基础 –价值观和副作用
CEC–用C语言编写可移植且强大的固件
课程概述:软件开发周期总是比启动日期要短。固件开发人员可以动手完成架构,设计,实施和测试。从头开始是一项艰巨的工作,这很耗时,在当今的市场上已不再可能。本课程将演示如何编写可移植且功能强大的… 继续阅读 CEC–用C语言编写可移植且强大的固件
技巧和窍门–何时进行ASSERT或不ASSERT…
就是那个问题。断言的使用通常甚至使最有经验的开发人员也感到困惑。开发人员应考虑要传递给ASSERT的表达式是潜在的错误情况,还是试图捕获错误。这种情况下的错误将是应满足以下条件的运行时条件:… 继续阅读 技巧和窍门–何时进行ASSERT或不ASSERT…
技巧和窍门–ARM CMSIS简介
在过去的十年中,微控制器已经变得极为复杂,从复位向量开始从头开始开发固件已成为历史。软件的复杂性正以指数级的速度增长,并导致开发人员以越来越高的速度依赖和利用第三方组件。为了缓解… 继续阅读 技巧和窍门–ARM CMSIS简介
工具类–开源循环缓冲区
Circular buffers are a critical component to have in the embedded software engineers’ toolbox. Over the years there have been many different implementations and examples of circular buffers that have littered the internet. I’ve grown particularly fond of the open source CBUF.h module that can be found at //github.com/barraq/BRBrain/blob/master/firmware/CBUF.h The CBUF.h module implements a circular buffer using … 继续阅读 工具类–开源循环缓冲区