p103 這個模擬器有支援 stm32 p103 uart, 所以選用了這個模擬器, 主要目的是為了測試 c++ 和 uart, 為什麼不在真正的版子上測試呢? 我想把寫入 flash 的次數減少一點, 等到開發到一定程度才搬到 stm32f4 - discovery 上測試, 所以重溫一下模擬器的懷抱。
參考成大 wiki: http://wiki.csie.ncku.edu.tw/embedded/Lab1
我修改了 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
參考成大 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