-
关于嵌入式可执行程序,你了解多少?
嵌入式系统由硬件系统和软件系统组成,因此为了使整个嵌入式系统运行起来,必须有相应的程序,我们一般所说的程序,实际上就是存储在硬件设备中的一些可执行代码。可执行代码包括嵌入式操作系统和应用软件。
2023-05-15 digiproto
-
C语言函数在硬件中的执行原理
众所周知,C语言的应用程序总是以「main」函数作为程序入口地址,那到底什么是函数呢? 程序的执行其实本质上是CPU对指令的处理,那么一个C函数的本质其实也相当于一组协同工作的指令,而这组指令能够通过相互之间的配合实现特定的功能(Function)。例如从SPI缓冲区中提取数据,配置定时器的延时时间,或者从内存读取数据并写入DAC的寄存器中。 一个函数能完成的功能往往不止一个,比如某个函数能够实现通过串口传输一个字节的数据,然后检查状态位直到接收到一个字节,最后把接收到的所有数据组合起来做实际的计算。
2023-05-15 digiproto
-
关于Cortex-M3处理器内核中断异常处理机制你了解多少?
Cortex-M3处理器内核是ARM公司设计的Cortex-M系列的一款经典处理器内核,基于32位ARMv7内核架构,采用Thumb-2指令集,完全没有使用ARM指令集,即不能执行ARM指令。Thumb-2是16位Thumb 指令集的一个超集,在Thumb-2中,16位指令首次与32位指令并存。Cortex-M3处理器的特点包括:性能强劲、功耗低、实时性好、代码密度得到很大改善、低成本的整体解决方案。
2023-05-15 digiproto
-
浅谈状态机
在工业生产中,常常会使用到建模软件,而建模的目的就是为了在制造的前期进行验证和试错,以确保制造出来的东西能够很好的使用。而在建模仿真的领域中,状态机又是逃不开的一个话题。
2023-05-15 digiproto
-
设计模式六大原则你都知道吗?
单一职责原则的核心是功能单一化,功能单一化后每个模块只受该功能的影响,不会出现其他功能的改变导致必须修改该模块。比方说登录模块和用户管理模块,如果合在一起,会导致如果需要增加一个临时登录的功能必然会影响用户管理模块,至少上线的时候用户管理模块也是断掉的。
2023-05-15 digiproto
-
VxWorks任务调度
大家知道,CPU运行的基本单位其实是一条一条的指令,如今我们通过编译器就可以将代码生成为机器指令,也就是所谓的二进制文件,这些指令组成了程序。程序在装入内存中执行时被称之为任务,或者说是进程。随着处理器性能的日益强大,程序也越来越复杂,因此诞生了操作系统来帮助我们管理进程,更合理地分配处理器资源,这也就是任务调度的目标。而在VxWorks中,能够调度起这些任务,最核心的就是reschedule调度算法了。
2023-05-15 digiproto
-
L2C中CtempGen层语义保持证明中环境匹配的定义
ModelCoder是一款由迪捷软件自主研发,支持多种嵌入式系统建模并可以自动生成高安全可靠的C代码的软件设计和开发工具。ModelCoder支持同步数据流以及状态机等嵌入式模型,其从模型生成代码的过程经过了形式化验证,以保证生成过程的正确无误性,能够用于飞行控制系统,航空电子系统,核电的DCS等多个安全关键领域的嵌入式软件的设计和开发。
2023-05-15 digiproto
-
浅谈ARMv7-A协处理器CP15
协处理器,顾名思义就是协助型处理器,主要协助做一些主处理器无法执行或者执行效率不佳的事情,比如浮点、图像、音频处理这一类,随着硬件的发展,大多协处理器的功能都慢慢集成到主处理器中,但是某些特定的工作还是需要协处理器进行辅助。
2023-05-15 digiproto