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.

CC2340R5: 燒錄軟體

Part Number: CC2340R5
Other Parts Discussed in Thread: UNIFLASH,

想請問一下,CC2340除了CCS以外是否有其他專門的燒錄軟體?

我想要燒錄兩個程式進去,但其中一個我想要設定讓他在後面一點才開始寫入

例如:有一主程式以及一個判斷是否要更新的小程式,一開始會先執行判斷更新的小程式,如果沒有要更新就直接跳到主程式開始執行,反之如果要更新就會複寫主程式

  • 1.我嘗試設置成這樣,之後我去查看Memory 他並沒有幫我空出一段位址

    2.Syscfg的Bootloader是符合我想實現可以進行跳轉位址執行另一個Project的這個想法嗎? 還是說她並不是這樣的用法

  • 2.Syscfg的Bootloader是符合我想實現可以進行跳轉位址執行另一個Project的這個想法嗎? 還是說她並不是這樣的用法

    不是这样用的。

    建议看下官方指导文档:BLE5-Stack User's Guide 

  • 這份文件我已經看了很多次,但我始終不理解她的意思

    1.是MCUboot會先去CCFG的區域讀取哪一段是bootloader嗎? 如果沒有設定他就會認定0x00000000是bootloader的開頭?

    我的理解是對的嗎? 

    2.那麼假設我使用MCUboot跟一個BLE的Project,我同時燒錄MCUboot跟BLE的HEX檔,我要怎麼讓BLE的位址在後面,uniFlash並不能讓HEX檔設定位址,再者如果使用uniFlash->Memory的Export功能產生出來的bin檔,也會因為他是從0x00000000開始燒錄的,拿去指定的位址燒,會導致他與HEX檔的內容不同,例如我這個BLE的project一般是從0x0000000開始寫,所以他產生出的HEX檔的內容也會依照0x00000000為base去建構,我把他擷取之後產生bin檔,雖然他可以在uniFlash上面自訂起始位址,但他就不是依照0x00000000為base去讀取跟執行

  • 您提出的问题涉及MCUboot、CCFG配置、烧录顺序以及文件格式等方面,让我一一解释:

    1. MCUboot读取CCFG配置区域:通常,MCUboot会在启动时从CCFG(Customer Configuration)配置区域读取信息,以确定启动过程中的关键参数,比如确定哪一段是bootloader。如果没有明确配置,它可能会默认将0x00000000作为bootloader的起始地址。这意味着如果您没有在CCFG中配置bootloader的起始地址,MCUboot可能会将0x00000000处的内容当作bootloader来执行。
    2. MCUboot与BLE项目的烧录顺序:一般来说,您应该先烧录MCUboot,然后再烧录BLE项目。这样,MCUboot会首先启动,然后它会根据预先设定的条件决定是否启动BLE项目。至于如何确保BLE项目的地址在后面,确保链接脚本将代码正确地定位到所需的起始地址。
    3. uniFlash的Memory Export功能和HEX文件的问题:您提到的uniFlash的Memory Export功能通常用于导出二进制文件(.bin),并不会关心代码的实际存储地址。如果您的BLE项目从0x0000000开始写入,那么导出的bin文件会包含相应的数据,而不会受到0x00000000作为基地址的影响。在烧录时,根据需要指定起始地址,以确保正确地加载BLE项目。

    综上所述,您需要确保正确配置MCUboot、了解烧录顺序以及使用正确的工具和流程来处理二进制文件,以确保MCUboot和BLE项目能够正确启动和运行。