embedded2015 開發記錄#7
 

作業要求(A)

  • 安裝和設定 QEMU
  • 依據指示,將 00-Semihosting, 00-HelloWorld, …, 07-Threads 均實際測試並研讀程式碼
  • 在 github 上 fork mini-arm-os,並修改 07-Threads (不要增加新的目錄!),提供基本的 shell,然後能夠用新建立的 thread 計算 fibonacci 數列
  • shell 程式碼可參照 rtenv+ 的 main.c,裡頭提供 shell 實做
 

STM32 on QEMU環境建立與測試

在執行
./configure --disable-werror --enable-debug \
    --target-list="arm-softmmu" \
    --extra-cflags=-DSTM32_UART_NO_BAUD_DELAY \
    --extra-cflags=-DSTM32_UART_ENABLE_OVERRUN \
    --disable-gtk
發生錯誤?!!
    Disabling libtool due to broken toolchain
    ERROR: pkg-config binary 'pkg-config' not found
安裝之後又跑出另一個錯誤
    Disabling libtool due to broken toolchain
    glib-2.12 gthread-2.0 is required to compile qemu
找了這篇,結果又有其他的問題。後來找到之前的課程,把前面沒安裝的套件補齊。
sudo apt-get install zlib1g-dev libsdl1.2-dev automake* autoconf* libtool libpixman-1-dev 
  • 如果是64-bit版本的,要額外安裝
sudo apt-get install lib32gcc1 lib32ncurses5 
sudo tar jxvf /tmp/toolchain-2014_05.tar.bz2 
  • 設定toolchain執行檔路徑
export PATH=/usr/local/csl/arm-2014.05/bin:$PATH 
 
完成之後再執行一次,還是有Disabling libtool due to broken toolchain的訊息。
不過執行make之後,好像沒有錯誤訊息。就暫且先這樣。
 
STM32 on QEMU環境建立與測試STM-P103
  • 硬體資訊:
  • ARM 32-bit Cortex-M3 CPU
  • CUP clock up to 72MHz
  • FLASH 128KB
  • RAM 20KB
  • DMA ( Direct Memory Access) 直接記憶體存取 * 7 channels
  • SPI * 2
  • I2C * 2
  • USART * 3