Typora与hexo完美适配
终于实现了Typora与hexo的完美适配,直接复制图片到typora即可自动保存本地,也不需要额外的删改即可完成插入图片 渲染器上依然可以使用markdown-it-plus,正常渲染公式,而不必使用大部分采取方案的的markdown-it导致渲染器的冲突 Typora端效果 有空补一下详细配置过程。 嘿嘿,确实开心
适配AXI的地址对齐
AXI4引入的arsize/awsize 完整的AXI总线协议通过arsize/awsize信号来指示实际访问的数据位宽, 同时引入"窄传输"的概念, 用于指示"实际数据位宽小于总线数据位宽"的情况. 这两个"数据位宽"的概念并非完全一致, 具体地, 总线数据位宽是在硬件设计时静态决定的, 它表示一次总线传输的最大数据位宽, 也用于计算总线的理论带宽; 而实际数据位宽(即arsize/awsize信号的值)则由软件访存指令中的位宽信息动态决定, 它表示一次总线传输的实际数据位宽, 例如, lb指令只访问1字节, 而lw指令则访问4字节。 也就是AXI总线会根据我们设置的arsize/awsize来映射对齐地址,设置为0时,会对齐1b,设置为1时,会对齐2b,设置为4时,会对齐4b。 strb选通信号与data S指令有效数据与地址的对齐 wstrb与地址相适配,也要将有效数据移至有效字节,以sb指令为例 123456789101112is(EXE_SB_OP) { mem_addr :=...
ld链接与简易bootloader(添加全局变量支持)
堆区 在启动文件里分配,作为用户主动申请时的空间,如调用malloc() 栈区 在启动文件里分配,作为局部变量自动申请和释放空间的变量(也有说是编译器分配的空间) bss 存放未初始化的全局变量和静态变量; data 存放初始化后的全局变量和静态变量; 已初始化的全局变量(data)嵌入程序,不可能直接存在RAM中,必须先载入ROM,再通过memcpy载入RAM中(这也是数电H中我没能想到的,不过那时也没实现标准库也不太可能搞这种骚操作),bss由于是未初始化的,直接链接到RAM就行。 12345678910111213141516 _sidata = LOADADDR(.data); .data : { _sdata = .; *(.data*) *(.sdata*) _edata = .; } > sram AT >mrom :data.bss : { _bstart = .; *(.bss*) *(.sbss*) *(.scommon) _bend = .; }...
半导体物理随记
常用符号含义 发现自己总是记不住符号,都到了看不懂公式的地步了,随记一下 ND 施主掺杂浓度 NC 导带有效态密度 半导体导带中可供电子占据的量子态数量 NV 价带有效态密度 NDC 临界浓度(EF = EC) nD+ 电离施主浓度 n0 导带电子浓度 EC 导带底能级 ED 施主能级 EA 受主能级 Δ\DeltaΔED = Ec-ED 杂质电离能 EC──────────────── 导带底 │ │ ΔED ED ───┘ 施主能级 EF──────────────── 费米能级(随掺杂变化) EV ──────────────── 价带顶
apriltag优化方案
形策要做这方面的汇报,记录一下 自适应阈值 查了一下,python apriltag库似乎内部识别没有封装自适应阈值,而自适应阈值能减弱光照的影响,这不就有的说了嘛(主打一个没创新硬找) apriltag使用的是直方图阈值法 使用opencv的自适应阈值 1234567891011121314def adaptive_threshold_preprocess(image): gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 使用自适应阈值(高斯加权) adaptive = cv2.adaptiveThreshold( gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2 ) return adaptivepreprocessed = adaptive_threshold_preprocess(image)detector =...
AXI总线探索
前言 最近需要想办法给CPU接AXI总线,目前先试着看下AXI4-LITE,IFU和ROM已经写好了,开始往LSU和RAM看看 AXI4-lite 内部握手信号 VALID信号是传输段发送的,READY是接收端发送的。只有在VALID和READY同时有效的时候,信息才会被传递。VALID有效代表发送以准备好,READY有效代表接收已准备好,当其中一方有效,另一方无效时,有效的一方信号需要保持,等待另一方信号的有效。 写响应通道要发送BVALID和BRESP。其中BVALID要与主机发过来的BREADY进行握手代表写数据结束。BRESP为两个bit的信号,作为写数据是否成功的回应 写模式 读模式 LSU伪代码 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253class AXILSU(params: AXI4Params) extends Module { // AXI4接口信号(简化版) val io =...