一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

再也不用花錢買開發(fā)板了,自己搭建arm模擬器!

 西北望msm66g9f 2020-10-19

很多時候,做嵌入式往往需要大量的金錢來購買設(shè)備,并且?guī)е@些電路板非常的不方便,那么有沒有一種辦法可以解決這個問題呢?這時就可以利用QEMU來模擬一個設(shè)備進(jìn)行實(shí)驗(yàn)了。

1. 介紹

QEMU是一套由法布里斯·貝拉(Fabrice Bellard)所編寫的以GPL許可證分發(fā)源碼的模擬處理器,在GNU/Linux平臺上使用廣泛。Bochs,PearPC等與其類似,但不具備其許多特性,比如高速度及跨平臺的特性,通過KQEMU這個閉源的加速器,QEMU能模擬至接近真實(shí)電腦的速度。

簡單的說,通過這個模擬器,對于做嵌入式的人來說,可以在pc仿真開發(fā)板的運(yùn)行情況,不用每次都需要將程序下載到開發(fā)板,特別是調(diào)試驅(qū)動與編譯內(nèi)核這將節(jié)省大量的時間!

2.準(zhǔn)備

首先下載2440的qemu

為什么要下載qemu,直接在ubuntu上apt-get install不行嗎?

不行!下載后的不帶這個2440

首先在git上下載代碼

git clone git://repo.or.cz/qemu/mini2440.git qemu

下載完成后開始編譯配置

./configure--target-list=arm-softmmu --prefix=/usr/local/qemu/mini2440
make -j4
sudo make install

(其中--prefix=/usr/local/qemu/mini2440表示install的目錄;make -j4表示4個目標(biāo)同時構(gòu)建,jobs=4,一般來說編譯速度會更快些)

然后將bin路徑添加到環(huán)境變量中方便使用qemu-system-arm

在這個目錄中,有一個mini2440_start.sh的腳本

為了直接看到效果,這里直接采用韋東山老師的uboot,kernel和文件系統(tǒng)

關(guān)于文件系統(tǒng),可以采用nfs文件系統(tǒng)進(jìn)行相關(guān)的開發(fā),十分的容易,以后介紹

3.flashimg

所以目前的文件系統(tǒng)是在在這些基礎(chǔ)上進(jìn)行的。

接著,采用一個工具進(jìn)行制作,這個工具的就是flashimg工具

flashimg的官方網(wǎng)站訪問不進(jìn)去了?。。?/p>

然后就只能使用github了。

git@github.com:cailiwei/flashimg.git

下載完成后就可以進(jìn)行編譯

./autogen.sh
./configure
make
sudo make install

將文件轉(zhuǎn)移到這里面,然后開始制作

現(xiàn)在采用的是nandflash,所以先采用這種方式

#!bin/bash
./flashimg -s 64M -t nand -f nand.bin -p uboot.part -w boot,u-boot.bin -w kernel,uImage -w root,rootfs.jffs2 -z 512

如果要采用nor flash

flashimg -s 2M -t nor -f nor.bin -p uboot.part -w boot,u-boot.bin -w kernel,uImage -w root,rootfs.jffs2

4.寫腳本

又到了寫腳本時間了

制作完成后,生成nand.bin 將生成的nand.bin轉(zhuǎn)移到我們編譯的2440的qemu之中

在這里面,我們最好不用自帶的mini2440_start.sh

自己寫一個start.sh

qemu-ifdown

#!/bin/sh
echo 'Close tap!'
sudo ifconfig $1 192.168.31.196  down

qemu-ifup

#!/bin/sh
echo 'Excuting qemu-ifup'
ifconfig $1 192.168.31.196

5. nfs文件系統(tǒng)

接下來開始搭建nfs方案了

sudo apt-get install nfs-kernel-server

之后修改/etc/exports

/home/bigmagic/work/zfjqemu/rootfs *(rw,sync,no_root_squash)

重啟nfs

sudo /etc/init.d/nfs-kernel-server restart

6. 啟動

編寫好啟動腳本后,直接運(yùn)行

sudo sh start.sh

接著,輸入nfs的啟動參數(shù)

set bootargs noinitrd root=/dev/nfs rw nfsroot=192.168.31.196:/home/bigmagic/work/fs_qtopia/,proto=tcp,nfsvers=3,nolock ip=192.168.31.195:192.168.31.196::255.255.255.0 console=ttySAC0,115200

然后保存參數(shù)

saveenv

然后輸入nboot

nboot kernel

那么這個nboot命令是什么?

nboot是uboot指令--將nand flash中的內(nèi)容加載到sdram中,比如'nboot 0x30000000 0 0x60000\;bootm

0x30000000是拷到的sdram的地址,0是nand flash設(shè)備號,0x60000是內(nèi)核在nand flash的地址。再通過bootm從0x30000000啟動內(nèi)核。

由于uImage的前64個字節(jié)是zImage的描述信息,所以do_nandboot能知道需要加載的kernel的size。

輸入bootm開始啟動內(nèi)核!

打印下面的語句則成功

注意,這里的有一個地方就是文件系統(tǒng)

在fs_qtopia/etc/init.d/rcS

#!/bin/sh
ifconfig eth0 192.168.31.195

mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
if [ ! -e /etc/pointercal ]
then
/bin/ts_cal.sh
fi
/bin/qpe.sh &

這里的ifconfig eth0 192.168.31.195需要改成開發(fā)板的ip地址

還需要修改一下串口

mknod -m 660 console c 5 1
mknod -m 660 null c 1 3

7.測試

剛進(jìn)來就要校驗(yàn)觸摸屏

啟動完成后,輸入

qpe.sh -&

8. 總結(jié)

這個qemu真的好用!

以后表示調(diào)試Linux都方便多了!再也不用下載程序到開發(fā)板這么麻煩了!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    91人妻人人精品人人爽| 国产成人精品一区二区三区| 激情五月天免费在线观看| 好吊色欧美一区二区三区顽频| 亚洲精品国产福利在线| 草草视频福利在线观看| 亚洲另类女同一二三区| 日韩成人动作片在线观看| 99久久精品午夜一区二区| 国产综合一区二区三区av| 久久精品中文扫妇内射| 日韩高清一区二区三区四区| 风韵人妻丰满熟妇老熟女av| 91欧美日韩中在线视频| 国产传媒精品视频一区| 黄色片一区二区在线观看| 91人妻久久精品一区二区三区| 欧美人妻一区二区三区| 好吊日在线观看免费视频| 欧美特色特黄一级大黄片| 国内胖女人做爰视频有没有| 欧美精品中文字幕亚洲| 日本午夜乱色视频在线观看| 国产美女精品午夜福利视频 | 两性色午夜天堂免费视频| 欧美一级特黄特色大色大片| 国产精品欧美在线观看| 美国欧洲日本韩国二本道| 欧美中文字幕日韩精品| 国产亚洲精品一二三区| 日本丁香婷婷欧美激情| 色婷婷久久五月中文字幕| 欧美乱视频一区二区三区| 国产一区二区三区丝袜不卡| 久久精品国产熟女精品| 九九热国产这里只有精品| 熟妇久久人妻中文字幕| 欧美小黄片在线一级观看| 国产黑人一区二区三区| 国产av熟女一区二区三区四区| 麻豆印象传媒在线观看|