女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > > 嵌入式IoT

前言


隨著芯片技術的發(fā)展,嵌入式已經(jīng)不再是傳統(tǒng)的單片機開發(fā)模式,需要一些硬件操作的板子,現(xiàn)在qemu這種模擬硬件的手段非常好,通過直接在電腦上仿真后,然后再移植到真實的設備上,這樣大大減少了下載程序的時間,同時也方便問題的定位和分析,通過這種方式,進行業(yè)務邏輯層的開發(fā)更加的高效合理。本文主要介紹在qemu上搭建樹莓派3b的開發(fā)環(huán)境。

準備條件:

Ubuntu16.04

下面的實驗步驟在Ubuntu16.04上進行,盡量保證環(huán)境的一致性。

01

代碼編譯

對于一個環(huán)境,我們往往需要進行源代碼工程的構建,所以現(xiàn)在我們選擇的是rt-thread操作系統(tǒng)進行相關的開發(fā)工作。

1.1 工具鏈的準備

推薦采用gcc-arm-8.3-2019.03-x86_64-aarch64-elf進行源代碼的編譯,由于官方下載速度非常慢,所以我放到網(wǎng)盤上提供下載。

鏈接: https://pan.baidu.com/s/1ZAba3xbhad-BnimCo5VDGA

提取碼: a6t5

解壓到opt目錄下。

1.2 編譯rtt工程

在github上的rt-thread上進行下載

git clone git@github.com:RT-Thread/rt-thread.git

切換到rt-thread/bsp/raspberry-pi/raspi3-64目錄,輸入scons開始編譯

最后生成kernel8.img文件就是可執(zhí)行文件。

02

qemu的安裝

直接通過Ubuntu進行sudo apt-get install qemu安裝的qemu版本較低,不支持arrch64體系架構,所以我們需要去下載安裝最新版本的qemu,到官網(wǎng)上下載即可。


下載完成后解壓文件。

或者從github中clone代碼

git clone git@github.com:qemu/qemu.git

git submodule update --init --recursive


2.1 編譯qemu

由于最新版本的qemu只是源代碼,所以還需要進行qemu的編譯。

查看當前所有支持命令

./configure --help|less

可以看到如下信息

其中我們可以看到aarch64-softmmu,aarch64-linux-user,aarch64_be-linux-user。對于這三個編譯選項:

aarch64-softmmu:

一般選擇,用來跑os的,已經(jīng)開了軟件mmu。

aarch64-linux-user:

用于跑app

aarch64_be-linux-user :

與上面不同的是,用來跑big-endian的app程序。

編譯

./configure --target-list=arm-softmmu,aarch64-softmmu --enable-debug --enable-sdl

make

make install

03

運行raspi鏡像

正常情況下,當安裝完成后,在控制臺輸入qemu-system-aarch64 -M raspi3 -kernel kernel8.img -serial null -serial stdio就可以看到程序正常的運行起來了。

3.1 啟動調試

如果要啟動調試,可以輸入以下的命令

qemu-system-aarch64 -M raspi3 -kernel rtthread.elf -serial null -serial stdio -s -S

-S 表示guest虛擬機一啟動就會暫停

-s 表示監(jiān)聽tcp:1234端口等待GDB的連接

第一步:

開一個窗口,輸入aarch64-elf-gdb.

第二步:

等待連接操作,然后輸入target remote localhost:1234連接

第三步:

打開需要調試的文件,輸入路徑file /home/bigmagic/work/raspberry-pi/src/rt-thread/bsp/raspi3-64/rtthread.elf這個路徑是需要調試的文件。


到這里就配置完成了。

3.2 調試技巧

首先可以輸入layout src打開源代碼顯示窗口。

斷點

輸入斷點可以是函數(shù)名稱,可以是行號,可以是某個文件的具體函數(shù)。

break main //也可以寫 b main

或者文件的第20行。

break 20

演示效果如下:

其中c是continue的簡寫。會向下執(zhí)行,執(zhí)行到斷點處。

如果我們想刪除某個斷點,有兩種方法:

1 delete 命令 簡寫d

delete break 刪除所有的斷點

delete break n 刪除某個斷點 n為斷點號

2 clear 命令

clear 行號 刪除設在某一行的斷點

查看斷點信息:info b 查看所有斷點信息。

單步調試

進入函數(shù)內部單步調試step,簡寫s。

安裝函數(shù)一行一行執(zhí)行next,簡寫n。

04

總結

嵌入式開發(fā)過程中,往往避免不了與硬件打交道,但是通過qemu這種模擬硬件的方式,往往能夠很好的加快調試的手段,在出現(xiàn)問題的時候,可以借助gdb等調試工具進行分析,也加快了開發(fā)的速度,是一種比較好的手段。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
關閉