FreeRTOS仿真環(huán)境搭建

下載FreeRTOS源碼

git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules

Win32仿真

打開FreeRTOS\FreeRTOS\Demo\WIN32-MSVC\WIN32.sln只壳,根據電腦上實際安裝的VS版本侠仇,轉換為對應版本。直接編譯運行即可果复。


image.png

Linux仿真

進入目錄FreeRTOS/FreeRTOS/Demo/Posix_GCC
編譯:make
運行:./build/posix_demo


image.png

Linux + QEMU仿真(Cortex-M3)

官方給了一個運行在ARM Cortex-M3上的仿真Demo缭裆。

下載arm-gnu-toolchain

下載地址:https://developer.arm.com/downloads/-/gnu-rm
下載版本:7-2018-q2-update
不要下載最新版本键闺,實測不可用。

編譯Demo

使用vscode打開FreeRTOS/FreeRTOS/Demo/CORTEX_MPS2_QEMU_IAR_GCC目錄澈驼。
修改build/gcc/Makefile辛燥,把arm-none-eabi-gcc所在路徑添加到PATH中。例如:
export PATH := /opt/arm-none-eabi-gnu/bin:$(PATH)
在vscode中執(zhí)行tasks.json中的"Build QEMU":

image.png

QEMU中直接執(zhí)行

刪除tasks.json中Run QEMU任務command字符串中的"-s -s"缝其,執(zhí)行"Run QEMU"挎塌。


image.png

image.png

Vscode + QEMU調試執(zhí)行

保留tasks.json中Run QEMU任務command字符串中的"-s -s"。
修改launch.json中的miDebuggerPath為實際路徑:
"miDebuggerPath": "/opt/arm-none-eabi-gnu/bin/arm-none-eabi-gdb-py",
打開“運行和調試”界面内边,運行"Launch QEMU RTOSDemo"榴都。彈出如下窗口,忽略即可漠其。

image.png

image.png

Linux + QEMU仿真(RISCV32)

Ubuntu18使用apt安裝的qemu版本為2.11嘴高,不包括riscv功能,需要從源碼編譯辉懒、安裝qemu-system-riscv32阳惹。

編譯qemu-system-riscv32

git clone https://github.com/qemu/qemu.git
cd qemu
git checkout stable-6.0

mkdir build
cd build
../configure --target-list=riscv32-softmmu,riscv32-linux-user
make
sudo make install

可能需要安裝的軟件:ninjia-build、pkg-config眶俩、libglib2.0-dev莹汤、libpixman-1-dev

編譯riscv-gnu-toolchain

git clone https://github.com/riscv/riscv-gnu-toolchain
sudo apt-get install autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev

cd riscv-gnu-toolchain
mkdir build
cd build

export PATH=$PATH:/opt/riscv/bin
../configure --prefix=/opt/riscv --enable-multilib
sudo make

riscv-gnu-toolchain的編譯結果會直接輸出到/opt/riscv目錄中。


image.png

注:如果加--enable-linux選項颠印,那么編譯出來的就是riscv64-unknown-linux-gnu-xxx纲岭。

編譯Demo

使用vscode打開FreeRTOS/FreeRTOS/Demo/RISC-V_RV32_QEMU_VIRT_GCC。
修改build/gcc/Makefile线罕,把riscv64-unknown-elf-gcc所在路徑添加到PATH中止潮。例如:

export PATH:=$(PATH):/opt/riscv64-unknown-elf/bin/

進入build/gcc目錄,執(zhí)行make命令即可钞楼。

QEMU中直接執(zhí)行

運行以下命令:

qemu-system-riscv32 -nographic -machine virt -net none -chardev stdio,id=con,mux=on -serial chardev:con -mon chardev=con,mode=readline -bios none -smp 4 -kernel ./build/gcc/output/RTOSDemo.elf
image.png

Vscode + QEMU調試執(zhí)行

在前面的qemu-system-riscv32命令最后添加-s -S選項喇闸,啟動qemu。
打開運行與調試界面,新建launch.json文件燃乍,內容如下:

"configurations": [
        {
            "name": "(gdb) 啟動",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/gcc/output/RTOSDemo.elf",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "miDebuggerPath": "/opt/riscv64-unknown-elf/bin/riscv64-unknown-elf-gdb",
            "miDebuggerServerAddress": "localhost:1234",
        }
    ]
image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末唆樊,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子刻蟹,更是在濱河造成了極大的恐慌逗旁,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舆瘪,死亡現場離奇詭異片效,居然都是意外死亡,警方通過查閱死者的電腦和手機英古,發(fā)現死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門淀衣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哺呜,你說我怎么就攤上這事舌缤。” “怎么了某残?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵国撵,是天一觀的道長。 經常有香客問我玻墅,道長介牙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任澳厢,我火速辦了婚禮环础,結果婚禮上,老公的妹妹穿的比我還像新娘剩拢。我一直安慰自己线得,他們只是感情好,可當我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布徐伐。 她就那樣靜靜地躺著贯钩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪办素。 梳的紋絲不亂的頭發(fā)上角雷,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天,我揣著相機與錄音性穿,去河邊找鬼勺三。 笑死,一個胖子當著我的面吹牛需曾,可吹牛的內容都是我干的吗坚。 我是一名探鬼主播祈远,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼商源!你這毒婦竟也來了绊含?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤炊汹,失蹤者是張志新(化名)和其女友劉穎幔亥,沒想到半個月后怀酷,有當地人在樹林里發(fā)現了一具尸體蚌成,經...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡魁淳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年钦讳,在試婚紗的時候發(fā)現自己被綠了囱桨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膛檀。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡芒粹,死狀恐怖盈蛮,靈堂內的尸體忽然破棺而出废菱,到底是詐尸還是另有隱情,我是刑警寧澤抖誉,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布殊轴,位于F島的核電站,受9級特大地震影響袒炉,放射性物質發(fā)生泄漏旁理。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一我磁、第九天 我趴在偏房一處隱蔽的房頂上張望孽文。 院中可真熱鬧,春花似錦夺艰、人聲如沸芋哭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽减牺。三九已至,卻和暖如春霞势,著一層夾襖步出監(jiān)牢的瞬間烹植,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工愕贡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留草雕,地道東北人。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓固以,卻偏偏與公主長得像墩虹,于是被迫代替她去往敵國和親嘱巾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內容