---
# System prepended metadata

title: 4/21 課堂分享

---

# 4/21 課堂分享
> 筆記：[Running Linux 7.0 on stm32h750](https://hackmd.io/@rota1001/stm32h750-linux)
> 筆記：[Optimize Linux Kernel Size for STM32F429](https://hackmd.io/@rota1001/linux-stm32f429)

要幹麻呢？運行 Linux 核心
## STM32H750
- 僅有 1MB RAM
- 沒有 MMU，所以沒有虛擬記憶體

做了什麼？
- QEMU 軟體模擬
- 寫 bootloader
- XIP，讓程式不需要載入 RAM
- 調整 kernel config，去掉用不到的 driver
- 寫 device tree
- 做 kernel patch 把資料結構變小、去除用不到的東西
- 整理工具鏈，進行使用 uClibc-ng 的使用者程式驗證
- 運行動態連結的 busybox

### 6.18.7
![image](https://hackmd.io/_uploads/H1iGAoVTZg.png)
### 6.19
![image](https://hackmd.io/_uploads/rkZSAiVa-x.png)
### 7.0
![image](https://hackmd.io/_uploads/ByEICiNTWl.png)
![image](https://hackmd.io/_uploads/B14vAs4aWl.png)

## STM32F429-Discovery
- 有 8MB SDRAM
- 同樣沒有 MMU

到了 RAM 比較大的地方，開始驗證更多軟體堆疊
- 前面的所有東西再做一次
- MMC 子系統，用 SD 卡當硬碟
- SPI 螢幕
    - fbdev
    ![0z8ccm2u](https://hackmd.io/_uploads/BJDtzgA3Zx.jpg =25%x)
    - fbcon
    ![QnwD47iE](https://hackmd.io/_uploads/ByoYfl02-e.jpg =25%x)
- hwrng
- GNU LTO
- FDPIC 執行檔工具鏈整理
- 動態連結庫
- 跑 DOOM
[Run DOOM on Linux 7.0 on STM32 ](https://youtu.be/d48P93aViJQ)
- 同樣更新到 Linux 7.0
