- 博客(7)
- 收藏
- 关注
原创 中断嵌套检测
检测:定义全局变量,或在中断函数开始定义静态变量irq_nest=0,用于记录中断嵌套层数。在中断函数开始,irq_nest++,在中断函数结尾,irq_nest--。那么理论上,只要不发生中断嵌套,irq_nest变量在中断函数体中,irq_nest永远为1。但当多任务进行时,可能存在当前中断任务未完成,又产生了一次毫秒中断;导致当前毫秒中断函数未完成,就进入了下一次的毫秒中断函数,产生中断嵌套。产生原因:在执行中断函数a时,存在更高优先级的中断b发生,则当前中断函数a的变量存储到栈中,进入中断函数b;
2025-05-12 15:28:54
175
原创 图解FFT(一) - 基、投影
傅里叶变换(FT)将一个信号从时域的视角转移到频域,去描述一个信号的频率组成,然而,这个频率是有单位的,在傅里叶变换中,这个频率所描述的信号并不是指任意周期信号,而是指$e^{-j2\pi ft}$,这个$e^{-j2\pi ft}$就是傅里叶变换后频谱图的基。因此,在了解FT之前,必须先了解基和投影的概念。
2024-10-15 20:52:28
1457
原创 Git快速入门(一) - 本地代码管理
在项目中,如果你有对原代码进行更新的需求,比如需要原代码中加入新的功能(或新的模块),为了兼容新功能,可能需要对新插入的功能前后代码进行修改。假设当前已有一个完整的项目,想要将该项目的所有文件添加到仓库中,并想要建立新的分支,在新分支中进行代码的功能添加,而不要在原项目分支中进行更改。git commit -m ‘注释’ => 确定当前git add的文件的变更,完成分支内容的更新。git add => 在仓库中申请文件的变更(该变更可以是原仓库中文件的更新,或者是新的文件)
2024-10-14 20:54:06
471
原创 Git快速入门(二) - 多机管理
origin是远程仓库的标识,是为了方便local与remote进行操作而命名的,远程仓库是一串url字符串,在进行push和pull时,如果使用url与远程仓库进行连接,将大大降低工作效率。对于第3节git命令的讲述中,经常有用到origin,其中origin的含义是指,本地仓库连接到远程仓库时,git会自动为远程仓库创建一个名字,该远程仓库的名字默认为origin。多机代码管理,顾名思义,也就是多个主机,多个主机需要维护同一套代码,则需要依赖代码的托管平台,常见的即github和gitlab。
2024-10-14 20:51:16
260
原创 关于AXI4的各种小点
如:AW通道写ID的顺序是5,6,7,8;W通道虽然没有ID,但对应的4笔数据的顺序也是对应5,6,7,8;当AW、W通道的数据都发送完后,B通道的ID响应顺序可能是5,8,6,7。1. Axi4取消了WID,因此对于AXI4 Master,不能进行乱序发送写(因为W通道没有ID号与AW通道的ID号不能进行乱序对应);3. AW / AR通道中有AWLen / ARLen信号,其长度未必都能与W通道 / R通道的数据长度对应(W / R通道中用last信号表示每一笔数据的长度);
2023-11-29 14:13:18
962
原创 SpinalHDL仿真时遇到“key not found:(clk: Bool)“
在SpinalHDL中,如果在代码中存在Reg,他是会自动例化时钟信号clk的;但是如果在模块代码testModule中没有Reg,则不会自动生成默认时钟域,相当于我的代码是一堆组合逻辑,因此默认不需要clk。3. 如果你的模块是组合逻辑,不存在时序逻辑,那么删除"dut.clockdomain.forkStimulus()"代码。1. 检查testModule模块代码中,是否需要添加Reg(Reg会自动例化在默认时钟域下)** 原因是:我的testModule中,没有自动产生默认时钟域的clk信号 **
2023-11-21 15:09:12
207
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
7