自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 arm cortex-m3/4的指令STRD/LDRD遇到的unaligned Hard Fault!

STRD、LDRD、unaligned、hard fault

2023-10-16 10:49:29 362 1

原创 二、arm程序在debug工具介入时可以跑完但是烧录到flash中会停留在BKPT 0xAB的解决方法

所谓的半主机模式:semihosting机制参考arm development referrence.它使得在ARM目标上跑的代码,如果主机电脑运行了调试器,那么该代码可以使用该主机电脑的输入输出设备。这点非常重要,因为开发初期,可能开发者根本不知道该ARM器件上有什么输入输出设备,而半主基机制使得你不用知道ARM器件的外设,利用主机电脑的外设就可以实现输入输出调试。 反之,要利用目标ARM器件的输入输出设备,首先要关掉半主机机制。然后再将输...

2021-12-27 15:03:19 1574 1

原创 一、arm程序在debug工具介入时可以跑完但是烧录到flash中会停留在BKPT 0xAB的解决方法

最近在调试arm程序,一般都会用到uart来log message,一是可以保证CPU正常run,二是可以debug程序bug在哪个位置。 而用uart log message,一般都会采用printf的库函数,然后retarget库函数的porting即可。当然也可以自己实现printf函数,即各种字符处理,format处理等等。我觉得自行实现printf应该比较占用code size,所以还是会采用重定向printf的方式。 目前有三种方式来实现:...

2021-12-23 17:43:19 1143

转载 二、barrier指令DSB,DMB,ISB,fence——内存屏障,指令屏障

我们编写的源代码需要经过编译器转换成机器指令,最后由CPU执行这些指令。编译器作为一个“翻译官”,并不会老老实实地逐条翻译,而是会对我们的代码按照自己的“想法”进行调整和重组。CPU作为一个执行部件,对交给它的指令也不会规规矩矩的逐条执行,而是会重新排序之后执行。这么“不尊重”我们的代码顺序,它们有权利这么做吗?它们有,因为它们高举的是“为效率优化”的大旗,一切都是为了你编写的代码能更快地执行,就像小时候某些家长常说的“都是为了你好”。为了我好我就一定能好么,那可不一定,因为他们虽然经验丰富,但毕竟

2021-12-23 16:03:48 3152

原创 一、barrier指令DSB,DMB,ISB,fence——内存屏障,指令屏障

最近工作中遇到一个问题,大致描述一下: 我们SOC用的arm cortex m7内核,在设计时设计人员图方便,将SPI controller的寄存器(即原本应该是APB空间)放在了0x60000000的某一块空间(此空间arm的memory定义区间为external memory),然后同时把SPI flash的存储空间也映射在了0x60000000的这一块区间内。后者将spi flash memory映射在此区间内其实时合理的。但是将spi controller的寄存器也放在这块空间,验...

2021-12-23 15:48:11 8549 2

转载 如何保存linux系统终端terminal下的所有log信息到文件

需求:在调试程序的工程中有时候会遇到实时输出大量的log,但是量大需要慢慢分析,所以需要将log信息保存到本地; 实现: 在执行命令前输入以下命令打开日志保存功能 sudoscriptfilename.log 2. 执行完后执行以下命令关闭日志保存功能:exit 3. 此时当前目录下就会出现日志文件...

2021-08-12 11:18:27 3201

原创 u-boot下saveenv命令出现如下错误解决方法Error: end address not on sector boundary

在使用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里面

2021-08-11 17:17:26 1642

ARM Development Studio 5 + DSTREAM-ST调试器对第三方Device的开发和调试指南

基于arm DS-5,配合arm官方的DSTREAM调试器,针对arm架构的自主设计SOC或者控制芯片的device database的添加和调试,包括经验总结,调试原理介绍,工具链tool chain对比

2021-12-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除