This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2640R2L: 想读取external flash里的image,并烧写到internal flash里面

Part Number: CC2640R2L
Other Parts Discussed in Thread: CC2652R7, CC2642R

1. 项目需要用到BLE5 + OAD,英文版的e2e表示空间上不支持?

2. 于是打算将.bin传到外部flash里面,然后调用内部flash的读写接口,将程序烧写进去

2-1. 目前的问题是,如果不分分区,只要一擦除旧代码就很容易卡死;如果像BIM一样分出一个固件来做这件事,好像找不到资料来教怎么分成两个固件,两个固件之间怎么设置引导

(已经看过linker command file primer,并且看过bim和oad的cmd文件结构)

(但是还是不太清楚,如果我要分别配置两个程序进internal flash里,需要怎么配置我的linker command,以及,两个固件之间可否互相跳转调用,这方面找了不少的e2e和文档,资料确实不多,希望有这方面的支持)

  • CC2640r2l一共只有128K flash,做片上OAD,减去bim persistent stack消耗的内存,留给应用程序的空间特别小

    如果想做片上OAD,建议你使用CC2642R或者CC2652R7

    如果像BIM一样分出一个固件来做这件事,好像找不到资料来教怎么分成两个固件,两个固件之间怎么设置引导

    这恐怕不易实现,也没有指导文档

    这似乎也没必要,如果有片外SPI flash,那直接做off chip OAD升级就可以了

  • 我们的产品应用比较大,不清楚BLE5+片上OAD的空间是否足够

    (之前翻e2e一水的不支持,有点迷茫)

    现在,通过修改.cmd文件,可以把程序分成两个部分了,然后让一个烧写另一个

    但是,普通的擦除,编程可以正常使用,一旦擦除,从外部flash读包,然后一段段写入,就会在读flash的位置出错,卡在spi_write... ...是这个部分有什么特殊的依赖吗

  • ble5stack 占用的空间比4.2更大,再加上bim persistent,剩下的内存不足以做片上OAD

    因此SDK中没有BLE5 OAD的例程,对于BLE5 OAD使用上面说的CC2642R或者CC2652R7

    ble5做片上OAD内存是不够的,因此你看到都是说不支持

    关于SPI flash的使用可以参考例程C:\ti\simplelink_cc2640r2_sdk_5_10_00_02\examples\rtos\CC2640R2_LAUNCHXL\drivers\nvsexternal