瑞芯微 RK3399 JTAG 配置指南
RK3399的CPU採用big.LITTLE大小核架構,雙Cortex-A72大核+四Cortex-A53小核結構,對整數、浮點、記憶體等作了大幅優化,在整體效能、功耗及核心面積三個方面都具革命性提升。 RK3399的GPU採用四核ARM新一代高階影象處理器Mali-T860,整合更多頻寬壓縮技術:如智慧迭加、ASTC、本地畫素儲存等,還支援更多的圖形和計算介面,總體效能比上一代提升45%。
盈鵬飛科技最新研發的RK3399安卓主機板,搭載了最新android7.1 系統,4G DDR3記憶體,32G EMMC 存諸等...RK3399開發板主機板尺寸為:146*102mm,設計有非常豐富的介面,板載5路UART,支援USB3.0高效能裝置介面, WIFI/BT二合一,HDMI OUT 、HDMI INT、Type C、4G、IR、乙太網等;可擴充套件模組包括4G模組、Camera(1300萬、500萬)等應用類功能模組。
RK3399開發板為消費類電子、智慧終端、MID、無線通訊、醫療裝置、工業控制等行業產品的應用開發而設計,超強的視訊處理能力,超高清視訊輸出優勢,接口豐富、效能穩定。支援Android\Linux\Ubuntu系統,軟體支援完善,開放原始碼適合企業二次開發帶高清顯示的商顯廣告機、自助售貨機、教育終端等,可降低研發門檻,縮短產品研發週期。
RK3399 JTAG 配置指南
RK3399 系統除錯架構,支援 JTAG/SW 和 TRACE_DATA 兩種輸出介面。 這裡主要介紹 JTAG/SW。
JTAG/SW 又分為兩種介面,5 線的 JTAG 介面和 2 線的 SW 介面。
JTAG 介面包括 TDO、TDI、TRST_N、TMS、TCK,SW 介面包括 TMS 和 TCK 兩根線。 如圖 1.2.1,Debug 的腳是和 SDMMC 複用的,硬體設計上可以直接將這些引腳連到
JTAG/SW 座子上,或者採用 TF 卡轉接板來連線。這兩種介面是晶片硬體自動識別和控制的,不需要軟體干預。即除錯軟體如 DS-5,若 TDO/TDI/TRST_N/TMS/TCK 全部連線,配置為 JTAG 或 SW 介面都能識別,如果只連線 TMS 和 TCK,則只能配置為 SW 介面,如下圖:
TF 卡轉接板
圖上的兩列單排針根據圖 1.2.3 佈線,圖 1.2.3 是 DS-5 等偵錯程式的 JTAG 介面圖。一般情況下,DS-5 上 Debug 的連線都採用 2 線的 SW(serial wire)介面。硬體準備好後,可以在 Maskrom 或 Loader 燒寫模式試連,以確保硬體沒問題。因為在上述模式 JTAG/SW 功能是使能 的,但到執行至 Linux 核心,SDMMC 驅動可能會禁止 JTAG 功能,這需要軟體做相應修改。也就 是說 Debug 功能和 TF 卡無法同時使用。
圖 1.2.3
2.JTAG/SW 暫存器配置
IOMUX 引腳複用功能的切換
JTAG 各個引腳是和其他功能模組複用的,需要切換到 JTAG 的各個引腳。
1.配置 IOMUX 暫存器
GRF_GPIO4B_IOMUX (0xFF77_0000 +0x0e024)
2.當配置 force Jtag 位時,硬體會自動切換,不需要配置暫存器 IOMUX
GRF_SOC_CON7(0xFF77_0000+0x0e21c)
Coresight、CPU 等相關模組
一般無需 CLK 開關配置。
JTAG/SW 軟體配置
Rockchip Linux 4.4
如果有使能 cpu power down 功能,會導致 jtag 無法正常訪問 cpu,這需要禁止所有 CPU 進入 power down 狀態。手動將每個 CPU 節點的 cpu-idle-states 屬性註釋掉:
arch/arm64/boot/dts/rockchip/rk3399.dts
也可以通過命令列動態開關:
CLK 無需軟體配置,預設暫存器配置就能正常使用 JTAG。如果無法連線,可以嘗試在 command line
新增以下配置:
將所有 CLK 預設開啟
Upstream Linux 4.10 及以後版本
只需將 force jtag 配置為 1 即可,程式碼如下:
DS-5 使用說明
DS-5 是 ARM 公司出的一款除錯軟體,下載地址 https://developer.arm.com/products/software-development-tools/ds-5-development-studio
DS-5 soc 配置檔案,以 DS-5 V5.26.2 為例: 1.建立 Configuration Database
點 FILE->New->Other
選擇 Configuration Database
2.建立 Platform Configuration
A. 點 FILE->New->Other
B. 選 Platform Configuration,點選 Next
C. 如果硬體連線的是 5 線的 JTAG,選第一個 Automatic/simple platform detection。 如果是 2 線的 SW,需要選第二個 Advanced platform detection or manual creation。 點選 Next
D. 選擇之前建立的 Database,然後點 Next
E. 建立成功後,在 Connection Address 選擇 JTAG DEBUG 裝置
F. 如果硬體連線的是 5 線的 JTAG,直接點選 Autodetect Platform。如果是 2 線的 SW,需要 配置如下圖紅色矩形框的配置,然後再點選上圖的 Autodetect Platform。需要注意:選擇 Autodetect Platform 一定要在 Maskrom 模式下,否則很多模組可能識別不到。
G. 掃描檢測完後在左側視窗展開如下列表,軟體提示 CSETM_0-3 沒有連線,需要手動新增
H. 右擊 CSETM_0,點選 Add Link From This Device
I :選擇 CSTFunnel,以此類推新增 CSETM_0-3
J:Ctrl+S 儲存工程,這時工程會生成如下檔案
K. 選擇除錯連線的核
注意:嘗試連線時最好也是在 Maskrom 模式下先測試。