Category Archives: Embedded

Raspberry Pi Pico W + PicoOLED 2.23 + Arduino 顯示天氣預報降雨機率和空污指數

有時候人生就是不能亂買東西,一步錯步步錯,然後就弄了這個出來,當然不是圖中大螢幕的屋內屋外溫濕度狀況,而是左上角小小的溫度預測

至於怎麼來的,一切都要從邪惡的阿媽爽60元免運說起,因為60元免運,有時候就會將有些小東西放到購物車內,因為有時候即使加了稅金,從美亞(美國亞馬遜Amazon)網站買東西還比淘寶買便宜,更不要說很多東西只有美亞有,這時候小東西湊60元免運頗方便的

原來是我有二張 Arduino 的板子,本來也只是接來做溫度偵測,也沒有什麼用,想說接個小螢幕顯示一下天氣預報,但是這東西又不是很必要,就想想而已,就隨便找了一個看起來順眼的 SPI LCD 和 OLED (想說比較省電)就放到購物車了,上個月美國很多東西都特價,兩雙鞋子才 30 元美金,這塊 OLED 好像也才 15 上下,就被拿來湊運費了,沒想到我手上並沒有東西可以接

Read more »

Ampere Altra Mt. Jade OpenBMC and EDKII build guide on ARM64 platform

Ampere announce Altra CPU, it’s a 80 cores ARM64v8 CPU for cloud native workloads. Altra Max CPU is 128 cores. Follow the CPU, Ampere also has a CRB (customer reference board) named Mt. Jade, and Ampere also open source OpenBMC and EDKII source code for Mt. Jade platform.

This article is personal note, all information can be found from internet. And open source project keeps going, it might be some minor differences when you find this article.

Read more »

embedded system btrfs

這一篇是 btrfs 用在 embedded system 的開發測試上會用到的指令.
Read more »

[跟風] 程式設計師, 你調試過最難的 BUG

看到一篇文章
簡體中文翻譯: 程序员,你调试过的最难的 Bug 是?
原文: What’s the hardest bug you’ve debugged?

看原文比翻譯好一點, 從原文大概只可能猜出, 改過 timer 之後, 可能影響到 interrupt 的速度.
但是從最後的描述猜也可能是動到 clock tree 去影響 timer 進而影響到其他的行為.
有碰到這種 BUG 的第一個一定先猜 timing , 純軟體的反而不會這樣想, 所以他覺得最難的 BUG
我們看起來就還好.

這個描述讓我也想寫一下, 我碰過最難的 BUG.
Read more »

kernel rootwait option

之前都不知道 Linux kernel 有 rootwait option, 比 rootdelay=? 好用多了.

尤其是用 usb or mmc 之類的 device 當作 root, 常用於 embedded system .
(其實我也少用, 都混 IC vendor , rootwait 這種東西就交給系統廠去處理).

Example Command
[TEXT]
CONFIG_CMDLINE=”root=/dev/mmcblk0p1 rw init=/sbin/init mem=256M console=ttyS0,38400 rootwait”
[/TEXT]

STM32 的 USB DFU (Device Firmware Upgrade)

當用 STM32 (我用的是 Coretex-M 的 STM32F103ZC) 時, 如果沒有 ICE, 可以用 DFU 從 USB 切入 DFU Mode, 再用 USB 的軟體升級程式.

我不小心弄掛我系統的 DFU, 這邊稍稍講一下如何救回來
* 還是需要 ICE 的.
Read more »

Cortex-Mx STM32: Virtual COM port in Win7

如果在 Win7 下使用 Virtual Com port, 會有抓不到的狀況, 請使用這個 STM32 Virtual COM port Driver

ref.
Cortex-Mx STM32: Virtual COM port in Win7 or Vista 32-bit

[ARM][Linux] 建立 ARM 平台的 Debian System

在 Embedded system 下, 使用現有的系統驗證 SoC 功能是非常棒的.
最大的好處就是不用到處找工具編一堆有的沒有的, 時間可以花在更重要的地方

像我將 debian 裝好之後, 就可以跑 wireshark 了

本圖中, 最左邊的是 console, 中間的視窗是 EVB 上的 wireshark, 右邊的視窗是 PC 端的 wireshark
使用 wireshark *2 debug tcp stream

真是超好用的……

Read more »

ARM 的 Oprofile

最近在弄 ARM11 的 Oprofile, 結果發現執行 opcontrol 的動作之後, 沒有 log 的動作.
大致上的訊息是這樣的
[Bash]
# opcontrol –shutdown
Stopping profiling.
Killing daemon.
# Stopping profiling.
Killing daemon.
opreport image:/vmlinux -l -w -g > oprofile.txt
error: no sample files found: profile specification too strict ?
[/Bash]

這時請改用 timer interrupt

在 load oprofile modules 加上 timer=1
若是 static link 時, 就要在 boot_cmd 加上 oprofile.timer=1

似乎目前的 kernel oprofile 不支援 ARM11MPCore.

http://oprofile.sourceforge.net/doc/detailed-parameters.html#timer

[Linux][Kernel][Memory] smbd: page allocation failure. order:2, mode:0x20

如果啟動了 Jumbo Frame 加上執行 Samba , 有可能會出現類似的訊息(系統抓下來似乎有點不全)

Read more »