• ARM发家史:无名者的逆袭

    截至2021年底,ARM芯片产量已超2000亿,稳居智能手机市场霸主地位。那么,它背后的公司到底是怎样发展起来的呢?

    2023-05-15 digiproto

  • 浅谈CompCert:经过形式化验证的可信编译器

    对编译器的正确性进行验证的诸多手段中,最为严格的莫过于采用形式化方法。点开原文查看经过形式化验证的可信编译器CompCert‍。

    2023-05-15 digiproto

  • 二进制文件符号信息

    在日常的开发工作中,程序员经常使用gdb工具来调试二进制编译文件,以定位和解决一些bug。但同时,很少会有人关注二进制文件中的调试信息从何而来,又是怎么保存和解读的呢?

    2023-05-15 digiproto

  • 关于嵌入式可执行程序,你了解多少?

    嵌入式系统由硬件系统和软件系统组成,因此为了使整个嵌入式系统运行起来,必须有相应的程序,我们一般所说的程序,实际上就是存储在硬件设备中的一些可执行代码。可执行代码包括嵌入式操作系统和应用软件。

    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

  • 关于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

首页
产品
新闻
联系