OMAPL138/AM1808 修改調試串口爲UART1後通過CCSV4下載程序的全過程(原創)

 

 

OMAPL138/AM1808 修改調試串口爲UART1後通過CCSV4下載程序的全過程

一、   需要用的資料:

1) OMAP-L138_FlashAndBootUtils_2_30.tar.gz

備註:這個裏面的/OMAP-L138_FlashAndBootUtils_2_30\OMAP-L138\CCS目錄下面有要用的CCSV4工程文件:

2)Using the AM18xx Bootloader  這個文件裏面會講到關於AM1808的BOOT的基本知識;

3)http://www-s.ti.com/sc/techlit/spraba5.zip.    AISgen for D800K008軟件,用於生成the binary AIS UBL文件;

二、修改確認工作:

1)用CCV4將UBL_ARM和SPIWriter兩個工程文件導入;

2)UBL_SPI_MEM工程文件如下:

修改\OMAP-L138_FlashAndBootUtils_2_30\OMAP-L138\Common\include\device_uart.h中的內容如下:

#define DEVICE_UART_PERIPHNUM         (1)

重新編譯鏈接程序,並且下載到開發板上運行實際的效果是否正確;

3)SPI_Writer工程文件如下:

                重新編譯鏈接,保證工程文件沒有問題;

4)生成the binary AIS UBL文件:

       注意:1)Device Type: D800K006  的選擇來源於芯片內部的ROM中的內容:地址:0xFFFD0000 處按字符顯示的內容確定;

                   2) 注意理解上面的所有選項的內容:同時可以參考Using the AM18xx Bootloader.pdf 的中內容來理解生成BIN文件中的內容;

                   3)上面的軟件還可以用來下生成無UBL的AIS 格式的UBOOT.

三、程序下載過程:

1)CCSV4中下載SPI_WRITER工程文件:

下載過程如下:

Starting OMAP-L138 SPIWriter.

Will you be writing a UBL image? (Y or y)

y

Enter the binary AIS UBL file name (enter 'none' to skip):

none

Enter the application file name (enter 'none' to skip):

d:\u-boot.bin

INFO: File read complete.

Enter the app image load address (in hex):

C1080000  

備註:此處只能寫成前面的格式,而不能寫0XC1080000;  這個地址來uboot中定義的TEXT_BAES地址數值;

Enter the app image entry point address (in hex):

c1080000

Doing block erase.Doing block erase.Doing block erase.        SPI boot preparation was successful!

  1. 連接串口,更改BOOT方式爲SPI.給DEMO板上電;

串口打印信息如下:

說明兩點:一、串口1 BOOT修改成功;二、說明UBOOT中的調試串口配置不正確;

OMAP-L138 initialization passed!

Booting NL User Boot Loader

UBL Version: 1.65

UBL Flashtype: SPI

Starting SPI Memory Copy...

Valid magicnum, 0x55424CBB, found at offset 0x00010000.

   DONE

Jumping to entry point at 0xC1080000.

 

四、UBOOT中調試串口的修改方法:

下面將講解如何修改基於 uboot-03.21.00.04 源碼的 uboot 串口修改。以 UART2 切換到

UART1 爲例,需要修改的 uboot 源碼文件有以下兩個:

/include/configs/da850evm.h

/board/davinci/da8xxevm/da850evm.c

修改 da850evm.h 文件

打開 da850evm.h 文件,將文件以下 UART2配置行註釋掉:

//#define CONFIG_SYS_NS16550_COM1  DAVINCI_UART2_BASE /* Base address of UART0 */

增加 UART1 配置行:

#define CONFIG_SYS_NS16550_COM1   DAVINCI_UART1_BASE /* Base address of UART2 */

 

修改 da850evm.c 文件:有四個地方需要修改:

1)引腳複用:

打開 da850evm.c 文件,註釋掉 struct pinmux_config uart_pins 數組的 pinmux[3],

增加 pinnux[0],修改如下:

const struct pinmux_config uart_pins[] = {

{ pinmux[0], 4, 6 },

{ pinmux[0], 4, 7 },

{ pinmux[3], 2, 4 },

{ pinmux[3], 2, 5 }

};

修改後的截圖如下:

 

2)模塊的電源管理:

lpsc_on(DAVINCI_LPSC_UART0); /* console */

緊接着增加以下行:

lpsc_on(DAVINCI_LPSC_UART2); /* console */

修改後如下圖:

3)芯片內部模塊的SUSPSRC控制使用:

修改截圖如下:

4)使用UART1爲調試串口:

親測:這樣就可以UBOOT的串口參數就修改完成,最好將DA850EVM.H中的UBOOT給內核的參數中的console=tyyS2修改爲console=ttyS1,否則內核不能正常引導;

備註:

1) 如果在SPIWRITER程序下載過程中寫成"0xc1080000"將會出現下面的問題:

AM1808 initialization passed!

Booting TI User Boot Loader

UBL Version: 1.65

UBL Flashtype: SPI

Starting SPI Memory Copy...

Valid magicnum, 0x55424CBB, found at offset 0x00010000.

   DONE

Jumping to entry point at 0x00000000.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章