《極海芯得》系列內容為用戶使用極海系列產品的經驗總結,均轉載自21ic論壇極海半導體專區,全文未作任何修改,未經原文作者授權禁止轉載。
適配芯片至Jlink,網上已經有許許多多的博客介紹了,但今天我們的主角G32R501不太一般,要是我們按照普通的芯片適配流程,大家會發現在最終對芯片進行程序進行下載的時候無法成功,那這是為什么呢?本文給大家介紹一下G32R501芯片,在適配Jlink的正確姿勢!
1. 適配全過程:從普通芯片“套路”到G32R501的“獨門心法”
1.1 根源:普通腳本為啥不靈?
G32R501有一個DCS模塊,它的本意是保護我們Flash在秘鑰正確的情況下才能進行擦、寫、讀,不被有心之人直接訪問我們的程序。所以我們需要寫入正確的秘鑰,G32R501才能對我們“毫無保留”,若是我們 強行讀取,只能得到它的一片空白”全0x00內容“。
其實官方已經給了方案:“JLinkSettings.JLinkScript”給我們在MDK環境進行調用,使用方法是:將device_supportg32r501commonJlink中的JLinkSettings.JLinkScript和r501_dbg.ini復制至“uvprojx”工程文件同級目錄下,然后再選擇相應的仿真配置就能進行下載了。
秘鑰在腳本中是這樣的:
U32 Z1_CSM_Buff[4]=
{
0xFFFFFFFF, // DCS Zone1 CSMPSWD0
0xFFFFFFDC, // DCS Zone1 CSMPSWD1
0xFFFFFFFF, // DCS Zone1 CSMPSWD2
0xFFFFFFFF // DCS Zone1 CSMPSWD3
};
U32 Z2_CSM_Buff[4]=
{
0xFFFFFFFF, // DCS Zone2 CSMPSWD0
0xFFFEDFFF, // DCS Zone2 CSMPSWD1
0xFFFFFFFF, // DCS Zone2 CSMPSWD2
0xFFFFFFFF // DCS Zone2 CSMPSWD3
};
以上就是默認配好的密碼。如果你的芯片燒入過“自定義Key”,也別忘記在“.JLinkScript”對應位置換成你自己的。
在使用J-Flash/J-Link Commander過程中我們可以通過軟件的配置和相關的參數指令進行解鎖腳本的指定。具體可有參考這里:
https://kb.segger.com/J-Link\_script\_files
的“Using J-Link script files”章節。
1.2 如何讓Jlink自動調用“.JLinkScript”文件?
我們每次都去指定一個腳本實在是這個“姿勢”實在不雅,有沒有一次性搞定Jlink自動檢索的辦法?答案就是J-Link Device Support Kit文檔提到的:在.xml文件里用ChipInfo->JLinkScriptFile字段來指定腳本。
Vendor="Geehy"
Core="JLINK_CORE_CORTEX_M52"
WorkRAMSize="0x4000"
JLinkScriptFile="Geehy_G32R501_ConnectCore0.jlinkscript"/>
這樣做的好處是,只要Jlink加載到這個ChipInfo,就會自動去運行Geehy_G32R501_ConnectCore0.jlinkscript,無需在MDK、IAR或Commander里再去勾來勾去。真正達成“一次性解決、全家同樂”的目標。
1.3 還需注意:G32R501內存訪問花樣多
愛折騰的同學可能早發現,G32R501的Flash地址可不止一條:
C-BUS接口:0x0800_0000
ITCM接口:0x0010_0000
這兩者看似不同,但實際上指向同一片物理Flash。為了讓“燒錄工具”都能正常訪問,.xml里我們往往需要寫出雙路地址的FlashBankInfo。示例如下:
Loader="G32R5xx_Program_Algorithm.FLM"
LoaderType="FLASH_ALGO_TYPE_OPEN"
MaxSize="0x40000"/>
大多數情況下,我們會以0x0800_0000作為主地址來執行下載算法。若有特殊需求,也能訪問ITCM空間。反正這套“雙卡雙待”的機制就是為靈活而生。
2. 最終效果
等完成以上關鍵步驟(腳本綁定+FlashBankInfo設置)后,Jlink和G32R501就可以在一起愉快的“生活”啦。我們不必在使用到Jlink的環境下再多余配置.jlinkscript文件。
2.2 J-Flash測試
SEGGER官方燒錄器J-Flash,可在設備列表中出現你“定制”的G32R501信息,一鍵燒寫或擦除,Status中再也不是一堆神秘報錯。
程序下載:
2.3 J-Link Commander測試
對命令行愛好者,可以在命令行下啟動JLink.exe。
2.4 MDK測試
對于默認KEY的芯片,我們再也不用單獨復制.jlinkscript到我們的工作目錄啦,后續再按官方要求:
刪除Utilities下的下載配置“. 502_key.ini”
替換Debug下的仿真配置成“device_supportg32r501commonJlink 501_dbg.ini”
下載情況:
2.5 IAR測試
IAR的Debugger設置中**去除“Use flash loader(s)”**勾選。使用我們精心準備的Jlink那一套腳本/下載算法算法。
下載情況:
3 限制條件
Jlink軟件:至少要能識別“M52”內核。官方給的最低參考版本是“Version V7.94g”。如果你版本還是更早期,Jlink一看到JLINK_CORE_CORTEX_M52就懵,根本不認得。
Jlink硬件:V12及以上。老版本(比如V9)SEGGER官方并沒有保證能支持M52內核。不過,這里也給出一個“權宜之計”: 如果你手頭只有JlinkV9 + Version V7.94,那么可以在G32R501.xml中把內核字段改成JLINK_CORE_CORTEX_M55,它也能跑起來(算是“黑科技”小技巧吧)。
歡迎各位在評論區分享使用Jlink編程、仿真G32R501的心得哦~
注:文章作者在原帖中提供了代碼文件,有需要請至原文21ic論壇
原文地址:https://bbs.21ic.com/icview-3476382-1-2.html?_dsign=7211ab32








-
芯片
+關注
關注
463文章
54007瀏覽量
465903 -
FlaSh
+關注
關注
10文章
1748瀏覽量
155506 -
Jlink
+關注
關注
6文章
115瀏覽量
39522
原文標題:極海芯得 EP.73 | G32R501:Jlink適配的正確姿勢
文章出處:【微信號:geehysemi,微信公眾號:Geehy極海半導體】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
使用vscode和cmake工具開發極海G32R501 MCU
極海G32R501數據手冊# 內置FPU,支持 Arm Helium,實時控制 MCU
極海G32R501實時控制 MCU 跨域新境界丨面向新一代高效能高實時控制設備
實時自控 精準調速 | 極海G32R501 2.2kW高性能矢量變頻器參考方案
極海半導體亮相2024珠海國際低空經濟博覽會
高效雙控 精準卓越 | 極海G32R501低壓無感雙電機參考方案
高效轉換 實時調控 | 基于G32R501的800W雙路MPPT微型逆變器參考方案
極海半導體榮登2025中國IC設計Fabless100排行榜之TOP10微控制器公司
極海半導體全數字雙向電源參考方案助力能效躍升
極海半導體G32R501:面向具身機器人的高性能、高安全實時控制MCU/DSP
G32R501 基于Cortex-M52內核的32位實時微控制器數據手冊
極海G32R501工業六軸機械臂參考方案釋放工業4.0產業價值
極海半導體亮相2025世界人工智能大會
特來電攜手極海半導體推出G32R501T實時控制MCU
極海半導體榮獲E維智庫2025年度硬科技產業縱橫獎
極海G32R501芯片與Jlink適配的過程解析
評論