分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!
在fedora 12下編譯和除錯rt-thraed
1.安裝編譯工具
yum install sconsyum install python
[lixianjing@vm os]$ wget os]$ unzip rt-thread-0.4.0/ beta1.zip[lixianjing@vm os]$ cd rt-thread-0.4.0/ beta1/bsp/mini2440/3.修改rtconfig.h
//#define rt_using_newlib//#define rt_using_pthreads使用newlib和pthreads,在我這裡有些問題,編譯時會說標頭檔案有衝突。加上-nostdinc選項之後又說有些標頭檔案找不到了。估計newlib還不太成熟,所以我暫時沒有用newlib。4.修改rtconfig.py
#exec_path = 'e:/program files/codesourcery/sourcery g++ lite/bin' exec_path = '/home/lixianjing/codesourcery/sourcery_g++_lite/bin' #prefix = 'arm-none-eabi-' prefix = 'arm-none-linux-gnueabi-' lflags += ' -nostdlib' cflags += ' -nostdinc -nostdlib'如果不加nostd,就會出現標頭檔案衝突的情況,通常編譯核心都是要加這個選項的,但是不清楚為什麼在windows下沒有問題。5.修改sconstruct
# build programenv.program(target, objs, libs=['libgcc.a'], libpath='/home/lixianjing/codesourcery/sourcery_g++_lite/lib/gcc/arm-none-linux-gnueabi/4.4.1/armv4t/')因為arm沒有除法指令,所以除法是用函式實現的,這些函式在libgcc.a裡。因為前面加了nostdlib選項,所以這裡要鏈結一下libgcc.a。6.加上乙個raise函式raise.c:
void raise(void)這個函式可能是libgcc.a裡某處引了它,應該相當於abort之類的功能吧,這裡實現乙個空函式即可。7.修改sconscript
這裡只是把raise.c加入編譯。8.編譯rt-thread
[lixianjing@vm mini2440]$ scons如果出現下列資訊,那就是編譯成功了:
arm-none-linux-gnueabi-objcopy -o binary rtthread-mini2440.axf rtthread.binarm-none-linux-gnueabi-size rtthread-mini2440.axf text data bss dec hex filename363064 1516 14740 379320 5c9b8 rtthread-mini2440.axfscons: done building targets.
[lixianjing@vm os]$ git clone git: os]$ cd mini244010.修改hw/mini2440.c
static void mini2440_reset(void *opaque) return; }...}開始我直接編譯了qemu,執行時總出現無效位址問題。後來發現是qemu是按u-boot載入的rt-thread,rt-thread載入的位址與u-boot是不同的,所以根本沒有執行到rt-thread的**。11.編譯qemu
[lixianjing@vm mini2440]$ ./configure --target-list=arm-softmmu --disable-linux-user;make[lixianjing@vm mini2440]$ su[root@vm mini2440]# make install12.除錯執行rt-thread開兩個終端,都進入bsp/mini2440目錄。終端1:
[lixianjing@vm mini2440]$ qemu-system-arm -s -s -m mini2440 -kernel rtthread.bin -serial stdios3c: clk=240 hclk=240 pclk=240 uclk=57qemu: ee24c08_initdm9000: init qemu mac : 52:54:00:12:34:56qemu mini2440_reset: loaded kernel rtthread.bin at 0x30000000加 -s -s 選項表示qemu等待偵錯程式連線。終端2:
1234是qemu等待偵錯程式的預設埠號。然後就可以用gdb研究rt-thread了。這裡說明一下,我的工作目錄是/home/lixianjing/lab/os,針對mini2440定製的qemu在mini2440下,rt-thread源**在rt-thread-0.4.0 beta1下。
給我老師的人工智慧教程打call!
fedora 12下安裝mysql及相關目錄介紹
fedora 12下安裝mysql及相關目錄介紹 開啟終端,用su使用者登陸 輸入 shell yum install mysql mysql server 等以上兩個軟體包安裝好之後 輸入 shell chkconfig levels 235 mysqld on etc init.d mysqld...
在Fedora 12上安裝谷歌應用程式
如果你對google s chrome瀏覽器感興趣,這裡有乙個非穩定的64位版本,你可以使用yum來安裝它 sudo yum install google chrome unstable 安裝好之後,執行你的 bashrc file source bashrc 現在google chrome現在可以...
在fedora下重新編譯aria2
首先安裝乙個dnf外掛程式,sudo dnf install dnf command versionlock aria2 1.35.0 aria2 1.35.0.tar.xz aria2.spec 1 directory,2 files源 就在aria2 1.35.0的src目錄下,修改他並將其重新...