-
操作系统的靠谱管家——虚拟内存系统
随着计算机技术的发展,由于桌面应用图形化的需求、视频图像技术的升级、以及互联网的快速普及,随之而来的是内存、磁盘的容量等计算机硬件的升级需求变得迫切;同时代码的业务逻辑也变得非常复杂,程序的体积呈指数级增长。
2023-05-15 digiproto
-
PowerPC E500 MMU详解
1. 什么是MMU?MMU是Memory Management Unit的缩写,中文名称为内存管理单元。MMU是负责处理器(CPU)的内存访问请求的计算机硬件,其功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、缓存cache的控制等。MMU是一个与软件密切相关的硬件部件,也是运行linux等依赖MMU内存管理单元操作系统内核机制的最大部件之一。如果处理器没有MMU,CPU内部执行单元
2023-05-15 digiproto
-
虚拟ECU:唤醒传统汽车开发灵魂
迪捷软件作为汽车等安全关键领域产品与解决方案提供商,通过涵盖基于模型的系统工程(Model Based System Engineering,MBSE)的整个生命周期的全系列产品,为汽车电子系统开发提供完整的解决方案,支持虚拟ECU和从系统到软件的车辆虚拟样机设计。
2023-05-15 digiproto
-
走进C/C++函数的名字改编
现在的编程语言中,不同的变量或函数可以用相同的标识符命名,只要它们占据不同的命名空间(通常由模块、类或作用域定义)或有不同的签名(如在函数重载中)时,就可能会出现标识符重名的情况。另外,根据编译器和平台的不同,函数的调用方式在编译为机器代码后也可能使用不同的、专门的调用约定。
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
-
浅谈ARMv8-A系列CPU的架构
1978年底,物理学家Hermann Hauser和工程师Chris Curry,在英国剑桥创办了CPU公司(Cambridge Processing Unit),主要业务是为当地市场供应电子设备。1979年,CPU公司改名为Acorn计算机公司。
2023-05-15 digiproto