1. 程式人生 > >jLink V8除錯exynos 4412 u-boot的幾點補充

jLink V8除錯exynos 4412 u-boot的幾點補充

/** ****************************************************************************** * @author    Maoxiao Hu * @version   V1.0.0 * @date       Dec-2014 ****************************************************************************** * < COPYRIGHT 2014 ISE of SHANDONG UNIVERSITY > *******************************************************************************
**/ 提前宣告:經過本人親自測試與修改,用JLink是完全可以實現uboot除錯的。 在《部落格1》中初步實現了除錯環境的搭建,但是經過實驗,出現的問題很多: 1、沒有考慮eMMC中程式碼/資料完全被破壞,無法啟動的情況。 2、如果只使用三星提供的BL1燒寫到TF卡上啟動,JLink無法探測到CPU。 3、eclipse自動匹配彙編/原始碼錯誤,造成無法識讀。 據分析原因或解決方法如下: 2、CPU無法被探測的原因可能是電源管理晶片未給4412的CoreSight所在的IP核供電,JTAG口Vref引腳無參考電壓輸出,JLink探測不到這個參考電壓無法確定CPU的高低電平範圍。 3、board資料夾下只保留samsung子資料夾,cpu資料夾下只保留arm_cortexa9子資料夾,刪除其它架構資料夾即可。

一、製作可以連線Jlink偵錯程式的最小啟動盤

為了解決上面第二個問題,我們需要在製作TF卡啟動盤的時候,除了燒寫BL1,還需要燒寫另外一段使能電源管理晶片(PMC)的BL2,但是這個BL2只是使能PMC,無其它任何程式碼。 修改start.s開頭部分如下: NewImage 然後編譯uboot,燒寫BL1和CodeSign4SecureBoot資料夾下生成的checksum_bl2_14k.bin。注意此時一個可以連線JLink除錯的TF卡就製作完成了,在以後整個u-boot除錯階段這個啟動盤都不需要再動!

二、暫時修改程式碼基地址

修改board/samsung/smdkc210/config.mk

TEXT_BASE = 0x02023400 

同時取消lowlevel_init.S中的check_mem定義

NewImage

原因參看《Exynos4412_iROM_Secure_Booting_Guide_Ver.1.00.00.pdf》圖3-1。

三、去掉MMU使能函式

mmu_on

四、eclipse裡替換以下gdb初始化命令

target remote localhost:2331
monitor sleep 10
monitor halt
monitor sleep 500
load
break _start

補充:如果eclipse中的原始碼經過調整顯示仍然錯誤,不用管它,直接看eclipse下方的彙編區,彙編區的原始碼顯示是一定正確的。

NewImage

做完以上幾點後,uboot的除錯就可以完美進行了,剩下的問題基本都是程式碼問題。

仍然存在的問題:

當除錯到uboot中時鐘初始化程式碼時,JLink會失去連線,估計是時鐘的調整直接影響了CoreSight模組,JLink被迫與CPU斷開。 所以,時鐘初始化在uboot除錯階段,需要直接放到gdb初始化命令中做,待其它部分都除錯完成,再轉移uboot程式碼當中。 附: 1、三星BL1.bin下載 密碼:7jpr

相關推薦

jLink V8除錯exynos 4412 u-boot補充

/** ****************************************************************************** * @author    Maoxiao Hu * @version   V1.0.0 * @date       Dec-2014

使用eclipse與jLink V8除錯exynos 4412 u-boot

# connect to the J-Link gdb servertarget remote localhost:2331# Reset the targetmonitor resetmonitor sleep 10# Setup GDB for faster downloads#set remote

如何在Ubuntu下使用TF/SD 卡製作Exynos 4412 u-boot啟動盤

/** ****************************************************************************** * @author    Maoxiao Hu * @version   V1.0.1 * @date       Feb-2015 *****

如何在Mac下使用TF/SD 卡製作Exynos 4412 u-boot啟動盤

/** ****************************************************************************** * @author    Maoxiao Hu * @version   V1.0.1 * @date       Dec-2014 ****

關於Cocos Creator腳本執行順序的補充

Cocos Creator 腳本 加載Cocos Creator開發遠非初看起來那麽容易,正早一些可視化開發語言,例如VB,入門很容易,但進入實戰階段,你很可能會發現問題一股腦兒出現。但是,不要怕,根本原因還在於你不熟悉它。其效率不必懷疑,而且官方的主打產品也正是它。開發中,深感官方關於Cocos Crea

對C++ templates類模板的補充(Traits類模板特化)

前一篇文章《淺談C++ templates 函式模板、類模板以及非型別模板引數》簡單的介紹了什麼是函式模板(這個最簡單),類模板以及非型別模板引數。本文對類模板再做幾點補充。 文章目錄1. 預設的模板實參2. Traits程式設計技法——以STL迭代器為例1. 預設的模板實參這裡依舊使用上一篇文章中的arr

win7 x64環境python2.7下裝配sulley的注意-對於Windows Installation原文的補充說明

下面是要注意的地方: 1.python版本,根據這個教程,我原來的python版本是2.7.9,每次都會在libdasm上失敗,後來我重新安裝了了2.7.2版本,對於python版本的問題,我並不十分確定,希望有人能繼續驗證。 2.環境變數必須配好 3.原文中的第八點Bu

模組計算機型別“X64”與目標計算機型別“X86”衝突問題的補充

小弟近來實驗室專案需要在呼叫OpenCV的函式,編譯出現瞭如下問題:模組計算機型別“X64”與目標計算機型別“X86”衝突。 1.模組計算機型別,指VS中附加的連結庫函式型別,即lib或

iTop-4412精英版的u-boot-2017.11移植教程(三)

(一)修改clock.c 經過上面兩節的修改,我們發現還是有些問題,就是u-boot啟動後會停留在MMC: ,其實這是由於在clock.c檔案中關於mmc和lcd部分的結構體用錯了 exynos4_get_mmc_clk() exynos4_set_mmc_clk() e

iTop-4412精英版的u-boot-2017.11移植教程(二)

exynos4412時鐘體系初始化 本節參考由訊為提供的uboot原始碼,以及訊為提供的三星原廠exynos4412晶片手冊 感謝由百度提供的百度翻譯服務 (一)根據 三星原廠exynos4412晶片手冊 確定晶片時鐘初始化的順序 (1)設定DIV的值 1. CLK_D

Ubuntu12.04下使用Jlink Command燒寫u-boot到mini2440 nand flash

1.Ubuntu下安裝Jlink工具 到http://www.segger.com/cms/jlink-software.html下載Beta software version for Linux,選擇安裝包安裝即可。不同安裝包安裝方法各不相同,請自行谷歌,注意選擇32位

S3c2440如何利用JLINK燒寫U-boot到NAND Flash中

      很多同學使用筆記本作為自己的ARM開發和學習的平臺,絕大多數筆記本都沒有並口,也就是無法使用JTag除錯和燒寫程式到Nand Flash中,幸好我們還有JLINK,用JLINK燒寫U-bo

修改u-boot與Linux除錯串列埠以及檔案系統顯示終端串列埠

轉載:http://bbs.ednchina.com/BLOG_ARTICLE_3003157.HTM 1.背景         近期一個專案,使用TI Cortex-A8的晶片AM3517作為主控開發。前期使用北京瑞泰公司的ICETEK-AM3517-KB核心板搭建

第三期 QEMU除錯U-Boot實驗 《虛擬機器就是開發板》

        這一期註定會很簡短,簡短的意義就在於使用模擬器做某些事情確實很快捷。這一期我們使用QEMU來模擬執行U-Boot,大家對U-Boot應該都不陌生,相當於Linux的學前班,U-Boot的資料結構定義和驅動模型定義都採用Linux風格,在研究Linux核心前

嵌入式 修改u-boot與Linux除錯串列埠以及檔案系統顯示終端串列埠

1.背景         近期一個專案,使用TI Cortex-A8的晶片AM3517作為主控開發。前期使用北京瑞泰公司的ICETEK-AM3517-KB核心板搭建開發環境。在自己做底板布板的時候的時候塗個佈線方便,改用UART1作為除錯串列埠,而原來瑞泰給的開發包,已

ubuntu下使用skyeye對u-boot進行原始碼級除錯

學習嵌入式linux程式設計一個很好的切入點就是先學習u-boot,u-boot的coding stytle與linux完全一樣,而且程式註釋豐富,很容易上手,如果能把u-boot完全理解了再轉向linux,可以達到事半功倍的效果。可是u-boot發展到現在相容了很多平臺,程

IMX6之emmc的u-boot無法啟動除錯方法

通過量測啟動裝置相應的管腳clock訊號來判斷Boot_cfg設定是否正確,而如果MFG及MFG映象可以工作,也可以使用MFG直接讀取SBMR1暫存器來獲取: 1.將MFG的uboot換成正常啟動的uboot,即替換掉 \Mfgtools-Rel-4.1.0_130816_MX6Q_UPDATER\Prof

如何利用JLINK燒寫U-boot到NAND Flash中

         很多同學使用筆記本作為自己的ARM開發和學習的平臺,絕大多數筆記本都沒有並口,也就是無法使用JTag除錯和燒寫程式到Nand Flash中,幸好我們還有JLINK,用JLINK燒寫U-boot到Nor Flash中很簡單,大部分NOR Flash都已經被J

分析u-boot的Makefile

選項 lin 編譯平臺 create cpp port n) ati inux   這裏分析三星s5pv210芯片官方u-boot 先看u-boot 版本號 VERSION = 1    #主版本號PATCHLEVEL = 3   #次版本號SUBLEVEL

u-boot移植(一)---準備工作

分享 2.3 option 什麽 bison ctu http bin 執行命令 一、工具鏈的制作 1.1 工具   軟件工具:crosstool-ng   下載地址:git clone https://github.com/crosstool-ng/crosstool-n