- 博客(25)
- 收藏
- 关注
转载 一文搞懂ROS2的spin_some, spin和ROS的spinOnce
ROS2有spin_some, spin,而ROS有spinOnce,spin,他们有什么区别和联系呢?如果你学过ROS,那么只用看第一部分。如果你直接学ROS2,也建议按顺序看,加深理解。所谓阻塞,就是函数一旦进入角色,就困在自己的世界出不来。比如spin。所谓非阻塞,就是该干活的时候干活,该休息的时候休息。每次干活只干一件,那是spinOnce;一旦有机会干,可以多干,那是spin_some。就到这里。希望对你有所帮助。
2023-06-13 10:58:07
3780
2
原创 sizeof和strlen区别
strlen() 只是求有效的字符个数,不算‘\0’与 sizeof() 是求,公共多少个字符。也包括‘\0’https://zhidao.baidu.com/question/305900363.html字符数组取长度定义char a[100],存入从键盘输入的内容,再给char[]取长度,长度是100还是现在存在的实际内容的长度谢谢取得的字符数组长度与使用的获取长度的方法有关,在C/C++中常用的获取字符串长度或者字符串数组长度的函数有sizeof()、strlen()。siz.
2021-10-21 09:00:54
330
转载 calloc和malloc的区别
一:它们都是动态分配内存,先看看它们的原型:void *malloc( size_t size ); //分配的大小void *calloc( size_t numElements, size_t sizeOfElement ); // 分配元素的个数和每个元素的大小共同点就是:它们返回的是 void * 类型,也就是说如果我们要为int或者其他类型的数据分配空间必须显式强制转换;不同点是:用malloc分配存储空间时,必须由我们计算需要的字节数。如果想要分配5个int型的空间,那就是说需要
2021-10-21 08:59:52
761
转载 ld 中的AT>FLASH的含义
参考贴子:https://www.cnblogs.com/RegressionWorldLine/p/11968467.html/* Define output sections */SECTIONS{ /*中间跳过*/ .malloc : { . = ALIGN(4); __MALLOC_SYMBOLS = .; /* create a global symbol at ccmram start */ *(.malloc) *(.mal.
2021-01-11 09:56:18
5641
1
转载 2021-01-06 ROM、EPROM、EEPROM、FLASH ROM、RAM
转:https://mp.csdn.net/editor/html?spm=1001.2014.3001.5352什么是ROM、EPROM、EEPROM、FLASH ROM、RAM?书箱摘录: NOR Flash和NAND Flash是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR Flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND Flash结构,强调降低每比特的成本,有更高的性能,并...
2021-01-06 14:14:54
346
转载 ##
转载:## 连接符bai号由两个井号组成,其功能du是在带参数的宏定义中将两zhi个子串(token)联接dao起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所谓的子串(token)就是指编译器能够识别的最小语法单元。简单的说,“##”是一种分隔连接方式,它的作用是先分隔,然后进行强制连接。其中,分隔的作用类似于空格。我们知道在普通的宏定义中,预处理器一般把空格解释成分段标志,对于每一段和前面比较,相同的就被替换。但是这样做的结果是,被替换段之间存在一些空格。如果我们不希望出现这些空
2020-08-03 15:23:46
143
原创 对于stm32h747系列建立工程中添加文件后出现未定义错误解析
为了记录下自己在建立stm32h747--M7和M4双核系列,建立工程中添加文件后出现未定义错误的分析:发现比如在进行创建并添加sdmmc.c和sdmmc.h文件到工程之后,编译后出现:SD_HandleTypeDef未定义,通过相应的头文件逐层查找,发现在#include "stm32h7xx_hal_conf.h"这个配置文件中,没有打开有关SD相关的宏定义,导致对于相应的SD的头文件没有包含进来,所以,要在这里将/* #define HAL_SD_MODULE_ENABLED */这个注...
2020-07-21 15:48:31
863
转载 M7+M4双核架构MCU,STM32H7将微控制器性能进一步提升
转载:https://baijiahao.baidu.com/s?id=1639275093141468042&wfr=spider&for=pc作者:刘岩轩M7+M4双核架构MCU,STM32H7将微控制器性能进一步提升21IC中国电子网发布时间:19-07-1711:35爱奇新星(北京)信息科技有限公司官方帐号,优质创作者在微控制器的市场上,双核设计多为M4+M0/M+的架构,往高性能方向走,一般都是采用单核M7,鲜有M7+M4的这种组合。而此次STM32H7正是
2020-06-23 10:05:02
1548
转载 uCOS-Ⅱ源码分析——————uC-CPU文件夹
uC-LIB文件夹目录:ARM-Cortex-M4\GNU\ cpu_a.asm、cpu_c.c、cpu.hE:\ST\Micrium_STM32H743ZI-Nucleo_Blinky\STM32H743ZI_Nucleo\Micrium\Software\uC-CPU\cpu_def.hcpu_def.h这个文件中定义了一些 CPU 有关的宏定义,分为三类:1、CPU 字节长度的定义,理想情况下 CPU 的字长应该是由sizeof()函数计算出来的,但是sizeof()函数必须在 ...
2020-06-17 10:10:25
372
转载 SAI外设
SAI(Serial Audio Interface)提供了多种音频协议,例如:I2S标准(LSB或MSB认证),PCM / DSP,TDM和S / PDIF。 SAI包含两个独立的音频子块,Block-A和Block-B。。 每个子模块都有自己的时钟发生器和I / O线路控制器,可以配置为发送器或接收器。特性:支持高达192khz的音频采样频率。 SAI可以在工作在master或slave配置。 音频子块可以是接收器(receiver),也可以是发送器(transmitter),并且可以同步或
2020-06-02 14:00:01
2645
转载 字,字节,半字,双字
1字节(Byte)=8个二进制位(简称位bit);半字:*******1字:2字节(16位);1双字:2字(32位);不同的CPU一次可以处理的数据位数不同,32位CPU可以一次处理32位数据,64位CPU可以一次处理64位数据,这里的位,指的就是字长。而所谓的字长,我们有时会称为字(word)。在16位的CPU中,一个字刚好为两个字节,而32位CPU中,一个字是四个字节。若以字为单位,向上还有双字(两个字),四字(四个字)。定义字是根据处理器的特性决定的。首先ARM是32bit处理器,
2020-06-01 10:48:40
5267
原创 同步,异步模式
异步(asynchronous)从字面上来看即非同步(同步:synchronous),发出请求后是否需要立即得到回复是异步与同步的工作模式的主要区别。在异步模式中,发出某个请求后不需要等待得到回复,直接return以便于继续后续工作,而同步模式则要求在请求后就得到回复,否则持续在函数内等待且不return进入后续操作。发邮件和打电话这两张联系方式很好的体现了异步与同步的区别,通常当我们发出一封...
2020-04-30 08:59:13
1135
转载 字节,半字,字,双字
1个二进制位称为1个bit,8个二进制位称为1个Byte,也就是1个字节(8位)。不同的CPU一次可以处理的数据位数是不同的,32位CPU可以一次处理32位数据,64位CPU可以一次处理64位数据,这里的位,指的就是字长。而所谓的字长,我们有时会称为字(word)。在16位的CPU中,一个字刚好为两个字节,而32位CPU中,一个字是四个字节。若以字为单位,向上还有双字(两个字),四字...
2019-01-26 10:45:49
10088
原创 对嵌入式开发过程需不需要操作系统的一些解释:
嵌入式开发中操作系统并不总是必须的,因为程序完全可以在裸板上运行。尽管如此,但对于复杂的系统,为使其具有任务管理、定时器管理、存储器管理、资源管理、事件管理、消息管理、队列管理和中断处理的能力,提供多任务处理,更好地分配系统资源的功能,很有必要针对特定的硬件平台和实际应用移植操作系统。Linux操作系统是一种性能优良、源码公开且被广泛应用的免费操作系统,由于其体积小、可裁减、运行速度...
2019-01-24 13:51:34
2795
原创 zzz:存储器
1.存储器存储器的主要功能是存放程序和数据。程序是计算机操作的依据,数据是计算机操作的对象。不管是程序还是数据,在存储器中都是用二进制数的形式表示的,统称为信息。向存储器存入或从存储器取出信息,都称为访问存储器。计算机存储器是由可以存放和读取数值的一系列单元所组成的,每个存储单元都有一个编号,称为“地址”。向存储器中存数或者从存储器中取数,都要按给定的地址来寻找所选的存储单元。存放在存储器中的...
2019-01-23 15:06:50
522
转载 S3C2440的中断体系结构
转载:http://cukdd.blog.chinaunix.net/uid-23193900-id-3187342.html作者:graylocus CPU运行过程中,是如何知道外设发生了某些事件,如按键,触摸屏,与外设数据的交互。有两种方法:(1)查询方式:可以用程序不断的查询各个设备的状态,并响应相关状态,做出一定的处理。但是这种方法比较占用CPU资源,不适用于多任务的系...
2019-01-15 20:19:54
514
转载 shell编程的知识
转载:https://zhuanlan.zhihu.com/p/52726878作者:zsssj职称:软硬件、系统架构工程师Bash Shell编程入门 Shell是什么?shell本身是一个命令解释器,介于操作系统的内核(kernel)态和用户态之间,可以执行系统调用及系统命令等,让用户以此来与操作系统实现互动。同时,它也用来指一种计算机程序语言(类似于C、Python等...
2019-01-06 11:07:56
187
转载 typedef用法
转载:https://www.cnblogs.com/seventhsaint/archive/2012/11/18/2805660.html作者:seventhsainttypedef的语法描述 在现实生活中,信息的概念可能是长度,数量和面积等。在C语言中,信息被抽象为int、float和 double等基本数据类型。从基本数据类型名称上,不能够看出其所代表的物理属性,并且int...
2019-01-03 09:58:25
256
转载 AM5728通过GPMC接口与FPGA高速数据通信实现
本文转载:https://www.cnblogs.com/imapla/p/7454973.htmlAM5728通过GPMC接口与FPGA高速数据通信实现硬件:AM5728开发板;Artix-7开发板软件:Linux am57xx-evm 4.4.19;Vivado 2015.2作者:杭州矢志信息科技有限公司邮箱:admin@sysjoint.comAM5728外设接口丰富,有V...
2018-12-22 16:12:22
922
转载 mkimage工具 加载地址和入口地址 内核启动分析
原文:https://www.cnblogs.com/lidabo/p/5304335.html第三章第二节 mkimage工具制作Linux内核的压缩镜像文件,需要使用到mkimage工具。mkimage这个工具位于u-boot-2013. 04中的tools目录下,它可以用来制作不压缩或者压缩的多种可启动镜像文件。mkimage在制作镜像文件的时候,是在原来的可执行镜像文件的前面加上一个...
2018-11-25 12:22:30
617
转载 uboot引导内核时,入口地址和加载地址的关系
原文:https://www.cnblogs.com/GyForever1004/p/8485079.html如果使用 mkimage 生成内核镜像文件的话,会在内核的前头加上了 64 bytes 的信息头,供建立 tag 之用。bootm 命令会首先判断 bootm xxx 这个指定的地址 xxx 与 -a 指定的加载地址是否相同。如果不同的话会从这个地址开始提取出这个 64 bytes...
2018-11-25 12:21:09
1390
原创 arm-linux-gcc;arm-linux-ld;arm-linux-objcopy;arm-linux-objdump
gcc是编译器,负责对c代码的编译, ld是连接器 负责将多个*.o的目标文件链接成elf可执行文件。elf可执行文件是unix常用的可执行文件类型,就像windows的exe文件。elf文件中有很多信息包括段信息还有头信息,这些信息对硬件是没有意义的,所以有的时候我们通过objcopy将elf转化成bin 文件加载到内存中运行,bin文件就是一个纯二进制文件,并且你可以通过objdump将elf...
2018-11-09 09:58:35
268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人