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.

CC2460R2F 内部闪存 擦除与写入问题

Other Parts Discussed in Thread: BLE-STACK, CC2640R2F

我用 simplelink_cc2640r2_sdk_3_10_00_15\examples\rtos 下的工程文件做的项目,需要在CC2460R2F 内部闪存划出一块区域 ,可能是30K到40K空间,做一些数据存数,请问我通过 什么指令可以进行页擦除与写入

  • 请参考下面的目录下的例子:
    C:\ti\simplelink_cc2640r2_sdk_3_10_00_15\examples\rtos\CC2640R2_LAUNCHXL\drivers\nvsinternal
  • nvS的功能我已经用过了,那个是做一些参数存储的,
    我的要求比这高,可以改写的区域,可能是一个独立的程序 ,也可能是一个BIN文件,NVS只是用来做EPROM用的
  • CC2640R2F  flash 为128 k ,加上BLE-stack 以及应用程序芯片自身估计预留不了这么大的空间,建议你用外部flash芯片操作。

    如果你有意去尝试可以使用C:\ti\simplelink_cc2640r2_sdk_3_10_00_15\examples\rtos\CC2640R2_LAUNCHXL\blestack\simple_peripheral_oad_onchip

    也就是onchip oad 工程的包含的bim onchip工程中的flash_interface_internal.c。

  • 我是用的simplelink 协议 没有用蓝牙功能,主要是为了升级我自己的代码,以前也问过差不多的问题,他们都回答不到点了上去,如果我说直接写内部闪存,应该都明白,我是想分两个区,一个是自己的正常运行程序 ,一个是升级程序 ,我不使用蓝牙协议部份,只是用里面的无线做数据通信用的
  • 我一直要想知道 在没有蓝牙协议下, 我自己怎么去实现内部闪存的擦除,以及写入,因为我不需要蓝牙协议,只要用里面easylink做相互通信,实现 内部闪存的 写入及自己的固件刷新,先要知道 内部闪存的擦除及写入功能后,才能做其它操作
  • ni说的应该是easylink吧你可以试着把flash_interface_internal.c 里面关于flash的操作融合到你要的应用里面,关于你说的分区问题,要修改cmd文件,你可以去看一下bim工程中的cmd文件的关于MEMORY分配,但是我在这方面没有什么经验可以供你参考,只能自己去尝试了。

  • 谢谢,我先试试,有不明白的,再请教你

  • 我找到flash_interface_internal.c 所在目录以及它相关的H文件所在的目录都加入 到 include Opetions 连接库查找目录下, 再没有调用 flash_interface_internal文件里的writeFlash函数时不会报错,如果我加入这个函数 就会报

    undefined  first referenced    

     symbol        in file        

    ---------  ----------------    

    readFlash  ./eprom/cc_flash.obj

    writeFlash ./eprom/cc_flash.obj

    error #10234-D: unresolved symbols remain

    error #10010: errors encountered during linking; "CS_node_CC26_receive_tirtos_ccs.out" not built

    我的理解是没有对 flash_interface_internal.c 文件进行编译,所以才找到 对应函数,

    因为我对 CCS 9.0.1不能熟悉,我已经把flash_interface_internal.c 所在的目录加入到相对编译目录下了,为什么不对它进行编译,

  • 我现在的解决办法 是把flash_interface_internal.c 文件复制到自己工程下面可以了