
STM32F103C8出現找不到'STM32100B_EVAL/stm32100b_eval.h' file not found
STM32的DCode bus是连接到bus matrix的吗?参考手册描述和图片是不符吗?
stm32f407无法配置定时器2为全部dma
STM32F103TBU6 封装是VFQFPN36 将PD0和PD1配置成CAN不成功是什么原因
串口DMA + 空闲中断收发 ?
F103RCT6芯片对AFIO->MAPR寄存器写入时出错
使用STM32捕获PWM时同时捕获2个通道时会出现捕获的频率值不准确的问题
WS2812B怎么显示任意字符 / 图案?
STM32F103RCT6 定位孔 镂空,会影响使用吗?
HAL库1.8.4在做破坏性测试的时候出现g_state永远为busy的情况导致串口通信发送卡死
运行程序的,因为默认起始地址是固定的,具体跟我们的boot配置有关。如果配置为从用户flash启动的话,程序首先是从0x8000000开始运行的,除非从这里跳
到指定的地方。
摸索了几天终于成功了,总结一下,板子是 stm32f103c8t6:
1 我用了 正点原子资料里的 IAP bootloader程序
void iap_load_app(uint32_t appxaddr) { if ((((volatile uint32_t )appxaddr) & 0x2FFE0000) == 0x20000000) / 检查栈顶地址是否合法.可以放在内部SRAM共64KB(0x20000000) / { / 用户代码区第二个字为程序开始地址(复位地址) / jump2app = (iapfun) (volatile uint32_t )(appxaddr + 4);
} }
在 jump2app();之前加了一些卸载外设的代码,结果出问题了,去掉以后可以正产跳转了,不知道为什么....
2 需要修改 STM32F103C8Tx_FLASH.ld 里
FLASH (rx) : ORIGIN = 0x8008000, LENGTH = 64K
3 在 Makefile 里 ,C_DEFS 追加宏定义 -DUSER_VECT_TAB_ADDRESS ,并修改 system_stm32f1xx.c里面 #define VECT_TAB_OFFSET 0x00008000U
4 我使用了 rtthread nano ,需要修改启动文件 startup_stm32f103xb.s 里
bl main 改为 bl entry
[md]感谢反馈~!
除了RTOS和Makefile相关地方外,链接文件的修改以及VTOR的修改算是常规操作。