i.MX - RT1052调教总结

写在前面:
本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。


  • 用 stlink下载器设置成 CMSIS-DAP模式烧录,出现烧录失败,提示 RDDI-DAP ERROR,可能是由于仿真器烧录速度较快,杜邦线之间的信号会产生串扰,请尝试换短一些的杜邦线,或者把紧密连在一起的杜邦线拉开,也可以尝试降低烧录速度,一般即可正常解决。

    参考链接:https://github.com/wuxx/nanoDAP-HS

  • 使用虚拟 U盘模式下载时,将生成的 bin文件拖到开发板模拟出来的 U盘里面,需要先把 Boot Mode设置拨码成 0001,下载完成后,把拨码键变成 0110,使 code从 NOR Flash启动,具体可看下一个描述点。

    Note:
    To download binary into hyper flash and boot from hyperflash directly, following steps are needed:
    1. Select the target flexspi_nor_debug or flexspi_nor_release.
    2. Compile the project, and get the binaray file "hello_world.bin"
    3. Set the SW7: 1 off 2 off 3 off 4 on, then power on the board and connect USB cable to J28
    4. Drop the binaray into disk "EVK-MIMXRT"
    5. Wait for the disk disappear and appear again which will take around ~10s, then power off the board
    6. Set the SW7: 1 off 2 on 3 on 4 off, then power on the board
    7. After power on the baord, program has already started to run, reset SW4 is recommended. 
    

    i.MX - RT1052调教总结_第1张图片

  • 若直接用 Keil IDE的 LOAD下载键下载程序,需要把 Boot Mode的拨码键设置为 0110,否者下载完无法从 NOR Flash上启动运行(实际上已经把 code存到 NOR Flash上了,只是 Boot Mode不对,没有引导启动运行)。

    Note:
    To debug in hyper flash in MDK, following steps are needed:
    1. Select the target flexspi_nor_debug or flexspi_nor_release.
    2. Compile the project.
    3. Press F8 or click the download button, to program the application into hyper flash.
    4. Set the SW7: 1 off 2 on 3 on 4 off, then power on the board
    5. Push SW4 to reset.
    6. Start to debug.
    

i.MX - RT1052调教总结_第2张图片

  • NXP提供的所有的例程都可以 debug,所以在调试的时候要选择 debug而不是 down。

  • release版本的例程是不能用作 debug的,即使能进入 debug模式,但也无法进行信息调试。

  • xxx_flexspi_nor_sdram_debug/release 类型的目标工程,是指程序下载到 NOR Flash上,堆栈占用的 ram放在 sdram上面,其余类同。

  • 在多工程下,不同的工程目标,选择的分散加载文件,和调试初始化文件,也就是 .scf 文件和 .ini 不同,但同一工程这两个文件请务必选择同名的。
    i.MX - RT1052调教总结_第3张图片
    i.MX - RT1052调教总结_第4张图片

  • 在 Keil IDE中,建多工程目标时,选择带有 ram/sdram的 debug模式配置时,在 Option for Target xxx -> Utilities -> Configure Flash Menu Command中的 Update Target befor Debugging勾选请去掉,否则会出现 Error :flash Download failed -"Cortex-M7"警告。如下图:
    i.MX - RT1052调教总结_第5张图片

  • sdram mode的工程,在预处理宏中不能出现 XIP_EXTERNAL_FLASH、XIP_BOOT_HEADER_ENABLE以及 XIP_BOOT_HEADER_DCD_ENABLE的宏,这是用来对 NOR Flash进行配置的。

  • 如果用 i.MX RT1050 EVKB评估板跑例程,亦或者做 demo工程,不要下载在官网 board信息上的 SDK demo工程,去官网的在线 SDK生成网页去生成新的 SDK包,目前用的 SDK_2.8.0版本正常。以前的旧版本好像是对应旧板子 EVK的,不过已经弃用,生成的 SDK包选择也要避开它,会有 Deprecated这个注释的。(注意,这里的 B)
    i.MX - RT1052调教总结_第6张图片

  • 在 Option for Target xxx -> Target -> Code Generation的 ARM Compiler选项需要选 version 6(对应的是 SDK_2.8.0,网上大部分的教程用的是 version 5,因为那是旧版本,而且弃用了),同样的 Option for Target xxx -> C/C++ -> Misc Controls也跟网上给出的不一样,这里输入的是 -fno-common -fdata-sections -ffreestanding -fno-builtin -mthumb;其实重建工程,所有配置按官网的例程配置设定就好了。
    i.MX - RT1052调教总结_第7张图片
    i.MX - RT1052调教总结_第8张图片

  • 上面说了 RT1052支持用虚拟 U盘进行对 bin文件下载,在 Keil IDE中 Option for Target xxx -> User的 After Build/Rebuild的 Run #1里填写 fromelf.exe --bin -o “[email protected]” “#L”(注意格式为英文格式)并勾选,这样才能在编译后输出 bin文件。如下图:
    i.MX - RT1052调教总结_第9张图片

  • Option for Target xxx -> Target -> Code Generation -> Floating Point Hardware选项中必须选择 Double Precision选项,否则编译出错;其开关是通过宏(PRINTF_FLOAT_ENABLE=0, SCANF_FLOAT_ENABLE=0, PRINTF_ADVANCED_ENABLE=0, SCANF_ADVANCED_ENABLE=0, )来开关的。
    i.MX - RT1052调教总结_第10张图片

  • 中断号从 MIMXRT1052.h文件里面找,中断服务函数入口向量从启动文件里找,一般都在文件前面不远处。
    i.MX - RT1052调教总结_第11张图片
    左边为 MIMXRT1052.h文件,右边为启动文件

  • 重建工程时,各种工程的的配置可以参考官方的例程,一般是看 hello world工程跟 led output工程。

你可能感兴趣的:(NXP)