国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

OMAP-L138_FlashAndBootUtils使用及編譯指導

發布時間:2013-6-6 11:38    發布者:eechina
關鍵詞: OMAPL , 串口燒寫 , UBL
作者:吳紅軍,TI通用數字信號處理系統技術支持

摘要

本文介紹OMAP-L138_FlashAndBootUtils工具包基本框架和串口燒寫工具sfh_OMAP-L138.exe工作原理,使用方法,以及針對客戶的硬件如何修改代碼,搭建編譯環境并重新編譯,并總結了使用該工具的常見問題。

關鍵字:OMAPL138, 串口燒寫, UBL

簡介

OMAP-L138支持多種啟動模式,包括 SPI,NAND,NOR等。TI為用戶提供了兩套 flash燒寫工具:

(1) 使用 TI 在 PSP 包或 OMAP-L138_FlashAndBootUtils 包中提供的 flash writer 的 CCS工程,通過仿真器連接硬件板,按照提示步驟燒寫 flash。

(2) 使用 OMAP-L138_FlashAndBootUtils工具包中的串口燒寫工具(如 sfh_OMAP-L138.exe),通過串口連接,進行命令行燒寫。

本文接下來將針對第二種方式進行詳細介紹。

用戶可以從開源網站上下載最新的 OMAP-L138_FlashAndBootUtils版本[1]。最新的版本為MAPL138_FlashAndBootUtils_2_40,本文以此版本展開討論。

OMAP-L138_FlashAndBootUtils_2_40工具包支持 TI公司的多種芯片平臺的 flash燒寫,包括 OMAPL138,AM1808,C6748等。工具包內的代碼是對應 LogicPD的 OMAL138/AM1808 EVM板的。如果用于用戶自己的硬件板,可能需要修改工具包中相應代碼并重新編譯。

該工具包中包括多種 flash工具及代碼。主要目錄如表 1所示。

表 1 OMAP-L138_FlashAndBootUtils_2_40工具包目錄結構


1. 串口燒寫工具 sfh_OMAP-L138.exe的工作原理

sfh_OMAP-L138是 OMAP-L138_FlashAndBootUtils包中用于實現串口燒寫 flash的應用程序。與UartHost.exe[3]工具不同,UartHost.exe是 UART啟動工具,不能燒寫 flash。

運行 sfh_OMAP-L138.exe時,通過 UART啟動方式下載并運行 OMAPL138/GNU/sft目錄下的 AIS格式 bin文件,完成芯片的初始化操作。然后通過 UART與 sfh進行命令交換,實現 flash的擦除和燒寫工作。

從 OMAP-L138/GNU/sft/build目錄中的 makefile文件可知,編譯 sft目錄內各 bin文件時需要 sft.c,device.c,uart.c以及針對不同 flash對應的 flash初始化文件。

例如 sft_OMAPL138_SPI_MEM.bin是由 sft.c,device.c,uart.c等文件與 spi.c,spi_mem.c,device_spi.c一起編譯,并通過 OMAP-L138/GNU/AISUtils目錄下的 HexAIS_OMAP-L138.exe,根據 sft目錄下的配置文件sft_hexais.ini內的配置信息,將.out文件轉換成 AIS格式的.bin文件。

2. 命令格式介紹

在命令行下輸入 sfh_OMAP-L138.exe –help輸出命令格式說明如下:

sfh_OMAP-L138 [-targetType ] [-flashType ] [] [




3. sfh_OMAPL138.exe常用命令的使用
sfh_OMAPL138.exe常用命令如表 2所示。

表 2 sfh_OMAPL138.exe常用命令表


以 SPI flash啟動為例,準備如下文件:

         sfh_OMAPL138.exe,來源于 OMAP-L138_FlashAndBootUtils_2_40工具包。
         ubl-spi_ais.bin,來源于 OMAP-L138_FlashAndBootUtils_2_40工具包。
         u-boot.bin,來源于 SDK PSP目錄下的 UBoot。
         u-boot-ais.bin,由 UBoot編譯出的 elf格式文件 u-boot,通過 AIS轉換工具生成。

首先將 OMAL138/AM1808 EVM板設置為 UART2啟動模式,S7開關設置如圖 1所示。 用直連串口線連接 PC與EVM板,打開 EVM板電源。在命令行模式下進入目錄:OMAP-L138_FlashAndBootUtils_2_40\OMAPL138\GNU。


圖 1 S7開關設置

3.1 全局擦除 flash命令

sfh_OMAPL138.exe –targetType OMAP-L138 –flashType SPI_MEM –erase


圖 2 sfh_OMAPL138.exe –erase命令運行界面

運行結果如圖 2所示,如果是先上電,后執行該命令,則需要按下板子上的 reset鍵輸出 “BOOTME”給上位機的sfh。

3.2 燒寫單個 AIS格式的應用程序

sfh_OMAP-L138.exe –targetType OMAP-L138 –flashType SPI_MEM -flash_noubl u-boot-ais.bin
OMAP-L138的 RBL支持 AIS格式,可以在啟動過程中通過 AIS格式文件中的配置信息初始化芯片,如 PLL,DDR等。這樣就可以直接將程序加載到片外內存,而不受片上內存大小限制,省略二級 Boot。

編譯 UBoot時,在 UBoot根目錄下會生成一個 elf格式的 u-boot文件,如圖 3所示,在 AISgen.exe工具里添加 PLL,DDR等配置參數,將此文件轉換成 AIS格式的 bin文件,可以直接燒寫并啟動。


圖 3 AISgen 配置界面

該命令將 AIS格式的 UBoot文件寫到 flash的起始地址。命令執行顯示結果如圖 4所示:重新上電,從圖 5啟動信息可見沒有 UBL的運行信息,是直接從 UBoot運行的。


圖 4 sfh_OMAPL138.exe –flash_noubl命令運行界面

重新上電,從圖 5啟動信息可見沒有 UBL的運行信息,是直接從 UBoot運行的。


圖 5 從 UBoot直接運行界面

3.3 燒寫 UBL和 UBoot

sfh_OMAP-L138.exe –targetType OMAP-L138 –flashType SPI_MEM -flash ubl-spi-ais.bin u-boot.bin命令執行結果顯示如圖 5所示。該命令將 ubl-spi-ais.bin寫到 flash的起始地址,u-boot.bin寫到 flash的0x10000的偏移地址。


圖 6 sfh_OMAPL138.exe –flash命令運行界面

UBL和 UBoot燒寫完后,關閉 EVM板電源,按圖 6所示,將 EVM板的 S7開關設為 SPI flash啟動。


圖 7 S7開關設置為 SPI Flash啟動

打開串口終端如 Hyper terminal,打開 EVM板電源,串口終端輸出信息如圖 7所示,表示 UBL和 UBoot成功燒寫,并成功從 SPI flash啟動


圖 8 終端調試信息輸出

使用 sfh_OMAP-L138.exe燒寫 UBL和 UBoot時,建議使用工具包自帶的 UBL。因為 UBoot的燒寫地址,要與 UBL的讀取地址一致,這樣 UBL運行時,才能正確的讀取 UBoot。工具包自帶的 UBL與燒寫工具保證了這一點。其它版本的 UBL需要用戶自行確認。

4. 根據硬件改動修改 serial flash utility

開發者自己的硬件板與 TI的 EVM比較,會影響工具使用的不同部分可能存在于:
(1) DDR型號
(2) FLASH型號
(3) 時鐘頻率
(4) UART配置

4.1 DDR參數修改

EVM板用的是 mDDR,大多數用戶用的是 DDR2,需要修改 OMAP-L138/Common/src/device.c文件中函數Uint32 DEVICE_ExternalMemInit( )的 5個 DDR參數值。這個函數同樣被 UBL調用,如果不用 UBL,則要在AISgen界面里配置正確的 DDR參數。

可使用 TI提供的 DDR寄存器配置工具[5]。根據 DDR手冊進行 DDR參數的計算,

4.2  SPI flash

如果更改了 SPI flash的硬件連接,可在 OMAP-L138\Common\include\device_spi.h文件中修改配置。

#define DEVICE_SPIBOOT_PERIPHNUM (1)//選擇 SPI1
#define DEVICE_SPI_UBL_HDR_OFFSET (0*1024)//ubl在 SPI flash中的偏移地址
#define DEVICE_SPI_APP_HDR_OFFSET (64*1024)//application image在 SPI flash中的偏移地址如果更換了與 EVM板不同的

SPI flash,必要時需要修改如下兩個文件:

OMAP-L138\Common\drivers\include\Spi_mem.h
OMAP-L138\Common\drivers\src\Spi_mem.c

4.3  NAND flash

NAND flash的數據位寬配置在 OMAP-L138\Common\include\device_async_mem.h文件中定義:

#define DEVICE_ASYNC_MEM_NANDBOOT_BUSWIDTH (DEVICE_BUSWIDTH_8BIT)

如果 NAND flash更換的與 EVM上的不同,必要時需要修改如下兩個文件

OMAP-L138\Common\drivers\include\Device_nand.h
OMAP-L138\Common\drivers\src\Device_nand.c

4.4  NOR flash

NOR flash是標準設備,除了時序參數之外,一般不需要修改,NOR flash相關代碼文件如下:

OMAP-L138_FlashAndBootUtils_2_40\Common\drivers\src\nor.c
OMAP-L138_FlashAndBootUtils_2_40\Common\drivers\include\nor.h
OMAP-L138\Common\src\device_async_mem.c
OMAP-L138\Common\include\device_async_mem.h
OMAP-L138_FlashAndBootUtils_2_40\Common\drivers\src\ async_mem.c

4.5  時鐘及 PLL

如果外部輸入時鐘頻率不是 24MHz,則需要 OMAP-L138\Common\src\device.c文件中函數DEVICE_PLL0Init()和 DEVICE_PLL1Init()的參數值。

函數原型 Uint32 DEVICE_PLL0Init(Uint8 clk_src, Uint8 pllm, Uint8 prediv, Uint8 postdiv, Uint8 div1 ,Uint8 div3, Uint8 div7)中 pllm是 PLL的倍頻系數,主頻計算公式為:



函數 DEVICE_PLL1Init()參數含義與 PLL0的類同,為 DDR提供時鐘。

4.6  UART配置

如果系統主頻發生變化,相應的模塊時鐘也改變,調試串口的分頻值需要做相應調整,否則串口輸出會因為波特率不正確而出現亂碼。根據不同的主頻修改 OMAP-L138\Common\src\device_uart.c中 DEVICE_UART_config的 UART時鐘分頻系數 divider的值,得到合適的 UART波特率。

如果不是用 UART2做為調試串口,修改 OMAP-L138\Common\include\ device_uart.h文件中的DEVICE_UART_PERIPHNUM定義。

5.   OMAP-L138_FlashAndBootUtils編譯環境搭建

在根據硬件改動,修改了代碼后,需要對工具包重新編譯,生成 UBL和 sfh_OMAP-L138.exe。如果在 Linux下使用此工具,需要在 Linux下進行編譯(具體編譯過程參考參考文獻 4)。下面介紹如何在Windows環境下搭建OMAP-L138_FlashAndBootUtils的編譯環境。

編譯環境需要的幾個工具如下[6]:

(1) cygwin
(2) .NET framework
(3) ARM Compiler tools(CodeSourcery G++ Lite)
(4) C6x Compiler Tools
(5) CCSV5

5.1  Cygwin安裝

從 http:/ / www. cygwin. com/下載并運行在線安裝工具setup.exe,注意安裝路徑中不能帶有空格。具體步驟如下:
1)        選擇從互聯網安裝;也可以選擇先下載,再從本地安裝。


圖 9 cygwin安裝界面 1

2)        選擇安裝路徑。


圖 10 cygwin安裝界面 2

3)        可選擇直接連接或使用代理。


圖 11 cygwin安裝界面 3

4)        選擇從哪個網址或者服務器上進行下載。


圖 12 cygwin安裝界面 4

5)        選擇安裝包


圖 13 cygwin安裝界面 4

一般選擇以下三項,其他默認即可。

• Devel-->make: The GNU version of the 'make' utility
• Devel-->subversion: A version control subsystem
• Editor-->vim (or similar)

安裝后要先運行一次 cygwin 后,才會在 cygwin/home/下出現 Administrator 目錄,進入該目錄,修改.bashrc。
同時,需要驗證變量TMP和 TEMP是否包含/tmp。使用如下命令:

echo $TMP
echo $TEMP

如果找不到"unset TMP" and "unset TEMP",可在cygwin\home\[user]\.bashrc 文件中添加如下命令創建:

export TMP=/tmp
export TEMP=/tmp

設置完后,重新打開cygwin即可。至此,cygwin安裝完成。

5.2  NET framework

從下面網址下載安裝最新的.NET Framework(4.0或者更高的版本)

http:/ / www. microsoft. com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=en

安裝默認路徑為 C盤。然后將 C#編譯器路徑添加到 windows系統環境變量中。進入目錄
C:\WINDOWS\Microsoft.NET\Framework查看軟件的版本號并復制,如
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319。然后右鍵我的電腦->屬性->高級->環境變量,如圖 13所示,選擇系統變量中的 path 點擊編輯,在原有變量值后粘帖添加剛剛復制的內容,路徑之間以’;’分隔。至此,Net Framework安裝結束。


圖 14 windows環境變量設置

5.3  C6x Compiler Tools

在 CCSV5安裝目錄下 ccsv5\tools\compiler\c6000_7.3.4即為 C6x編譯器目錄,在 CCSV3.3下的路徑為CCStudio_v3.3\C6000\cgtools\bin。如果沒有安裝 CCS,從下面網址下載 TI的 C6x 編譯工具并安裝,如不確認版本則下載最新版本。

https:/ / www-a. ti. com/ downloads/ sds_support/ TICodegenerationTools/download. htm
將C6x編譯器路徑添加到windows環境變量。

5.4  ARM Compiler tools(CodeSourcery G++ Lite)

從下面網址下載安裝 GCC交叉編譯器。注意交叉編譯工具的安裝目錄名不能含有空格,否則編譯時會報錯。

https://sourcery.mentor.com/sgpp/lite/arm/portal/release858

修改 OMAP-L138_FlashAndBootUtils_2_40\Common\build.mak文件中的 ARM_TOOLS_PATH變量為交叉編譯器的安裝路徑。例如ARM_TOOLS_PATH?=C:\\CodeSourcery\\arm-2009q1-203\\

5.5  CCSV5

如果需要用 CCS編譯工程,則安裝 CCS。

6. 編譯 OMAP-L138_FlashAndBootUtils

6.1查看環境變量

打開 cygwin,輸入 export,查看環境變量是否設置成功。顯示如下,黑色加粗的目錄為之前添加的環境變量。




如未添加成功,可以使用如下命令添加:

export PATH=/bin::/binPATH

6.2 編譯工具包

cd OMAP-L138

如果只是編譯命令行工具(如 sfh_OMAP-L138),而不需要重新編譯 CCS 工程,則進入 GNU目錄進行編譯;如果只需要重新編譯 CCS工程,則進入 CCS目錄進行編譯;如果兩者都需要,則在 OMAP-L138這個目錄進行編譯。編譯命令如下:

make clean
make

7. 使用serial flash utility常見問題及解決方法

7.1收不到“BOOTME”

在帶電情況下,復位芯片,如果還是收不到正確的“BOOTME”,檢查 BOOTMODE設置,串口終端波特率等參數設置,串口線連接方式。

7.2 停在 Waiting for SFT on the OMAP-L138…

如圖 14 所示,這種情況的原因通常有兩種:一是由于 DDR 參數配置不正確從而導致程序運行異常,不能返回正確的指令給主機;二是硬件原因,可能是焊接,或硬件連接上的錯誤造成的。可以通過仿真器連接目標板用 BSL庫提供的測試程序驗證一下 DDR,和相應的 flash。如果沒有仿真器,可以通過間接的方法,比如用 AISgen 工具包里提供的 UART 啟動工具 UartHost.exe 來加載運行測試程序,檢測 DDR,flash 等,將測試結果通過串口回傳顯示,或者設置 GPIO的狀態來反映。


圖 15 sfh_OMAP-L138.exe命令運行異常

7.3 燒寫中途停止

如圖 15所示,燒寫在中途停止,這種情況通常是因為 DDR工作不穩定,原因可能是 DDR布線問題導致信號完整性差,可以嘗試降低 DDR時鐘,并用示波器測量信號質量。

DDR不穩定也可能表現在能成功燒寫,但運行不正常,通常表現為串口打印停在解壓或啟動內核階段。


圖 16 sfh_OMAP-L138.exe命令運行異常信息

7.4 啟動后串口沒打印

燒寫成功,啟動后串口沒打印,檢查U-boot里的調試串口配置,默認為UART2。

參考文獻:
(1) http://sourceforge.net/projects/ ... es/OMAP-L138/v2.40/
(2) AISgen工具下載地址:http://www-s.ti.com/sc/techlit/sprab41.zip
(3) http://www.ti.com/lit/an/spraba5b/spraba5b.pdf
(4) http://processors.wiki.ti.com/in ... ility_for_OMAP-L138
(5) http://processors.wiki.ti.com/im ... ister_Calc_Rev4.zip
(6) http://processors.wiki.ti.com/in ... _Boot_Utils_Package



本文地址:http://m.qingdxww.cn/thread-116080-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
wangxn2000 發表于 2013-6-18 01:06:34
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 青青草国产三级精品三级 | xxxx性欧美 | 一区二区三区在线观看视频 | 老司机亚洲精品影院在线观看 | 狠狠色丁香婷婷久久综合不卡 | 亚洲精品视频在线播放 | 一个人在线观看www中国 | 92手机看片福利永久国产 | 精品久久伦理中文字幕 | 操摸| 日本综合视频 | 亚洲精品高清国产一久久 | 欧美黑人巨大xxxxxx视频 | 日韩欧美国产高清 | 一级毛片特级毛片免费的 | 男人天堂v | 中文字幕日韩精品麻豆系列 | 精品在线观看国产 | 麻豆成人久久精品二区三区小说 | jizz日本女人| 欧美一区二区不卡视频 | 亚洲日韩中文字幕 | 日本久久久久中文字幕 | 久久久久综合给合狠狠狠 | 久免费视频| 中文字幕一区二区三区四区五区 | 日本三级黄 | 久久精品午夜 | 91麻豆精品激情在线观看最新 | 厚颜无耻有字幕在线观看 | 欧美精品亚洲精品日韩专区va | 麻豆国内精品欧美在线 | 一区二区三区四区国产精品 | 日韩在线欧美高清一区 | 日本视频在线播放 | 黄色网页在线看 | 国产伦精品一区二区三区 | 国产一区系列在线观看 | 中文精品视频一区二区在线观看 | 国产对白刺激真实精品91 | 亚洲二区在线播放 |