- 博客(7)
- 收藏
- 关注
原创 cache地址映射
主存地址tag:与cache中通过主存地址index经过行索引译码器选中的cache行中的tag和valid进行比较,来确定是否命中;主存地址index:通过行索引译码器选通对应的cache行;主存地址offset:选通子选择器输出;OE信号是使能信号,如果命中,则选通使能;
2025-05-03 21:18:40
233
原创 cache替换算法
特点:每个分区的数据块只能映射到cache的对应行;优点:算法简单,可以通过数据块地址寻址到cache中对应的行;硬件电路开销小缺点:cache不满的情况下,也可能出现冲突。
2025-05-03 20:30:46
430
原创 SDIO笔记
24:在使用CMD53和device通信的时候,我们需要注册SDIO中断,用于接收device发送过来的数据,data0复用为中断信号线,device启动DMA,向host发送数据,data0拉低,低电平中断,其他data1~data3拉高,处于空闲态,这个时候触发host中断,进入中断下半部,先host发送CMD52命令,先清device中断,再通过CMD53读取数据,通过DMA将数据搬运到我们指定的内存。5:发送CMD8命令。设置VHS位,以告诉SD卡,主机的供电情况,让SD卡知道主机的供电范围。
2025-05-02 12:42:03
930
原创 FreeRTOS任务调度管理
通过configSUPPORT_STATIC_ALLOCATION这个宏,来决定是创建静态创建Idle任务,还是动态创建任务;静态创建就是TCB和栈空间使用DATA数据段预先分配好的内存,动态创建就是使用malloc分配堆上的内存1:在vTaskStartScheduler中创建IDLE任务,是确保系统必须至少有一个任务可调度;1:先申请TCB和栈空间,如下代码:2:prvInitialiseNewTask是初始化一个新的任务。
2025-05-02 11:08:42
692
原创 ROMPATCH原理
我们在设计芯片的时候,在流片的时候,由于ROM的面积小,成本低,相比NOR FLASH,访问速率也更快,所有在流片前,需要将部分代码进行ROM化,用于节省成本;但是ROM化之后的代码,只能进行读访问,如果代码中存在bug,则不能进行修改;基于这种情况,我们引入patch机制,给存在问题函数打patch;
2025-03-29 21:56:01
442
原创 USB协议解读
J态、K态、SE0J态: D+ =“0”,D- =“1”K态: D+ =“1”,D- =“0”SE0态:D+ =“0”,D- =“0”从J到K或者从K到J,信号翻转,说明发送的是信号0;从J到J或者从K到K,信号保持不变,说明发送的是信号1。这就是差分信号0/1的发送。低速下: D+为“0”,D-为“1”是为“J”状态,“K”状态相反;全速/高速下:D+为“1”,D-为“0”是为“J”状态,“K”状态相反;
2025-03-29 17:36:32
1645
原创 SWD协议笔记
在AHB-AP接口中,支持两类DP接口实现,一个是SWD接口,另一个就是JTAG接口SWD是两线接口,一个是时钟SWDCLK,还有一个就是SWDIO线,支持输入输出;在AHB-AP中,连接SWDCLK和SWDIO信号线,将数据转为AHB总线协议格式,发送到CPU内部总线端口上,可以访问系统总线、数据接口和CPU内部寄存器;SWD协议格式调试访问端口(DAP)分为两个主控制单元。调试端口(DP)和访问端口(AP)以及到调试器的物理连接是DP的一部分。
2025-03-26 00:32:38
1467
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人