1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-XC5FF676 V1.1.
(3). Linux OS: Ubuntu10.04 LTS.
(4). Toolchains: AndeSight v1.3.3 for Linux.
(5). Embedded Linux2.6.27
2. 目的: 在CMAKE入門教學-使用ANDES Toolchains(3)之後的章節,指定使用ANDSE toolchains時,發現可以成功編譯,但是移植至Andes core實驗板卻無法正常執行程式,這是因為需要在CMakeLists.txt下增加GCC所需的編譯參數.
3. 範例程式_cmake6:
(1). 我們沿用CMAKE入門教學-使用ANDES Toolchains(3)的範例程式作修改,開啟〝src〞下的〝CMakeLists.txt〞.下載完整程式:
http://cid-b01cb9ac20175eaa.office.live.com/self.aspx/cmake6/cmake6.zip
(2). 依下列所示增加〝CMAKE_C_FLAGS〞、〝CMAKE_CXX_FLAGS〞、〝CMAKE_LD_FLAGS〞參數.(3). 輸入〝cmake .〞->〝make〞產生執行檔,其他操作步驟如CMAKE入門教學-使用ANDES Toolchains(3)所示.
(4). 之後移植至Andes core實驗板上就可以正常執行.
4. CMAKE常用的基本指令:
(1). CMAKE_C_FLAGS: 指定GCC編譯器參數.
(2). CMAKE_CXX_FLAGS: 指定G++編譯器參數.
(3). CMAKE_LD_FLAGS: 指定連結器參數.
2009年8月6日 星期四
2009年8月5日 星期三
CMAKE入門教學-使用ANDES Toolchains加入函式庫編譯(5)
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.
(5). Embedded Linux2.6.18
2. 目的: 上一章節CMAKE入門教學-使用ANDES Toolchains 編譯函式庫(4),是先display.c先編譯成共享函式庫(.so),再加入計畫內,這次實驗是將display.c刪除,直接加入編譯共享函式庫(.so),證明.so檔編譯成功.
3. 範例程式_cmake5:
(1). 繼續沿用上一章節的範例,將檔案夾〝lib〞下〝display.c〞與〝CMakeLists.txt〞刪除,只留下〝display.h〞與〝libdisplay.so〞.下載完整程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/cmake5/cmake5.zip
(2). 修改主〝CMakeLists.txt〞.(3). 將原本第2行刪除,修改成如下列所示.(4). 而檔案夾〝src〞下的〝CMakeLists.txt〞不做任何修改.(5). 輸入〝cmake .〞->〝make〞產生執行檔,其他操作步驟如CMAKE入門教學-使用ANDES Toolchains(3)所示.
(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.
(5). Embedded Linux2.6.18
2. 目的: 上一章節CMAKE入門教學-使用ANDES Toolchains 編譯函式庫(4),是先display.c先編譯成共享函式庫(.so),再加入計畫內,這次實驗是將display.c刪除,直接加入編譯共享函式庫(.so),證明.so檔編譯成功.
3. 範例程式_cmake5:
(1). 繼續沿用上一章節的範例,將檔案夾〝lib〞下〝display.c〞與〝CMakeLists.txt〞刪除,只留下〝display.h〞與〝libdisplay.so〞.下載完整程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/cmake5/cmake5.zip
(2). 修改主〝CMakeLists.txt〞.(3). 將原本第2行刪除,修改成如下列所示.(4). 而檔案夾〝src〞下的〝CMakeLists.txt〞不做任何修改.(5). 輸入〝cmake .〞->〝make〞產生執行檔,其他操作步驟如CMAKE入門教學-使用ANDES Toolchains(3)所示.
2009年8月4日 星期二
CMAKE入門教學-使用ANDES Toolchains編譯函式庫(4)
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.
(5). Embedded Linux2.6.18
2. 目的: 使用CMAKE編譯成共享函式庫(.so).
3. 範例程式_cmake4:
(1). 增加檔案與CMakeLists.txt:
a. 繼續使用上一章節的範例,增加名稱為〝lib〞檔案夾,並增加一個純文字檔〝CMakeLists.txt〞.
b. 將原本於〝src〞檔案夾內的〝display.c〞與〝display.h〞移至〝lib〞檔案夾下.
下載完整程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/cmake4/cmake4.zip
(2). 修改主〝CMakeLists.txt〞.(3). 依下列所示增加第2行.(4). 修改/lib下的〝CMakeLists.txt〞.(5). 依下列所示撰寫.(6). 修改/src下的〝CMakeLists.txt〞.(7). 依下列所示增加第11,12,15行程式,第13行需修改的程式如下列所示.(8). 輸入〝cmake .〞->〝make〞產生〝.so〞共享函式庫檔案與執行檔,其他操作步驟如CMAKE入門教學-使用ANDES Toolchains(3)所示.
4. CMAKE常用的基本指令:
(1). ADD_LIBRARY:編譯Lib函式庫.
(2). SHARED:宣告參數,產生共享函式庫.so檔.
(3). STATIC:宣告參數,產生靜態函式庫.a檔.
(4). INCLUDE_DIRECTORIES: 搜尋表頭檔路徑.
(5). HELLO_SOURCE_DIR: 宣告參數,外部編譯的程式路徑.
(6). LINK_DIRECTORIES: 搜尋函式庫表頭檔路徑.
(7). HELLO_BINARY_DIR: 宣告參數,代編譯路徑.
(8). TARGET_LINK_LIBRARIES: 執行二進制檔與函式庫連結.
(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.
(5). Embedded Linux2.6.18
2. 目的: 使用CMAKE編譯成共享函式庫(.so).
3. 範例程式_cmake4:
(1). 增加檔案與CMakeLists.txt:
a. 繼續使用上一章節的範例,增加名稱為〝lib〞檔案夾,並增加一個純文字檔〝CMakeLists.txt〞.
b. 將原本於〝src〞檔案夾內的〝display.c〞與〝display.h〞移至〝lib〞檔案夾下.
下載完整程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/cmake4/cmake4.zip
(2). 修改主〝CMakeLists.txt〞.(3). 依下列所示增加第2行.(4). 修改/lib下的〝CMakeLists.txt〞.(5). 依下列所示撰寫.(6). 修改/src下的〝CMakeLists.txt〞.(7). 依下列所示增加第11,12,15行程式,第13行需修改的程式如下列所示.(8). 輸入〝cmake .〞->〝make〞產生〝.so〞共享函式庫檔案與執行檔,其他操作步驟如CMAKE入門教學-使用ANDES Toolchains(3)所示.
4. CMAKE常用的基本指令:
(1). ADD_LIBRARY:編譯Lib函式庫.
(2). SHARED:宣告參數,產生共享函式庫.so檔.
(3). STATIC:宣告參數,產生靜態函式庫.a檔.
(4). INCLUDE_DIRECTORIES: 搜尋表頭檔路徑.
(5). HELLO_SOURCE_DIR: 宣告參數,外部編譯的程式路徑.
(6). LINK_DIRECTORIES: 搜尋函式庫表頭檔路徑.
(7). HELLO_BINARY_DIR: 宣告參數,代編譯路徑.
(8). TARGET_LINK_LIBRARIES: 執行二進制檔與函式庫連結.
2009年8月3日 星期一
CMAKE入門教學-使用ANDES Toolchains(3)
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.
(5). Embedded Linux2.6.18
2. 目的: 使用CMAKE自動建構makefile,並指定使用ANDSE toolchains,讓編譯完成的程式可以在 Embedded Linux上執行.
3. 範例程式_cmake3:
(1). 我們沿用上一章節CMAKE入門教學-建構較大型的計畫(2)的範例.
http://andescore.blogspot.com/2009/07/cmake-2.html
a. 使用〝/src/CMakeLists.txt〞檔案夾.下載完整程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/cmake3/cmake3.zip
b. 修改CMakeLists.txt,指定編譯所需要的compile修改內容如下所示.(2). 編譯前,先在根目錄指定Toolchains,使用〝Terminal〞輸入〝source bashrc.nds32le-linux-V0〞,指定編譯路徑.注意: 新開啟〝Terminal〞視窗要重新輸入.(3). 開啟〝Terminal〞,至src檔案夾同一階層處的CMakeLists.txt檔案位置.(4). 輸入〝cmake .〞,產生makefile.(5). 輸入〝make〞,產生執行檔.(6). 在ADP-XC5執行程式:
a. 將〝HelloWorld.adx〞存在SD卡內.
注意:一般SD卡格式都為FAT32,在Linux下無法顯示長檔名,如要支援長檔名請將SD卡format成EXT2或是EXT3格式.format步驟如下所示: http://andescore.blogspot.com/2009/02/format-sd-cardext2.html
b. 因目前ADP-XC5開發板上所使用的OS為AndeSight v1.3.1 Toolchains building 會造成錯誤,請依照Embedded Linux系統(C)_在SD card上執行Embedded Linux http://andescore.blogspot.com/2009/06/embedded-linuxcsd-cardembedded-linux.html執行AndeSight v1.3.3 Toolchains building的OS,再執行cmake3程式.
(7). 輸入〝mount –o mand /dev/cf /tmp〞掛載SD 卡.(8). 輸入〝cd tmp〞至SD卡檔案掛載位置.(9). 輸入〝./HelloWorld.adx〞執行程式.(10). 程式執行完畢後要卸載SD需再根目錄輸入〝umount /tmp〞.4. CMAKE常用的基本指令:
(1). CMAKE_C_COMPILER:指定gcc編譯器.
(2). CMAKE_CXX_COMPILER:指定g++編譯器.
(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.
(5). Embedded Linux2.6.18
2. 目的: 使用CMAKE自動建構makefile,並指定使用ANDSE toolchains,讓編譯完成的程式可以在 Embedded Linux上執行.
3. 範例程式_cmake3:
(1). 我們沿用上一章節CMAKE入門教學-建構較大型的計畫(2)的範例.
http://andescore.blogspot.com/2009/07/cmake-2.html
a. 使用〝/src/CMakeLists.txt〞檔案夾.下載完整程式:
http://cid-b01cb9ac20175eaa.skydrive.live.com/self.aspx/cmake3/cmake3.zip
b. 修改CMakeLists.txt,指定編譯所需要的compile修改內容如下所示.(2). 編譯前,先在根目錄指定Toolchains,使用〝Terminal〞輸入〝source bashrc.nds32le-linux-V0〞,指定編譯路徑.注意: 新開啟〝Terminal〞視窗要重新輸入.(3). 開啟〝Terminal〞,至src檔案夾同一階層處的CMakeLists.txt檔案位置.(4). 輸入〝cmake .〞,產生makefile.(5). 輸入〝make〞,產生執行檔.(6). 在ADP-XC5執行程式:
a. 將〝HelloWorld.adx〞存在SD卡內.
注意:一般SD卡格式都為FAT32,在Linux下無法顯示長檔名,如要支援長檔名請將SD卡format成EXT2或是EXT3格式.format步驟如下所示: http://andescore.blogspot.com/2009/02/format-sd-cardext2.html
b. 因目前ADP-XC5開發板上所使用的OS為AndeSight v1.3.1 Toolchains building 會造成錯誤,請依照Embedded Linux系統(C)_在SD card上執行Embedded Linux http://andescore.blogspot.com/2009/06/embedded-linuxcsd-cardembedded-linux.html執行AndeSight v1.3.3 Toolchains building的OS,再執行cmake3程式.
(7). 輸入〝mount –o mand /dev/cf /tmp〞掛載SD 卡.(8). 輸入〝cd tmp〞至SD卡檔案掛載位置.(9). 輸入〝./HelloWorld.adx〞執行程式.(10). 程式執行完畢後要卸載SD需再根目錄輸入〝umount /tmp〞.4. CMAKE常用的基本指令:
(1). CMAKE_C_COMPILER:指定gcc編譯器.
(2). CMAKE_CXX_COMPILER:指定g++編譯器.
2009年8月2日 星期日
CMAKE入門教學-建構較大型的計畫(2)
這裡主要是介紹建構開發較大型的計畫時的範例.
1. Linux OS: Ubuntu 9.04
2. 建立一個新的計畫.
(1). 新增一個檔案夾,名稱設為〝src〞. (2). 在src檔案夾下,新增〝main.c、display.c、display.h〞檔,建構模組化程式設計. (3). 將main.c檔內依下列輸入. (4). 將display.c檔內依下列輸入. (5). 將display.h檔內依下列輸入. (6). 在src檔案夾下,新增〝CMakeLists.txt〞文字檔. (7). 將CMakeLists.txt檔內依下列輸入. (8). 在src檔案夾同一階層處,再新增加一個〝CMakeLists.txt〞文字檔. (9). 將CMakeLists.txt檔內依下列輸入.3. 開啟〝Terminal〞,至src檔案夾同一階層處的CMakeLists.txt檔案位置.
(1). 輸入〝cmake .〞, 產生makefile. (2). 輸入〝make〞, 產生執行檔.
(3). 輸入〝./HelloWorld〞,run執行檔.
4. CMAKE常用的基本指令:
(1). ADD_SUBDIRECTORY:指定子目錄,並新增目錄存放編譯完成的檔案.
1. Linux OS: Ubuntu 9.04
2. 建立一個新的計畫.
(1). 新增一個檔案夾,名稱設為〝src〞. (2). 在src檔案夾下,新增〝main.c、display.c、display.h〞檔,建構模組化程式設計. (3). 將main.c檔內依下列輸入. (4). 將display.c檔內依下列輸入. (5). 將display.h檔內依下列輸入. (6). 在src檔案夾下,新增〝CMakeLists.txt〞文字檔. (7). 將CMakeLists.txt檔內依下列輸入. (8). 在src檔案夾同一階層處,再新增加一個〝CMakeLists.txt〞文字檔. (9). 將CMakeLists.txt檔內依下列輸入.3. 開啟〝Terminal〞,至src檔案夾同一階層處的CMakeLists.txt檔案位置.
(1). 輸入〝cmake .〞, 產生makefile. (2). 輸入〝make〞, 產生執行檔.
(3). 輸入〝./HelloWorld〞,run執行檔.
4. CMAKE常用的基本指令:
(1). ADD_SUBDIRECTORY:指定子目錄,並新增目錄存放編譯完成的檔案.
2009年8月1日 星期六
CMAKE入門教學-安裝與HelloWorld(1)
在Linux OS下撰寫程式除了撰寫C或者是C++的原始程式外,還要撰寫makefile,而CMAKE工具就是用來自動產生makefile,利用CMAKE簡單幾個指令就可以省去撰寫makefile的麻煩.
http://www.cmake.org/
1. Linux OS: Ubuntu 9.04
2. 安裝步驟:
(1). 使用〝Terminal〞.
(2). 輸入〝sudo apt-get install cmake〞,輸入Password安裝.
3. 建立一個新的計畫.
(1). 新增hello.c檔:
(2). 撰寫hello.c:
(3). 新增純文字檔,並將檔名改成〝CMakeLists.txt〞,注意Cmake檔名的大小寫要一致.
(4). 撰寫CMakeLists.txt:
4. 開啟〝Terminal〞,至CMakeLists.txt檔案位置,
(1). 輸入〝cmake .〞,
產生makefile.
(2). 輸入〝make〞,
產生執行檔.
(3). 輸入〝./hello〞,run執行檔. 5. CMAKE常用的基本指令:
(1). PROJECT:定義工程計畫名稱.
(2). SET:設定需編譯的source code.
(3). ADD_EXECUTABLE:產生執行檔.
(4). ${ }:設定變數名稱.
(5). #:註解.
http://www.cmake.org/
1. Linux OS: Ubuntu 9.04
2. 安裝步驟:
(1). 使用〝Terminal〞.
(2). 輸入〝sudo apt-get install cmake〞,輸入Password安裝.
3. 建立一個新的計畫.
(1). 新增hello.c檔:
(2). 撰寫hello.c:
(3). 新增純文字檔,並將檔名改成〝CMakeLists.txt〞,注意Cmake檔名的大小寫要一致.
(4). 撰寫CMakeLists.txt:
4. 開啟〝Terminal〞,至CMakeLists.txt檔案位置,
(1). 輸入〝cmake .〞,
產生makefile.
(2). 輸入〝make〞,
產生執行檔.
(3). 輸入〝./hello〞,run執行檔. 5. CMAKE常用的基本指令:
(1). PROJECT:定義工程計畫名稱.
(2). SET:設定需編譯的source code.
(3). ADD_EXECUTABLE:產生執行檔.
(4). ${ }:設定變數名稱.
(5). #:註解.
訂閱:
文章 (Atom)