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.

[参考译文] CC2541:关于 cc2541中的 OAD

Guru**** 2847400 points

Other Parts Discussed in Thread: CC2541

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/710377/cc2541-regarding-oad-in-cc2541

器件型号:CC2541

>我正在通过引用大图像 OAD 示例在 cc2541中实施 OAD。 在该示例中、oad_target.h 文件中有用于设置图像 A 和图像 B 页面的宏、还有一些用于定义大小(特定页面的区域)的宏
>我对映像 B 的大小有疑问,因为映像 A 将位于 第1页,大小为124KB,如果定义了 FITY_OAD_BIM,映像 B 将位于第8页。 我的问题是、如果图像 A 的大小为124KB、图像 B 如何从第8页开始、这意味着图像 A 将转到第62页?
>
>还请告诉我以下宏是什么意思?
>图元_OAD_BIM
>
>这种说法是什么意思
>""映像 A/B 在实施 BIM vice OAD 引导加载程序时可能具有非常不同的大小。"
>
>我已附上文件的图像,请仔细阅读并告诉我您的反馈。
>  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Vidula、

    我想您可以在此处找到大部分答案; processors.wiki.ti.com/.../OAD_for_CC254x.pdf

    您是否阅读过该文档?

    有关您的第一个问题、请参阅并通读第11和12节、如果您有疑问、请告诉我。

    Feature_OAD_BIM 是一个预定义、它只是告诉项目使用 BIM。 OAD 必须位于项目中。

    您的附件未通过。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我参考了该文档、还浏览了"大 OAD 映像"代码。 我编译了图像 A 代码和观察到的映射文件。 我相信 对于图像 A 和图像 B 代码、存储器的以下区域是保留的

    图像 A:

    #-D_CODE_Beg=0x0830 -D_CODE_END=0x3FFF #
    #-D_BANK4_BKE=0x4B000 -D_BANK4_END=0x4FFFF #
    #-D_BANK5_beg=0x58000 -D_BANK5_END=0x5FFFF #
    #-D_BANK6_Begy=0x68000 -D_BANK6_END=0x6FFFF #
    #-D_BANK7_Beg=0x78000 -D_BANK7_END=0x7E7FF

    图 B:
    #-D_CODE_Beg=0x4030 -D_CODE_END=0x7FFF #
    #-D_Bank1_beg=0x18000 -D_Bank1_End=0x1FFFF #
    #-D_Bank2_beg=0x28000 -D_Bank2_End=0x2FFFF #
    #-D_BANK3_beg=0x38000 -D_BANK3_END=0x3FFFF #
    #-D_BANK4_BKE=0x48000 -D_BANK4_END=0x4AFFF

     在文件"oad_target.c"中定义的函数"static bStatus_t oadImgBlockWrite( uint16 connHandle, uint8 *pValue )"中,存在写入映像 B 的存储器区域的地址,使用以下公式计算:

    uint16 addr = oadBlkNum *(OAD_BLOCK_SIZE / HAL_FLASH_WORD_SIZE)+(OAD_IMG_D_PAGE * OAD_FLASH_PAGE_MULT);

    oadBlkNum++;

    在这里、oadBlkNum 是每次请求新块时递增的。 根据上面提到的 addr 公式、似乎对于要为映像 B 写入的每个新块、会计算后续地址、这意味着在特定点、映像 B 会放置在位于映射文件中所述范围之外的存储器位置。 我想知道 、这种情况是否在 BLE 堆栈内得到了注意、以便可以将代码放置在专用范围内? 简单地说、我是否只需要提供起始地址、我需要在其中写入任何特定的映像(映像 A 或映像 B)。  

    您能为我提供"图像识别特征"和"图像请求特征"的数据包格式吗? 根据我的理解、我认为第0个块编号数据包由块编号(前两个字节)组成、其余为图像标头 、实际图像从块编号1开始。 我的理解是否正确?