STM32
Veiko
一般都会写个"你好明天"之类的吧!
展开
-
ARM-CortexM0固件中函数实际在Flash中的存储地址与调用地址(引用地址)不一致
ARM-CortexM0实际项目中发现, Keil编译后函数的实际存放地址是按4字节对齐的, 函数的起始地址为偶数. 但仿真时发现调用函数时往PC寄存器写入的都是奇数(函数实际存放地址 + 1)。为了验证, 写了一段函数, 执行的操作是以函数名的方式将函数地址给一个变量, 查看变量的值,仿真截图如下:发现我们如果如上面的代码一样引用这个函数地址的时候, 传递过来的地址也是函数的实际存放地址+1.原因分析:ARM-CortexM0的内核运行规定调用函数时传入的函数地址必须为奇数, 否则就会产.原创 2020-10-23 18:22:28 · 1092 阅读 · 0 评论 -
使用Keil自带的工具生成bin格式文件
Keil版本信息Keil的工程配置选项中一般可以很容易的配置是否生成hex文件, 但不能直接配置生成bin文件. 要想生成bin格式的文件的话可以使用其自带的工具fromelf, 具体步骤如下:上图中Run#n一定要勾选上, 否则不会执行这个命令. 按上图配置好后, 点击OK回到主界面重新编译工程就会生成bin格式的文件了:...原创 2020-09-02 18:17:16 · 527 阅读 · 0 评论 -
stm32利用SysTick实现精确定时
stm32定时器资源虽然丰富,但是在一些项目中,我们任然希望不借助传统定时器实现精确延时,这样在面对一些对定时器资源需求多的项目我们剩下资源用来做该做事情。STM32用的是ARM Cortex-Mx系列的内核,该核心具有一个滴答时钟,这个滴答时钟大意就是在配置完时钟源和使能以后能进入到中断处理函数中。是为了方便一些操作系统,诸如ucOS等系统,的移植,作为任务调用的同步节拍。以下是在stm32f1转载 2014-01-15 15:14:08 · 1755 阅读 · 0 评论 -
stm32单片机中断向量偏移地址设置时的对齐要求
void MY_NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset) { assert_param(IS_NVIC_VECTTAB(NVIC_VectTab)); assert_param(IS_NVIC_OFFSET(Offset)); SCB->VTOR = NVIC_VectTab|(Offset & (u32)0x1FFFF原创 2016-09-17 15:07:53 · 3487 阅读 · 0 评论