-
关于嵌入式可执行程序,你了解多少?
嵌入式系统由硬件系统和软件系统组成,因此为了使整个嵌入式系统运行起来,必须有相应的程序,我们一般所说的程序,实际上就是存储在硬件设备中的一些可执行代码。可执行代码包括嵌入式操作系统和应用软件。
2023-05-15 digiproto
-
C语言函数在硬件中的执行原理
众所周知,C语言的应用程序总是以「main」函数作为程序入口地址,那到底什么是函数呢? 程序的执行其实本质上是CPU对指令的处理,那么一个C函数的本质其实也相当于一组协同工作的指令,而这组指令能够通过相互之间的配合实现特定的功能(Function)。例如从SPI缓冲区中提取数据,配置定时器的延时时间,或者从内存读取数据并写入DAC的寄存器中。 一个函数能完成的功能往往不止一个,比如某个函数能够实现通过串口传输一个字节的数据,然后检查状态位直到接收到一个字节,最后把接收到的所有数据组合起来做实际的计算。
2023-05-15 digiproto
-
Linux进程间通信
Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,Inter-Process Communication)。
2023-05-15 digiproto
-
VxWorks任务调度
大家知道,CPU运行的基本单位其实是一条一条的指令,如今我们通过编译器就可以将代码生成为机器指令,也就是所谓的二进制文件,这些指令组成了程序。程序在装入内存中执行时被称之为任务,或者说是进程。随着处理器性能的日益强大,程序也越来越复杂,因此诞生了操作系统来帮助我们管理进程,更合理地分配处理器资源,这也就是任务调度的目标。而在VxWorks中,能够调度起这些任务,最核心的就是reschedule调度算法了。
2023-05-15 digiproto
-
细数嵌入式开发与通用系统开发的不同
嵌入式开发指在嵌入式操作系统下进行开发,包括在系统化设计指导下的硬件和软件以及综合研发。而通用系统开发则是指在具有有多道批处理、分时、实时处理功能中的两种及以上功能的操作系统中进行开发。
2023-05-15 digiproto
-
软件定义汽车带来的困境---如何破局?
随着科技的发展,人们的生活正在发生翻天覆地的变化巨大改变,生活质量不断提高,这使得人们对智能化的服务体验的要求越来越高。传统的汽车行业单纯地的改变物理硬件,只能在局限的空间内改善舒适度,而无法适应人们对智能化的需求。
2023-05-15 digiproto
-
SkyEye仿真平台下的操作系统实验- 准备篇(一)
《一步步写嵌入式操作系统》从零开始实现了操作系统leeos,并在SkyEye虚拟机中进行了实验验证。 leeos是一个简单的多任务操作系统,进程调度方式为时间片轮询。leeos使用伙伴算法实现了动态内存分配,支持romfs文件系统,支持运行elf格式的可执行文件。leeos提供了一个简单的驱动程序框架,和一个统一的异常与中断处理架构,并通过使用中断嵌套的方法提高了中断效率。leeos支持mmu,使用两级页表结构实现虚拟地址到物理地址的转换。以上涉及到的技术都在《一步步写嵌入式操作系统》中有详细讲解。
2023-05-15 digiproto
-
手把手教你!基于Jenkins的嵌入式软件持续集成方法
嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。嵌入式软件与嵌入式系统是密不可分的,嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4个部分组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式软件就是基于嵌入式系统设计的软件,它也是计算机软件的一种,同样由程序及其文档组成,是嵌入式系统的重要组成部分。
2023-05-15 digiproto