Picorv32处理器中断的实现

Picorv32是一个非常精简的RISCV核心,实现了RISC-V RV32IMC指令集。源代码开源且核心只有一个不到3000行的Verilog文件,FPGA实现非常简单,可以使用开源的iverilog软件进行仿真,非常适合FPGA学习和性能要求不高的一些FPGA应用场合。实际上Picorv32已经有很多应用,甚至有ASIC上的应用,这里作为学习目的,我也用这个小核心做了一个非常简单的SOC...

继续阅读 »

Python 元编程实现类方法的注册

Python元编程,听起来就是一个非常高大上的名词,确实,元编程这个概念我研究了一天也没怎么研究明白。其实这个概念真的是在实际应用场景中很难用到,但是说巧不巧,这还真的就被我碰上了,无奈之下,只好研究一番。首先我们还是来看看应用需求:我的程序中要实现一个类似命令分发器的功能,也就是根据不同的命令字符串调用相应的函数,这个功能一般都是通过函数的字典实现的,我在最开始也是通过这种方式实现的,但是...

继续阅读 »

Python unittest 中使用mock

没错,我似乎是喜欢上了unittest,最近非常痴迷于研究测试代码,这个问题也是在最近做测试中碰到的一个实际问题,这里就这个问题的解决方式做一个简单的记录。具体的问题是这样的,我的代码会用到一些和PC硬件交互的一些代码,比如从串口读写数据,这个时候我们不能每次测试的时候在测试机器上搞一个串口,另外我还会用到和硬件相关的Python库,比如树莓派的RPi.GPIO,这个库在PC上是无法安装的,...

继续阅读 »

Python中的unittest

unittest是Python中自带的一个用于单元测试的库,可以满足我们大部分的测试需求。以前撸个代码一般只是侧重功能实现,往往对于测试不屑一顾,但是在最近一个小工程上,我初步尝试了一下测试驱动开发的开发流程,发现测试对于开发效率是有提升的,虽然要编写很多测试相关的代码,但是一旦测试完善起来,对于后期我们的代码重构或者代码调试是有很大帮助的。对于比较小的工程,直接使用unittest基本可以...

继续阅读 »

Python绘制新型冠状病毒感染曲线

最近被这个新型冠状病毒病毒闹得真是啥也干不了,整天闷在家里,闲着没事还是增长一下我们的技术水平才是王道,多读书,多宅一宅,也为祖国做贡献。最近眼睁睁看着感染病例数目急剧增加,心里还是有那么一点点慌张的,毕竟这玩意感染起来还是有点恐怖的,直接肺部纤维化,我的天哪,想想都废了。算了,我们还是看看我这里搜集的一些数据的曲线吧。本来想着是自己开发爬虫抓数据的,网上搜了一圈发现,原来很多高手宅在家里也...

继续阅读 »