- 博客(7)
- 问答 (1)
- 收藏
- 关注
原创 浅谈 :ARM架构下的 cache 和 Write Buffers
涉及到ARM架构下的内存管理系统;1.cache和write buffers的概念:cache是高速缓冲存储器,write buffers是写缓冲区,这两个东西位于主存储器和CPU之间,主要用来提高存储系统的性能;2.cache和write buffers的作用原理: cache与主存之间以块(cache line)为单位进行数据交换,一个cache块的大小与系统有关,通常一个块为几个字;例如一个 cache Line 大小为4字节,当CPU从主存中读取地址为 n 的数据时,...
2021-04-29 17:34:59 712
原创 常见ARM汇编 指令/伪指令 实战总结:
1. .global/.globl:定义全局标识符,其中标号_start是GNU链接器用来指定第一个要执行指令所必须的,同样的是全局可见的。2..section命令是汇编语言汇中最为重要的命令之一,作用是定义内存段,该命令后只跟一个参数,即它声明的段的类型。例如:.section.text#定义文本段(代码段).section.data#定义数据段.section.bss#定义bss段再例如:.secti...
2021-04-29 00:21:50 2245 1
原创 imx6ul定时器中断使能失败记录
正确:EPIT1->CR = ((1 << 1) | (frac << 4) | (1 << 24) | (1 << 2) | (1 << 3));错误:EPIT1->CR = ((0x1110 << 0) | (frac << 4) | (1 << 24));自己写imx6ul裸机驱动的时候遇到的问题,在进行逻辑运算的时候为了保证正确,尽量多拆解开,否则就会这样找半天错误;...
2021-04-23 12:46:45 201
原创 函数指针的理解 以及 汇编跳转IRQ中断并定位指定的代码编写
区分:指针函数是返回值为指针的函数;前言:cortex A系列芯片最高可具有具有1000+的中断,cortex A7最多集成8核在一个芯片里,通过gic中断管理器管理所有中断;它引入了中断号的概念,区别于cortex M系列芯片的NVIC中断管理器和数十个异常中断,cortex A架构芯片只有八个异常中断;其中IRQ中断包含了所有外部中断,采用中断号机制,每一个外部中断具有自己的中断号,通过给每一个中断号注册中断服务函数可以初始化中断服务函数;编写cortex A系列mcu中断服务函数的时候遇到了这
2021-04-22 21:46:53 1189
原创 堆栈的脏数据:子程序跳转回主程序后堆栈区存放的返回地址未销毁
在CPU中SP堆栈指针和PC程序计数器是程序运行的动力,堆栈区间能够存储指令返回地址、数据等;当从一个程序跳转到子程序之后,会将返回地址压栈,其实存放的是返回后下一个指令的地址,而执行完子程序之后跳转到上一级程序,PC指针赋值为进入子程序时压栈的指令地址,同时出栈该地址,但是数据并未被销毁,只不过CPU会自动无视该数据,但是只要还没有被覆盖,数据就任然存在,即脏数据;脏数据必然会有影响,先记录一下;...
2021-04-18 20:59:22 390 2
空空如也
关于keil5中使用使用<stdio.h>,会不会造成flash开销剧增?
2021-01-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人