xiang90721 发表于 2017-7-21 20:12:24

外扩Flash程序如何在线调试?

板子是官方stm32f746-discovery开发板,现在的程序是越来越大,内置Flash已经无法容纳,只能使用STM32 ST-LINK Utility工具烧录,我想问问,烧录后的程序该如何在线调试?使用mdk调试就是各种错误,求大神解答,谢谢!


请问你们是怎么调试这样的程序的呢?

toofree 发表于 2017-7-21 20:12:25

本帖最后由 toofree 于 2018-4-18 11:32 编辑

没有stm32f746板子,看了手册,跟之前的M3、M4大不一样呀。

首先是配置boot模式,两种模式在里面又都是可编程的,编程地址最小间隔16K。这两种模式可以随意设置,最初默认是ITCM-FLASH和system memory bootoader。











地址属于FLASH Option bytes,具体怎么用,得按下面套路来


所谓boot,就是复位后从哪开始运行bootloader程序,一般只能是nor flash。
那么想用NAND Flash跑程序怎么办,先从nor flash或内部flash boot起来,然后配置要跑程序的NAND Flash,配置完成NAND Flash的地址就映射到了MCU寻址区,读的时候就像读取ram,具体时序怎么做不用管。在NAND Flash中存放的程序,必须是完整的程序,也就是包含中断向量表,main等,反正就是在keil中指定ROM地址后,直接编译完的程序目标文件就是。(之前在用DSP的时候,由于内部空间非常少,内部只够存个boot程序,必须二次boot到外部flash。)
如果BOOT_ADDx映射到nor flash地址,那么boot都省了,直接跑。

以上是我是stm32f7的一点理解。



maxtch 发表于 2018-4-18 09:01:46

如果编译器是 GCC,可以用 GDB 来调试。

x5y4z3 发表于 2018-4-18 11:10:54

不知可否能找个J...Link来在 MDK 上调试?!
页: [1]
查看完整版本: 外扩Flash程序如何在线调试?