2009年4月5日 星期日

Embedded 系統(2-5)_使用Toolchains bould project(for Non OS)

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-XC5FF676 V1.1.
(3). Linux OS: Ubuntu9.04.
(4). Toolchains: AndeSight v1.3.3 for Linux.
2. 目的: 使實驗板上TFT LCD 顯示照片.
3. 範例程式_Hello5:
(1).這個範例主要是由Embedded 系統(2-3)程式修改而來,最重要的部分是我在Ubuntu9.04 下撰寫了一個BMP檔轉Hex的程式.
(2).將image_1.bmp檔與bmp2hex程式放在同一個目錄下. (3).使用〝Terminal〞輸入〝./bmp2hex〞執行程式,再輸入〝run filename.bmp〞指定需要轉換的.bmp檔. 下載BMP2HEX程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/BMP2HEX/bmp2hex.zip
(4). 轉換完成資訊. (5). 轉換完成可以看見多了一個〝BMP_24bit.txt〞的純文字檔,開啟純文字檔將內容複製至程式numerals.h中. (6). 主程式中,需做修改的部分程式碼,主要是將image_1陣列內的資料讀出,再送至LCDC.下載完整程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/AndeSight%7C_V133%7C_hello5/hello5.zip
(7). 請依照Embedded 系統(2-1) 步驟3.(3)~3.(9)操作,執行程式,顯示結果如下所示.


Non-OS開機後自動執行程式

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-XC5FF676 V1.1.
(3). Linux OS: Ubuntu11.04.
(4). Toolchains: AndeSight v1.4 for Linux.

2. 目的: Non-OS開機後自動執行程式.

3. 範例:
(1) 將"XXX.ld"檔使用編輯工具開啟,修改程式執行的位置,將"PROVIDE (__executable_start = 0x500000); . = 0x500000;"改成"PROVIDE (__executable_start = 0x2000000); . = 0x2000000;"後存檔.

(2). 使用Makefile輸入make all編譯程式.

(3). 將編譯好的執行檔改名稱為"linux.img",這是因為Andes Diagnostic Program預設的名稱,原本是用來執行SD卡內的Embedde Linux.

(4). 將修改名稱為"linux.img"執行檔,存到SD卡上.

(5). 在ADP-XC5平台上使用〝Terminal〞進入Andes Diagnostic Program,輸入"(99)",選擇"Auto Boot Linux SD Card",之後將系統重新開機後,系統就會自動執行SD卡內的程式.

2009年4月4日 星期六

Embedded 系統(2-4)_使用Toolchains bould project(for Non OS)

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-XC5FF676 V1.1.
(3). Linux OS: Ubuntu9.04.
(4). Toolchains: AndeSight v1.3.3 for Linux.
2. 目的: 在實驗板上按SW4~8(GPIO),7段顯示器(LED7~8)會同時顯示數字.
3. 範例程式_Hello4:
(1). 依照範例程式_Hello4所示撰寫hello.c程式,此主程式執行程序為讀取GPIO的值,再將讀取的值送至80port. N12 core的 GPIO初始化暫存器列表.下載完整程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/AndeSight%7C_V133%7C_hello4/hello4.zip
(2). 請依照Embedded 系統(2-1) 步驟3.(3)~3.(9)操作,執行程式,顯示結果如下所示.


2009年4月3日 星期五

Embedded 系統(2-3)_使用Toolchains bould project(for Non OS)

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-XC5FF676 V1.1.
(3). Linux OS: Ubuntu9.04.
(4). Toolchains: AndeSight v1.3.3 for Linux.
2. 目的: 使實驗板上TFT LCD 顯示RGB色彩.
3. 範例程式_Hello3:
(1). 依照範例程式_Hello3所示撰寫hello.c程式,此主程式執行程序為
A.初始化LCD Controller (LCDC).
B.清除畫面,顯示全黑.
C.顯示紅、綠、藍三色. N12 core的 LCDC初始化暫存器列表.下載完整程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/AndeSight%7C_V133%7C_hello3/hello3.zip
(2). 請依照Embedded 系統(2-1) 步驟3.(3)~3.(9)操作,執行程式,顯示結果如下所示.


2009年4月2日 星期四

Embedded 系統(2-2)_使用Toolchains bould project(for Non OS)

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-XC5FF676 V1.1.
(3). Linux OS: Ubuntu9.04.
(4). Toolchains: AndeSight v1.3.3 for Linux.
2. 目的: 使實驗板上LED7,LED8由00計數至FF.
3. 範例程式_Hello2:
(1). 依照下列所示撰寫hello.c程式,此程式的主程式將資料送至80Port使實驗板上的7段顯示器做00~FF的計數.
下載完整程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/AndeSight%7C_V133%7C_hello2/hello2.zip
(2). 請依照Embedded 系統(2-1) 步驟3.(3)~3.(9)操作,執行程式,顯示結果如下所示.


2009年4月1日 星期三

Embedded 系統(2-1)_使用Toolchains bould project(for Non OS)

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-XC5FF676 V1.1.
(3). Linux OS: Ubuntu9.04.
(4). Toolchains: AndeSight v1.3.3 for Linux.
2. 目的: 在超級終端機顯示HelloWorld.
3. 範例程式_Hello1:
(1). 依照下列所示撰寫hello.c程式,此程式只是顯示2個printf與主程式呼叫副程式的簡單範例.


下載完整程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/AndeSight%7C_V133%7C_hello1/hello1.zip
完整程式包含一個makefile 與.ld檔(必要檔案,在此不介紹此檔內容).(2). 編譯前,先在根目錄指定Toolchains,使用〝Terminal〞輸入〝source bashrc.nds32le-elf-V0〞,指定Non OS編譯路徑. 注意: 新開啟〝Terminal〞視窗要重新輸入.



(3). 使用"Terminal"輸入"make rebuild",會產生下列訊息. (4). 之後產生hello.bin執行檔. (5). 將hello.bin存在SD卡內,並裝上ADP-XC5FF676 V1.1實驗板上,並接上URAT與電腦連接後,開啟電源,按SW2->SW4. (6). 使用"超級終端機",輸入"97",再輸入〝c:〞.(7). 輸入〝hello.bin〞,再輸入〝0x500000〞.(8). 輸入〝55〞. (9). 輸入〝go 0x500000〞執行程式,顯示結果如下所示.