女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何將原有的OAD示例代碼所包含的BIM起始地址從0x1F000改到0x1000

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2022-01-11 14:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

通常在實現OAD(on-air-download)功能的過程中,TI會提供標準的示例BIM(Boot Image Manager)代碼來進行鏡像校驗和下載。在TI所提供的示例代碼中,BIM代碼一般位于內部flash page31,和CCFG相鄰。若用戶根據自身功能定義不同,需要在BIM代碼區域增加更多功能(例如自定義UART / SPI boot, 自定義安全校驗功能等等)而導致自定義功能后的BIM代碼超出4k byte,又由于BIM區域與CCFG及NV Storage Area相鄰,在原有位置不能擴大,只能考慮重新為BIM劃定地址空間來滿足需求。

本文基于LAUNCHXL-CC2650評估板(http://www.ti.com.cn/tool/cn/launchxl-cc2650) 和BLE-STACK-2-2-1 SDK,詳細描述如何將原有的OAD示例代碼所包含的BIM起始地址從0x1F000改到0x1000,并且將BIM的地址區間從4k擴到8k。

注:所有不同版本的BLE SDK可以在以下網址找到:http://www.ti.com/tool/BLE-STACK-ARCHIVE

此外本文還會談到在進行BIM重定位過程中會遇到的以下問題及其解決方案:

TI RTOS相關Flash區域沖突的規避

新的目標Image有效header的產生

如何修改python工具的腳本生成新的Image

*****************************************************************************************************************

首先關于BIM起始地址的修改,分以下幾步:

Step1: 修改simple_peripheral project -> cc2650lp_app project的 flash起始地址

Step2: 重新給bim_extflash project 的BIM代碼分配地址空間

Step3: 使用新的BIM分配方式來實現OAD功能

Step1:修改simple_peripheral project -> cc2650lp_app project的 flash起始地址

在IAR7.70/IAR7.8中導入C:\ti\simplelink\ble_sdk_2_02_01_18\examples\cc2650lp\simple_peripheral 文件夾下的項目如下

1) 修改APP_IMAGE_START

打開cc2650lp_app-FlashOnly_OAD_ExtFlash 工程的option--linker—config,將APP_IMAGE_START從0x1000修改成0x3000

2) 修改RTOS運行方式

從項目中打開打開CC2640.cfg,或者直接在以下地址內找到這個文件: ble_sdk_2_02_01_18\src\common\cc26xx\kernel\cc2640\config)

注釋掉下圖所示的代碼:

原因:當選擇“use BIOS in ROM”方式時,RTOS 的ROM指針會被固定的放在0x1500區域。這樣就與我們所想要自定義的BIM代碼空間沖突了。而選擇“use BIOS in Flash”的方式可以讓TI-RTOS從FLASH啟動,以避免這個問題。當然”use BIOS in Flash”的方式會稍微多占用一些用戶的flash區域。

3) 修改reset vector的地址

接上一步,在CC2640.cfg中,將m3Hwi.resetVectorAddress 從0x1010修改為0x3010。

原因:這是reset vector的地址,應該跟在header后面。

step2:重新給bim_extflash project的BIM代碼分配地址空間

在IAR7.70/IAR7.8中導入C:\ti\simplelink\ble_sdk_2_02_01_18\examples\util\bim_extflash\cc2640文件夾下的項目如下

打開上圖所示的cc26xx_bim_extflash.icf文件,重新定義一個FLASHPAGE1,定義其范圍為8k,把region BIM定義為PAGE1的區域,并將BIM_START從0x1F000修改到0x1000.

??????

編譯通過后,檢查生成的bim_extflash.map, 確認之前的改成是否有效。

Step3:使用新的BIM分配方式來實現OAD功能

基于step2中的操作,打開同一個項目中如下圖所示的bim_main.c

做如下修改:

重新打開STEP1中修改過的C:\ti\simplelink\ble_sdk_2_02_01_18\examples\cc2650lp\simple_peripheral下的project, 找到

找到圖中所示的oad_target_external_flash.c,做如下修改

以上三步完成后,各自重新編譯成功,即完成了項目需要的所有改動。

*************************************************************************************

其次,為了配合新的地址分配來實現OAD,我們需要生成新的目標Hex待燒錄文件。仍然采用相關的Python工具(這里使用了Python 2.7.10)來生成需要的新的hex文件(新的文件包含正確的metadata Header)。

注:這里重點說明BIM地址修改后,如何對python腳本進行修改。關于提到的Python工具的下載和使用說明可以參見BLE SDK中包含的CC2640 BLE OAD User’s Guide.pdf說明文檔中的如下章節,這里不另加贅述。

10.1 Installing Python

10.2 TI OAD Image Tool (Python)

根據我們之前的修改,已經把simple_peripheral project -> cc2650lp_app project的代碼起始地址改成了0x3000,而原來采用的python工具腳本所生成的hex文件,是配置成將header的imgAddr改成0x1000的,與我們需要把起始代碼改成0x3000的需求不符。所以,我們需要對原有python 工具的腳本和相關操作進行修改,分成以下兩步:

1) 修改oad image的腳本文件( oad_image_tool.py)

該腳本文件位于:C:\ti\simplelink\ble_examples-ble_examples-2.2\tools\scripts\oad文件夾

用PythonGUI打開該文件,將startAddr賦值為0x3000,如下:

2) 修改python 工具的腳本的相關操作

這里我們會用到兩個Python的argument: -m –r, 來完成修改目標Image的metadata header地址 的目的。

?????

在命令行界面輸入如下命令:

> set PATH=%PATH%;C:\python27\

> Python C:\ti\simplelink\ble_examples-ble_examples-2.2\tools\scripts\oad\oad_image_tool.py C:\Users\x0269290\Downloads\Desktop\ble_sdk_2_02_01_18\examples\cc2650lp\simple_peripheral\iar\app\FlashOnly_OAD_ExtFlash\Exe\simple_peripheral_cc2650lp_app.hex -o C:\Users\x0269290\Downloads\Desktop\ble_sdk_2_02_01_18\examples\cc2650lp\simple_peripheral\iar\app\FlashOnly_OAD_ExtFlash\Exe\Simple_peripheral_cc2650lp_app.hex -m 0x3000 -r :0xD000

(注:根據python腳本、目標hex、輸出hex所在位置及名稱的不同需要對命令做出對應的更改。)

如圖所示:

得到結果如下:

注:以上例子中的“-m”是用命令給metaAddr賦值。但因為metaAddr(0x3000)大于imgStartAddr(0x1000)導致錯誤,所以在1)中修改python腳本中的對應代碼。

審核編輯:何安

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式處理
    +關注

    關注

    0

    文章

    341

    瀏覽量

    10299
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    S32K14X_MCAL4_0_RTM_1_0_0示例項目加載到EB Tresos Studio V21.0.0時出現報錯,為什么?

    我下載并安裝了 S32K1xx 的 RTM:S32K14X_MCAL4_0_RTM_1_0_0。當我嘗試示例項目加載到我的 EB Tresos Studio V21.0.0 中時,我
    發表于 03-20 07:33

    STM32F407嵌入式SRAM映射為0x20020000,為什么?

    20020000,與0x20000000不匹配,所以進不去。然后我通過Prg查看寄存器值,如下所示: 發現0x08008000地址的值確實為0x20020000。所以我
    發表于 03-10 08:24

    在starvision2上移植FreeRTOS,objdump后發現static變量的地址0,怎么解決?

    = .; *(.srodata .srodata.* .rodata .rodata.* .gnu.linkonce.r.*) rodataend = .;} . = ALIGN(0x1000);/*
    發表于 03-10 07:21

    GD32F1x0硬件開發指南

    電子發燒友網站提供《GD32F1x0硬件開發指南.pdf》資料免費下載
    發表于 02-09 15:39 ?0次下載
    GD32<b class='flag-5'>F1x0</b>硬件開發指南

    GD32F3x0硬件開發指南

    電子發燒友網站提供《GD32F3x0硬件開發指南.pdf》資料免費下載
    發表于 02-07 17:19 ?1次下載
    GD32<b class='flag-5'>F3x0</b>硬件開發指南

    GD32F3x0的設備限制

    電子發燒友網站提供《GD32F3x0的設備限制.pdf》資料免費下載
    發表于 01-21 17:47 ?0次下載
    GD32<b class='flag-5'>F3x0</b>的設備限制

    基于GD32F3x0系列的IEC60730 ClassB庫移植指南

    電子發燒友網站提供《基于GD32F3x0系列的IEC60730 ClassB庫移植指南.pdf》資料免費下載
    發表于 01-17 14:41 ?2次下載
    基于GD32<b class='flag-5'>F3x0</b>系列的IEC60730 ClassB庫移植指南

    GD32F3x0用戶手冊

    電子發燒友網站提供《GD32F3x0用戶手冊.pdf》資料免費下載
    發表于 01-16 14:42 ?0次下載
    GD32<b class='flag-5'>F3x0</b>用戶手冊

    STM32模擬eeprom只有起始地址0x8001000正常其他地址都會造成單片機運行不正常怎么回事

    STM32F103C8T6模擬eeprom只有起始地址0x8001000正常其他地址都會造成單片機運行不正常怎么回事
    發表于 12-29 23:05

    LDC1000地址0x03、0x0A,0X0B分別代表什么意思,具體該怎么設置?

    地址0x03、0x0A,0X0B分別代表什么意思,具體該怎么設置
    發表于 12-27 06:46

    DAC38J82循環輸出0x1000~0xF000累加的鋸齒波形,波形上疊加有高頻雜波的原因?怎么解決?

    問題1: 配置:LMFK=1:1:2:321DAC,不插值(250Mfs linerate=5G); 問題現象:循環輸出0x1000~
    發表于 12-06 06:05

    LP589x和TLC698x示例代碼用戶指南

    電子發燒友網站提供《LP589x和TLC698x示例代碼用戶指南.pdf》資料免費下載
    發表于 11-13 15:57 ?0次下載
    LP589<b class='flag-5'>x</b>和TLC698<b class='flag-5'>x</b><b class='flag-5'>示例</b><b class='flag-5'>代碼</b>用戶指南

    硬件CC26x0遷移到CC26x2R

    電子發燒友網站提供《硬件CC26x0遷移到CC26x2R.pdf》資料免費下載
    發表于 09-05 11:34 ?1次下載
    硬件<b class='flag-5'>從</b>CC26<b class='flag-5'>x0</b>遷移到CC26<b class='flag-5'>x</b>2R

    【GD32 MCU 移植教程】6、GD32F1x0和GD32F3x0移植到GD32E230

    和低成本,所以在存量客戶 中可能會有越來越多的客戶會有 GD32F1x0 和 GD32F3x0 移植到 GD32E230 系列的需求, 本文檔專門針對既有的 GD32
    的頭像 發表于 09-04 09:38 ?1380次閱讀
    【GD32 MCU 移植教程】6、<b class='flag-5'>從</b>GD32<b class='flag-5'>F1x0</b>和GD32<b class='flag-5'>F3x0</b>移植到GD32E230

    MSP430F42x0混合信號微控制器數據表

    電子發燒友網站提供《MSP430F42x0混合信號微控制器數據表.pdf》資料免費下載
    發表于 08-06 09:30 ?0次下載
    MSP430<b class='flag-5'>F42x0</b>混合信號微控制器數據表