新手机上Termux的折腾之路

新手机到手已经一月有余了,最初的新鲜劲已经消耗得差不多了,现在开始到了折腾的阶段了。新手机采用了目前最为顶级的865处理器,算力还是颇为了得的,这样的手机单单的看个微信,刷个新闻什么的似乎并不能发挥出完全的性能,所以我在手机上安装了一个极客装逼必用的Termux。Termux是一个在安卓平台上模拟linux环境的一个应用,可以直接运行多数的Linux APP,所以平常用vim码个代码,git...

继续阅读 »

从零开始写一个Xilinx FPGA Loader

本篇文章开始,我会记录一下自己从零开始搭建一个Xilinx FPGA Loader的过程。背景之所以会有这么一个想法,主要是Xilinx FPGA的下载器非常贵,即使淘宝上面的不正经的下载器也是非常贵,我买一个廉价的FPGA才不到100块,而配套一个下载器就要好几百,真的是很不人性。另外一个原因就是Vivado下载器似乎是不支持Spartan 6 FPGA SPI Flash下载的,总之各种...

继续阅读 »

SWD硬件实现

最近还在研究SWD协议,前面一篇文章中我们已经讲到了SWD的基本协议,这篇文章我们来看一下这个协议的一个硬件实现。本次硬件设计采用Verilog,因为Verilog也已经扔下了很久了,所以代码质量一般,也没有做什么测试,这里只是简单的看了一下输出的波形,其它的暂时没有关心。设计的总体思路实际上整个SWD协议还是非常简单的,硬件实现也是通过简单的状态机就可以实现,这里也刚好回顾一下状态机的写法...

继续阅读 »

ARM SWD协议简介

SWD全称Serial Wire Debug,是ARM为嵌入式设备推出的一种简单的调试接口,这种接口通过一条双向数据线和一条时钟线实现对于ARM核心的调试。在SWD协议中,总线上主要有以下三个阶段:Packet Request,这个阶段表示外部调试器向Debug Port(DP)发送请求。Acknowledge Response,这个阶段是设备向调试器返回应答信号。Data Transfer...

继续阅读 »

用FPGA模拟fuse时出现的一个小问题

我们知道现在很多芯片里面都会有一个fuse的模块,通过fuse我们可以来定义芯片的生命周期,保存相关的秘钥等等,可以说fuse是芯片安全的一个基础,fuse虽然简单,但是至关重要,我们在芯片前期进行FPGA验证的时候,也需要在FPGA上实现FUSE的功能,但是FPGA本身并没有FUSE,所以我们还是要通过SRAM来模拟FUSE。这次发现的问题就是FUSE模拟的时候出来的一个问题,在实际芯片中...

继续阅读 »