Aemaeth0's Notes

Stay Simple & Stay Naive

芯片产业分为设计、制造、封装三大流程,在封装后还会进行量产测试,因此又称为封测流程。今年上半年我在公司负责ASIC SOC的量产测试工程,这里总结一下项目流程,以便日后项目参考。

阅读全文 »

在研究JTAG的过程中,需要使用daplink生成jtag master的波形给jtag ip,因此研究了一下openocd+daplink,不得不吐槽openocd这个项目真是一言难尽,记录一下Windows环境下编译openocd的过程。我发现如果用公司加密电脑,很有可能遇到不过编译器检查,这一步会生成一个conftest.c并尝试编译它来验证编译器是否ok,但是这个生成的会被加密软件加锁,导致fail,所以把这个坑分享出来。

阅读全文 »

在学校每天call stm32 hal库的时候,总是在想,芯片原厂的软件工程师是不是特别nb。我对体系结构、芯片内部的细节这些东西有着天然的好奇心,但工科的知识不是靠看一两本书就能掌握的,要实践才能螺旋提升认识。毕业后运气好进了一个消费电子的芯片部门,终于小小窥见芯片软件的一些奥妙,它是矛盾的,芯片内部的这些智慧结晶有着强烈的赛博美感,但手里搬砖的活却多少有些苦逼,让我们一起看看芯片设计公司的嵌入式软件都在干什么。

阅读全文 »

之前发布hexo博客需要在安装了nodejs的电脑上反复执行hexo g & hexo d,并且想要换台电脑就变得很麻烦,这次请Github Action代劳,于是除了第一次搭建需要本地deploy预览效果以外,其余时刻我可以抛弃nodejs只传输markdown文件,并且编辑端换上了更好用的Obsidian,快来和我一起搭建数字花园!

阅读全文 »

编写程序去自动化地执行一些任务时,难免会遇到一些需要同时执行或者需要执行很久、在不同时刻执行内容不同的程序任务。在成熟的操作系统上,使用多线程的接口来把调度的活儿交给操作系统来完成是非常方便的。从底层看,如果是用的是资源较少的单片机,No-os裸机代码应该如何优雅地完成多任务其实是个比较棘手的问题,尤其是在任务复杂、情况众多并且需要不断迭代增减功能的需求上时更甚。本文将讨论我在编写四旋翼飞行器控制器(2018)与某工业检测设备电机控制器(2019)时,不断迭代中摸索出的一些不成熟的方法,在最近阅读Linux内核源码的过程中,算是对调度算法的一个背景先导总结,也试图为自己日后的裸机多任务开发提供一个更好的架构思路。

阅读全文 »

Hello Hexo !!!
Hello Obsidian!!!

0%