<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[iot_aaker的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/iot_aaker</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; iot_aaker]]></copyright><item><title><![CDATA[作为一个verilog coder你需要一些技能（vim，verilog-mode）＞＞ 附送自动载入装逼.v模板（下）]]></title><link>https://blog.youkuaiyun.com/iot_aaker/article/details/142847236</link><guid>https://blog.youkuaiyun.com/iot_aaker/article/details/142847236</guid><author>iot_aaker</author><pubDate>Fri, 11 Oct 2024 11:12:05 +0800</pubDate><description><![CDATA[vim新建文件的时候如何自动载入模板文件的相关配置。包括作者，时间，上次修改时间等等可自定义。以及verilog-mode的模板长什么样子。]]></description><category></category></item><item><title><![CDATA[作为一个verilog coder你需要一些技能（vim，verilog-mode）＞＞ 附送自动载入装逼.v模板（上）]]></title><link>https://blog.youkuaiyun.com/iot_aaker/article/details/142829584</link><guid>https://blog.youkuaiyun.com/iot_aaker/article/details/142829584</guid><author>iot_aaker</author><pubDate>Fri, 11 Oct 2024 10:22:10 +0800</pubDate><description><![CDATA[数字前端设计工程师技能包，如何自动生成verilog，自动连线，解放时间，解放双手。
verilog-mode工具使用和安装全教程，亲测亲用很多年。]]></description><category></category></item><item><title><![CDATA[arm cortex-m3/4的指令STRD/LDRD遇到的unaligned Hard Fault!]]></title><link>https://blog.youkuaiyun.com/iot_aaker/article/details/133853459</link><guid>https://blog.youkuaiyun.com/iot_aaker/article/details/133853459</guid><author>iot_aaker</author><pubDate>Mon, 16 Oct 2023 10:49:29 +0800</pubDate><description><![CDATA[STRD、LDRD、unaligned、hard fault]]></description><category></category></item><item><title><![CDATA[二、arm程序在debug工具介入时可以跑完但是烧录到flash中会停留在BKPT 0xAB的解决方法]]></title><link>https://blog.youkuaiyun.com/iot_aaker/article/details/122113119</link><guid>https://blog.youkuaiyun.com/iot_aaker/article/details/122113119</guid><author>iot_aaker</author><pubDate>Mon, 27 Dec 2021 15:03:19 +0800</pubDate><description><![CDATA[所谓的半主机模式：semihosting机制

参考arm development referrence.



它使得在ARM目标上跑的代码，如果主机电脑运行了调试器，那么该代码可以使用该主机电脑的输入输出设备。
这点非常重要，因为开发初期，可能开发者根本不知道该ARM器件上有什么输入输出设备，而半主基机制使得你不用知道ARM器件的外设，利用主机电脑的外设就可以实现输入输出调试。
     反之，要利用目标ARM器件的输入输出设备，首先要关掉半主机机制。然后再将输...]]></description><category></category></item><item><title><![CDATA[一、arm程序在debug工具介入时可以跑完但是烧录到flash中会停留在BKPT 0xAB的解决方法]]></title><link>https://blog.youkuaiyun.com/iot_aaker/article/details/122110381</link><guid>https://blog.youkuaiyun.com/iot_aaker/article/details/122110381</guid><author>iot_aaker</author><pubDate>Thu, 23 Dec 2021 17:43:19 +0800</pubDate><description><![CDATA[最近在调试arm程序，一般都会用到uart来log message，一是可以保证CPU正常run，二是可以debug程序bug在哪个位置。

    而用uart log message，一般都会采用printf的库函数，然后retarget库函数的porting即可。当然也可以自己实现printf函数，即各种字符处理，format处理等等。我觉得自行实现printf应该比较占用code size，所以还是会采用重定向printf的方式。

    目前有三种方式来实现：

...]]></description><category></category></item><item><title><![CDATA[二、barrier指令DSB，DMB，ISB，fence——内存屏障，指令屏障]]></title><link>https://blog.youkuaiyun.com/iot_aaker/article/details/122110015</link><guid>https://blog.youkuaiyun.com/iot_aaker/article/details/122110015</guid><author>iot_aaker</author><pubDate>Thu, 23 Dec 2021 16:03:48 +0800</pubDate><description><![CDATA[我们编写的源代码需要经过编译器转换成机器指令，最后由CPU执行这些指令。编译器作为一个“翻译官”，并不会老老实实地逐条翻译，而是会对我们的代码按照自己的“想法”进行调整和重组。CPU作为一个执行部件，对交给它的指令也不会规规矩矩的逐条执行，而是会重新排序之后执行。

这么“不尊重”我们的代码顺序，它们有权利这么做吗？它们有，因为它们高举的是“为效率优化”的大旗，一切都是为了你编写的代码能更快地执行，就像小时候某些家长常说的“都是为了你好”。

为了我好我就一定能好么，那可不一定，因为他们虽然经验丰富，但毕竟]]></description><category></category></item><item><title><![CDATA[一、barrier指令DSB，DMB，ISB，fence——内存屏障，指令屏障]]></title><link>https://blog.youkuaiyun.com/iot_aaker/article/details/122107674</link><guid>https://blog.youkuaiyun.com/iot_aaker/article/details/122107674</guid><author>iot_aaker</author><pubDate>Thu, 23 Dec 2021 15:48:11 +0800</pubDate><description><![CDATA[最近工作中遇到一个问题，大致描述一下：

    我们SOC用的arm cortex m7内核，在设计时设计人员图方便，将SPI controller的寄存器（即原本应该是APB空间）放在了0x60000000的某一块空间（此空间arm的memory定义区间为external memory），然后同时把SPI flash的存储空间也映射在了0x60000000的这一块区间内。后者将spi flash memory映射在此区间内其实时合理的。但是将spi controller的寄存器也放在这块空间，验...]]></description><category></category></item><item><title><![CDATA[如何保存linux系统终端terminal下的所有log信息到文件]]></title><link>https://blog.youkuaiyun.com/iot_aaker/article/details/119639248</link><guid>https://blog.youkuaiyun.com/iot_aaker/article/details/119639248</guid><author>iot_aaker</author><pubDate>Thu, 12 Aug 2021 11:18:27 +0800</pubDate><description><![CDATA[需求：在调试程序的工程中有时候会遇到实时输出大量的log，但是量大需要慢慢分析，所以需要将log信息保存到本地；
	
	
	实现：

	
		在执行命令前输入以下命令打开日志保存功能
		
	

sudoscriptfilename.log

       2. 执行完后执行以下命令关闭日志保存功能：


exit

       3. 此时当前目录下就会出现日志文件
...]]></description><category></category></item><item><title><![CDATA[u-boot下saveenv命令出现如下错误解决方法Error: end address not on sector boundary]]></title><link>https://blog.youkuaiyun.com/iot_aaker/article/details/119611772</link><guid>https://blog.youkuaiyun.com/iot_aaker/article/details/119611772</guid><author>iot_aaker</author><pubDate>Wed, 11 Aug 2021 17:17:26 +0800</pubDate><description><![CDATA[在使用u-boot下的命令saveenv保存环境变量时，出现如下错误无法保存：

Saving Environment to Flash...

Error: end address not on sector boundary



可能原因：实际的flash sector的size与对应开发环境的配置文件内的flash size不匹配

解决方法：在uboot下输入命令flinfo查看flash的情况，如下：



而我的u-boot的编译配置文件里面，我使用的是vexpress_common.h里面
]]></description><category></category></item></channel></rss>