m
aningxiaoxixi
此人很聪明,一看就会,所以不写
展开
-
同步与异步(串口协议分析)
1 同步需要确定通信双方的时钟频率,传输数据时间间隔稳定.但是异步传输数据时间间隔是任意的不确定的。2 准确性不同,通信需要比较高精度的精准度,异步不需要。同步通信和异步通信的区别同步串口和异步串口的区别及使用情况UART通信协议:(异步通信,没有确认机制)UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。其中各位的意义如下:起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。资料位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个原创 2020-07-08 20:35:57 · 1767 阅读 · 0 评论 -
M4 调试单元 DWT测试 某个函数运行时间
初始化变量 uint32_t * DWT_CONTROL=(uint32_t *)0xE0001000; uint32_t * DWT_CYCCNT=(uint32_t *)0xE0001004; uint32_t * DEMCR=(uint32_t *)0xE000EDFC; volatile uint32_t vtpai_process_start=0; volatile uint32_t vtpai_process_end=0; volatile uint32_t vtpai_原创 2020-06-29 16:01:01 · 369 阅读 · 0 评论 -
Pll设置超频
那么应该更改外设的时钟原创 2020-06-28 23:17:42 · 364 阅读 · 0 评论 -
arm 包含二进制数据到 bin文件
.section .rodata .global dic .type dic, %object .align 4dic: .incbin "../Lib/all.vtdic"dic_end: .global dic_size .type dic_size, %object .align 4dic_size: .int dic_end - dic @得到数据参考arm 汇编指令原创 2020-06-12 13:39:53 · 614 阅读 · 0 评论 -
keil 使用gcc交叉编译的设置
原创 2020-06-11 10:14:58 · 805 阅读 · 0 评论 -
韦东山 jz2440 学习
1 上电先关看门狗 然后才设置时钟,难道看门狗不需要时钟独立看门狗为什么不用使能时钟?2 设置看门狗关闭,只需要设置一个寄存器就好!原创 2020-06-03 08:58:28 · 326 阅读 · 0 评论 -
a9 汇编生成可执行文件 Makefile解析
all: arm-linux-gcc -c -o led_on.o led_on.S arm-linux-ld -Ttext 0 led_on.o -o led_on.elf arm-linux-objcopy -O binary -S led_on.elf led_on.bin arm-linux-objdump -D led_on.elf > led_on.disclean: rm *.bin *.o *.elf 从Makefile角度1 首先看上去没有所谓的依赖原创 2020-05-31 21:42:13 · 341 阅读 · 0 评论 -
栈空间排布,数据相关内容
上面是画的简单的栈。LD寄存器LR(Link Register),连接寄存器的英文缩写,在ARM体系结构中LR的特殊用途有两种:一是用来保存子程序返回地址;二是当异常发生时,LR中保存的值等于异常发生时PC的值减4(或者减2),因此在各种异常模式下可以根据LR的值返回到异常发生前的相应位置继续执行。LR 用来跳转回原来的函数可以从反汇编得到stmdb sp! {r4,r5,r6,r7,r8,fp,ip,lr,pc}stmdb sp! {fp,ip,lr,pc}等等 这样的汇编指令.原创 2020-05-30 20:12:34 · 293 阅读 · 0 评论 -
分块式内存管理
注意:申请到的内存是连续的原创 2020-05-24 21:31:25 · 465 阅读 · 0 评论 -
应对Cortex-M 系列异常Hard Fault异常
工作调试m33架构,总是出现硬件错误然后根据 ARM Cortex-M3 和 ARM Cortex-M4 权威指南还有这篇博文找到了答案https://www.cnblogs.com/fozu/p/3613894.html在freertos 里面 任务优先级低的任务里面 执行 memcpy ,被优先级高的任务打断,会产生硬件中断CFSR_NS = 0x00000400 第 ...原创 2020-04-14 11:05:03 · 751 阅读 · 0 评论 -
arm 使能时钟知识点
1 时钟使能必须在外设初始化之前在这引用一个解释,“ARM的芯片,外设通常都是给了时钟后才能设置它的寄存器(即才能使用这个外设)。STM32、LPC1XXX等等都是这样,这么做的目的是为了省电,使用了所谓时钟门控的技术。寄存器是基于什么的?当然是触发器!!!准确地说应该是D触发器触发器的赋值是一定需要时钟的, 而寄存器的时钟是由总线时钟提供的,就是说没有总线时钟的话,你给寄存器值它...转载 2020-04-11 09:47:29 · 495 阅读 · 0 评论 -
为啥 32位 寄存器间隔是 4
两个32位寄存器的间隔例如 0x0020 跟 0x0024中间间隔一个 4字节要理解为8bit,32bit就是4*8bit=32bit原创 2020-01-22 10:12:06 · 2717 阅读 · 3 评论 -
m3 m4 总结
cortex- M3 和 M4 基于 ARMv7-M 架构原创 2020-04-08 23:32:05 · 173 阅读 · 0 评论 -
随手记
F_GETOWN, F_SETOWN, F_GETSIG 和 F_SETSIG 被用于IO可获取的信号。F_GETOWN:获取当前在文件描述词 fd上接收到SIGIO 或 SIGURG事件信号的进程或进程组标识 。F_SETOWN:设置将要在文件描述词fd上接收SIGIO 或 SIGURG事件信号的进程或进程组标识 。F_GETSIG:获取标识输入输出可进行的信号。F_SETSIG:设置标...原创 2020-04-02 17:52:25 · 521 阅读 · 0 评论 -
cortex-M 认知 fpu
1 fpu 浮点运算模块2 fpu 可以提高运算浮点运算速度主要用来处理浮点运算,在算数运算中,浮点运算是非常耗时的。如果仅仅通过指令来处理,所用机时太长。而浮点运算又比较常用,所以干脆就再做一个专门的处理器来处理浮点运算,以便提高处理速度。3 芯片架构不同区别有一份在于支持的指令集...原创 2020-03-21 06:29:25 · 405 阅读 · 0 评论 -
正点原子 录像and显示
RAW的原意就是“未经加工”。可以理解为:RAW图像就是CMOS或者CCD图像感应器将捕捉到的光源信号转化为数字信号的原始数据。RAW文件是一种记录了数码相机传感器的原始信息,同时记录了由相机拍摄所产生的一些元数据(Metadata,如ISO的设置、快门速度、光圈值、白平衡等)的文件。RAW是未经处理、也未经压缩的格式,可以把RAW概念化为“原始图像编码数据”或更形象的称为“数字底片”。RAW格式...原创 2020-03-20 15:57:27 · 168 阅读 · 0 评论 -
freertos 软件定时器
1 软件定时器回调函数 不能调用 vTaskDelay() vTaskDelayUnti() 延时函数还有关于信号量的 非0阻塞函数2 开启定时器 configUSE_TIMERS需要设置为1会在 xTaskCreate 创建任务函数中创建 用于定时器的函数3 因为定时器是个任务,所以我们要适当的配置栈空间的大小,它的栈空间会分配给定时器4 xTimerStar...原创 2020-03-20 14:59:47 · 226 阅读 · 0 评论 -
freertos软件定时器
1 软件定时器回调函数 不能调用 vTaskDelay() vTaskDelayUnti() 延时函数还有关于信号量的 非0阻塞函数2 开启定时器 configUSE_TIMERS需要设置为1会在 xTaskCreate 创建任务函数中创建 用于定时器的函数3 因为定时器是个任务,所以我们要适当的配置栈空间的大小,它的栈空间会分配给定时器4 xTimerStar...原创 2020-03-19 13:19:39 · 722 阅读 · 0 评论 -
freertos 通知总结
注意 使用通知相比较 信号量 队列 不用创建省下了很多工夫,省下空间每一个任务都有一个32的信号值,当创建的时候,这个值被初始化为01 configUSE_TASK_NOTIFICATIONS 设置为12 在控制块上有这个成员变量3 接受任务因为任务通知而进入阻塞状态,但是发送任务不会因为任务通知发送 失败 而阻塞4 xTaskNotify() 或者 xTaskN...原创 2020-03-17 22:35:46 · 200 阅读 · 0 评论 -
freertos队列总结
xQueueSend( MsgQueue, ( void* )&SendNum, 0 );向队列中填充内容,第二参数需要取出地址并进行类型转换,第三个参数设置等待时间,在队列满的情况下再往队列中填充内容的话便会阻塞任务,直到等待时间溢出;若此处填充的内容为0的话,则立即返回插入队列结果(成功或失败)xQueueReceive( MsgQueue, &ReceiveNum, 10...原创 2020-03-16 23:11:47 · 985 阅读 · 0 评论 -
freertos 总结第二天
统计任务运行时间/***************************************************************************************************************//* FreeRTOS与运行时间和任务状态收集有关的配置选项 ...原创 2020-03-15 09:22:29 · 307 阅读 · 0 评论 -
stm32f4 串口设置
注意事项好多串口包括都是收发的寄存器都是用 DR 一个寄存器,这个寄存器是一个双寄存器,包含了 TDR 和 RDR。当向 DR 寄存器写数据的时候,实际是写入 TDR,串口就会自动发送数据;当收到数据,读 DR 寄存器的时候,实际读取的是 RDR。void uart_init(u32 pclk2,u32 bound){ float temp; u16 mantissa; ...原创 2020-03-14 08:07:57 · 1463 阅读 · 0 评论 -
什么是MSB、LSB,什么是大端、小端,区别是什么?
MSB是Most Significant Bit的缩写,最高有效位。在二进制数中,MSB是最高加权位。与十进制数字中最左边的一位类似。通常,MSB位于二进制数的最左侧,LSB位于二进制数的最右侧。LSB(Least Significant Bit),意为最低有效位;MSB(Most Significant Bit),意为最高有效位。计算机业界,端表示数据在存储器中的存放顺序。大端与小端是两种数...原创 2020-02-03 07:26:37 · 25543 阅读 · 0 评论 -
永久设置全局变量
A export 设置环境变量,export的效力仅及于该次登录操作。B 如果没有export 那么变量 就只在当前 shell 终端 才管用 ,成为用户变量。C PATH 环境变量 不同的路径是用冒号 : 分割开的。1、Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变...原创 2019-10-27 17:28:08 · 506 阅读 · 0 评论 -
打补丁 patch 小结
两个不同的文件进行对比,得到的文件1 diff -up a b >1.patch 得到补丁文件— a文件+++ b文件2 patch -p0 < .patch把 a 文件变成 b 文件。原创 2019-10-25 21:59:29 · 716 阅读 · 0 评论 -
引脚识别
spi 接口(1)MISO– Master Input Slave Output,主设备数据输入,从设备数据输出;(2)MOSI– Master Output Slave Input,主设备数据输出,从设备数据输入;(3)SCLK – Serial Clock,时钟信号,由主设备产生;(4)CS – Chip Select,从设备使能信号,由主设备控制。UART中的硬件流控RTS与CT...原创 2019-10-24 11:46:07 · 511 阅读 · 0 评论 -
iar 配置 文件
ewp当前路径:$PROJ_DIR$/ewp下级路径:$PROJ_DIR$/xxFolder/ewp上级路径:$PROJ_DIR$/../原创 2019-10-12 15:45:09 · 621 阅读 · 0 评论 -
stm32 栈大小不够 会抢占堆得
https://www.eefocus.com/smulngy/blog/16-06/385293_8d16c.html原创 2019-10-11 15:17:38 · 284 阅读 · 0 评论 -
while()的发现
1 在vs上面 假设 n 为 0while (!num == 1); 及时用另一个线程去 设置 num =1; 那么也不会跳出阻塞。然而 while (!num == 1){//}另一线程改变 会跳出循环。...原创 2019-09-19 14:23:23 · 122 阅读 · 0 评论