• 走进C/C++函数的名字改编

    现在的编程语言中,不同的变量或函数可以用相同的标识符命名,只要它们占据不同的命名空间(通常由模块、类或作用域定义)或有不同的签名(如在函数重载中)时,就可能会出现标识符重名的情况。另外,根据编译器和平台的不同,函数的调用方式在编译为机器代码后也可能使用不同的、专门的调用约定。

    2023-05-15 digiproto

  • 思考:数字卫星可视化如何实现?

    随着信息化时代的到来,全球范围内的通信和数据传输需求急剧增加,传统的有线通信和数据传输方式已无法满足大范围、远距离的通信和数据传输需求,卫星通信和数据传输技术应运而生。

    2023-05-15 digiproto

  • 二进制文件符号信息

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

    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

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

  • VxWorks任务调度

    大家知道,CPU运行的基本单位其实是一条一条的指令,如今我们通过编译器就可以将代码生成为机器指令,也就是所谓的二进制文件,这些指令组成了程序。程序在装入内存中执行时被称之为任务,或者说是进程。随着处理器性能的日益强大,程序也越来越复杂,因此诞生了操作系统来帮助我们管理进程,更合理地分配处理器资源,这也就是任务调度的目标。而在VxWorks中,能够调度起这些任务,最核心的就是reschedule调度算法了。

    2023-05-15 digiproto

首页
产品
新闻
联系