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.

CC2642R: 关于片外OAD修改FLASH管脚无法升级

Part Number: CC2642R
Other Parts Discussed in Thread: CC2640,

工具CCS10,协议栈5.10.00.48,使用例程CC26X2 -> Simple Peripheral OAD Off-chip。

我原先使用的是CC2640F128,修改过外部flash管脚,也升级成功。现在迁移到CC2642R上面,升级时显示OAD ERROR :2,提示flash出错。我在任务中使用了flash读写,占用最后面的空间,没有问题,还用了先前CC2640的代码。现在在CC2642R上面,不知道缺了什么,对比后没有找到。

先介绍原CC2640的使用代码:在主函数更改了管脚使能:int main() -> PIN_init(NMPIN_configTable);其中重定义了IO,,并在使用前初始化了io,和SPI。

至此,可以使用读写flash,且通过了片外OAD升级。

以下是CCS配置flash。

按照此配置,依旧在主函数配置管脚PIN_init(NMPIN_configTable),(NMPIN_configTable为自定义管脚,或PIN_init(BoardGpioInitTable),BoardGpioInitTable为工具生成的所有管脚皆不成功),并初始化io(省略图片)和SPI.可以实现读写flash,但是无法升级。不知道问题出现在哪里。

  • 应该是重新定义SPI引脚时没有配置成功引起的,先不要添加自定义读写,只改变引脚试试

  • 感谢回复。我在另外开一个原始CC26X2 -> Simple Peripheral OAD Off-chip项目,然后使用btool工具尝试升级,确实可行。但是之前自定义读写外部flash的程序无法同时使用,请问下1:如何在可以升级的前提下,读写外部flash指定地址的内容,没有找到合适的内部代码。2:且我并没看懂该项目在哪里调用了外部FLASH的初始化和读写,我看到项目下NVSSPI25X文件有些定义,没有找到初始化源头是哪个函数。3:我原本自定义的读写是初始化SPI_init+spi_open(4000000),生成自己的spiHandle(spiHandle = SPI_open(CONFIG_SPI_0, &spiParams)),现在尝试使用NVSSPI25X文件下的spiHandle,没有效果。

  • 你可以先看下SDK drivers中的nvsexternal例程,了解CC26X2如何在片外flash中读写数据

    然后再在Simple Peripheral OAD Off-chip中进行读写操作