p103 這個模擬器有支援 stm32 p103 uart, 所以選用了這個模擬器, 主要目的是為了測試 c++ 和 uart, 為什麼不在真正的版子上測試呢? 我想把寫入 flash 的次數減少一點, 等到開發到一定程度才搬到 stm32f4 - discovery 上測試, 所以重溫一下模擬器的懷抱。
參考成大 wiki:
http://wiki.csie.ncku.edu.tw/embedded/Lab1
git clone git://github.com/beckus/stm32_p103_demos.git
git clone git://github.com/beckus/qemu_stm32.git
cd qemu_stm32 # p103 模擬器
./configure --disable-werror --enable-debug \
--target-list="arm-softmmu" \
--extra-cflags=-DDEBUG_CLKTREE \
--extra-cflags=-DDEBUG_STM32_RCC \
--extra-cflags=-DDEBUG_STM32_UART \
--extra-cflags=-DSTM32_UART_NO_BAUD_DELAY \
--extra-cflags=-DSTM32_UART_ENABLE_OVERRUN
make
cd ../stm32_p103_demos # p103 範例程式
export PATH=/usr/local/csl/arm-2012.03/bin:$PATH
make all
make blink_flash_QEMURUN
make button_QEMURUN
make uart_echo_QEMURUN
我修改了 stm32_p103_demos/demos/uart_echo 的程式, 有了單獨的 makefile 和 mymain.cpp 程式, 還有一個 q.sh 用來執行 qemu。
c++ compiler 編譯出來的版本讓我疑惑, 我以為應該要和 c compiler 的版本一樣, 這個 c++ 的版本和 c 版本一模一樣, 但 elf 大小就是不一樣, 大了一點點, 我是不是被書上寫的「你沒用到的東西不應該為此付出代價」給騙了。
還發了篇文章詢問: 《
c++ 編譯出來的程式檔案比較大》, 不過沒有得到什麼答案。
最後的成果就是: 《
作業系統之前的 scheme》
source code:
git@github.com:descent/stm32_p103_demos.git
stm32_p103_demos/demos/uart_echo
git commit: 85e31e52bec1effd359401b83ef69c1768d13197
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。