S3C2410考古笔记
对于S3C2410处理器的:
- Baremetal代码与调试
- U-Boot 2016.05的移植,编译流程和启动流程分析
- Linux 3.19.8内核的移植,编译流程和启动流程分析
对于S3C2410处理器的:
最近买了一个半导体冷热小冰箱,使用了一阵子后发现了一些问题,最主要的就是温控的不准确。冰箱门板上带有数显数控的功能,但是经过测试发现实际内部的温度和设定的温度差别比较大,误差6-7摄氏度都是常有的。
最近发现了一个小的Pi Pico使用技巧。 Pi Pico除了使用SWD下载和调试以外,还可以通过按下BOOTSEL后上插上USB来进入下载模式,此时系统中将会枚举出一个大容量存储设备,将编译好的UF2文件拖入就可以下载了。
这样的下载模式非常的简单,但是在真实应用中有个麻烦:如果一旦电路板装入设备中,装上外壳之后再进行固件更新就相对恼火了,无论时SWD接口或者时BOOTSEL按键,都不大可能会再外壳上预留出来。
Pi Pico官方给了一种Picotool可以使用-f参数通过USB强制Pi Pico进入下载模式并更新固件。除了这种方法外,还有一种办法可以快速的,不通过BOOTSEL按键使Pi Pico进入下载模式。
从大学开始就断断续续的摸索超低功耗系统的设计,过程中也遇到了很多坑,通过前几次的迭代积累的经验,外加这段时间正好闲下来,完成了一个比较满意的超低功耗传感采集节点的设计,待机电流0.1uA, 工作时包括射频系统在内最大峰值电流30mA,理论上不考虑电池的自放电下,单节CR2032电池可以让设备工作数年. 总结一下经验以便后面的设计能吸取前面的教训,少走弯路。
几次迭代的产物:
中秋节在家,想起来MSP430系列的芯片ISP模式还没有使用过,好奇其工具链的配套的完善程度和具体的使用流程,就打算用手上的MSP430F2272来尝试一下。
理想中,使用ISP的好处:
Vref, GND, TEST, NRST, TCK, TMS, TDI, TDO
如果采用标准的2.54mm座子则非常占用电路板体积
常见的SoC厂商,都会在SoC的ROM(第一级引导程序)中加入ISP模式,可以通过一些简单接口就能完成固件的烧写,比如我们最近设计的芯片的ROM中就是以I2C为接口提供ISP的。所以MSP430也一定会有类似的功能。
日常调试中,除了需要在指令执行上插入断点以进行跟踪或单步调试,在某些情况下,也需要跟踪数据变化并当某内存数据发生变化时产生断点。
这个功能在ARM Cortex-M33中,可以通过利用DWT实现。
前一阵子在某芯片上遇到了一个设计问题:芯片中的控制核为ARM Cortex-M33内核(SSE200 IP),并在芯片中存在多个物理地址并不连续的SRAM,其中M33 Local Mem地址范围为0x2000_0000, 另一内存地址为0x41xx_xxxx.
遇到的具体问题为,在locam memory中,任何的非对齐访问全是正常的,但是在0x41xx_xxxx为基地址的内存上,任何非对齐的访问将会导致芯片卡死。
测量PM2.5浓度、二氧化碳浓度、温度、湿度