硬體







LCD 4Bit
LCD Timing(VBPD、VFBD、VSPW、HBPD、HFPD、HSPW)
USB
  ∗ HID EndPoint
  ∗ Keyboard scancode
  ∗ USB轉UART(8隻腳位的PL2303)




(FPGA) LCMXO2-400HC







腳位
安裝Diamond(Windows)
VHDL
  ∗ LED
  ∗ Clock
  ∗ Button
  ∗ Parallel




(FPGA) 10M02SCM







腳位
安裝Quartus
解決USB-Blaster無法偵測到的問題(Linux)
解決USB-Blaster無法安裝驅動程式的問題(Windows x64)
VHDL
  ∗ LED
  ∗ Clock
  ∗ Button
  ∗ Parallel
型態轉換
Delta cycle




(FPGA) EG4S20







腳位
Patch Anlogic TD License
安裝Anlogic TD(Tang Dynasty)
編譯燒錄Hummingbird E203(蜂鳥E203)
解決"libusb couldn't open USB device ... Permission denied"問題
Verilog
  ∗ LED
  ∗ Clock
  ∗ Button
  ∗ Parallel




(MCU M68HC08) MC68HC908JK3







腳位
開發板




(MCU 8051) STC15W104







腳位
規格表
暫存器
指令集
開發板
Opcode
中斷向量
Timer表
EEPROM表
STC-ISP燒錄封包(Bus Hund)
逆向STC-ISP V6.85I(IDA Pro)
如何使用Windows STC-ISP燒録程式
I/O種類
  ∗ Input-only
  ∗ Push-pull Output
  ∗ Open-drain Output
  ∗ Quasi-bidirectional I/O
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ INT1
  ∗ Clock
  ∗ Button
  ∗ EEPROM
  ∗ Timer2
  ∗ Watchdog
  ∗ Software Reset
  ∗ Power-Down、Idle
  ∗ UART TX(57600bps)
  ∗ UART RX(57600bps)
  ∗ Timer0(Timer、Mode0)
  ∗ Timer0(Timer、Mode1)
  ∗ Timer0(Timer、Mode2)
  ∗ Timer0(Timer、Mode3)
  ⊕ W25Q64
    ∗ Read JEDEC ID
    ∗ Erase、Write、Read




(MCU 8051) STC15W204S







腳位
規格表
開發板
build stcgal
使用Windows STC-ISP燒録程式
逆向STC-ISP V6.85I(Bus Hound)
Assembly
  ∗ 開發環境
  ∗ Show PNG
  ∗ 0.96" OLED 128x64 SSD1306




(MCU 8051) STC15W4K56S4







C/C++
  ∗ 1.30" TFT 240x240 ST7789V
  ∗ 1.45" TFT 240x240 ST7789V
  ∗ 1.54" IPS 240x240 ST7789V
  ∗ 2.00" IPS 320x240 JBT6K71-AS
  ∗ 2.80" IPS 320x240 S6D04M0X21
  ∗ 3.50" IPS 320x480 ILI9488
  ∗ 0.91" OLED 128x32 SSD1306
  ∗ 0.96" OLED 128x64 SSD1306
  ∗ 1.50" OLED 128x128 SSD1351
  ∗ 1.54" ePaper 152x152 Black-Yellow
  ∗ 1.54" ePaper 200x200 Black-Red




(MCU 8051) CC2540







腳位
中斷表
開發板
build cc-tool
解決"configure: error: invalid value: boost_major_version="問題
解決"Error occured: libusb_control_transfer (out) failed, Pipe error"問題
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ Button



(MCU 8051) CY7C68013







開發板
抹除eeprom
燒錄hex(ram)
燒錄hex(eeprom)
build fxload
build cycfx2prog
解決"sdcc xdata syntax error"問題
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ Button



(MCU PIC) PIC10F200







規格表
指令集
記憶體
開發板
如何修改TRIS暫存器
如何修改OPTION暫存器
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ Button
  ∗ Watchdog
  ∗ 3根GPIO驅動6顆LED
  ∗ UART TX(9600bps)
  ∗ Wake-up on Pin Change




(MCU PIC) PIC12F1822







腳位
規格表
記憶體
開發板
指令集
PICKit3腳位
build sdcc 3.9.0
build gputils 1.5.0
解決"sdcc cannot generate code for target pic14"問題
解決"Warning[202] Argument out of range. Least significant bits used"問題
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ Button
  ∗ EEPROM
  ∗ Watchdog
  ∗ Oscillator
  ∗ Flash Memory
  ∗ Interrupt On Change(IOC)
  ∗ 0.91" OLED 128x32 SSD1306
  ∗ 0.91" OLED 128x32 SSD1306(顯示字串)




(MCU AVR) ATtiny13







腳位
中斷表
開發板
如何透過avrdude更新fuse
如何透過avrdude更新eeprom
解決"avrdude: error: program enable: target doesn't answer"問題
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ Sleep
  ∗ Timer
  ∗ Button
  ∗ EEPROM
  ∗ Watchdog
  ∗ UART TX(9600bps)
  ∗ Compare Match Output
  ∗ Pin Change Interrupt
  ∗ Self-Programming Flash




(MCU AVR) ATtiny85







開發板
ATtiny85電路圖
C/C++
  ∗ 開發環境
  ∗ LED
  ∗ Button




(MCU AVR) ATmega32U4







腳位
電路圖




(MCU AVR) ATmega328







腳位
電路圖




(MCU AVR) ATmega328P







Arduino IDE添加Attiny85
Arduino IDE添加Atmega88
更新Arduino Micro Bootloader
更新KTduino Nano(CH340G) Bootloader
修復USB ISP(zhifengsoft)無法使用avrdude的問題




(MCU STM8) STM8S001







腳位
中斷表
指令集
暫存器
記憶體
開發板
解決"stm8flash ... Tries exceeded"問題
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ Button




(MCU STM8) STM8S103







腳位
開發板
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ UART
  ∗ Flash
  ∗ Button
  ∗ Timer1
  ∗ Timer2
  ∗ Timer4
  ∗ EEPROM
  ∗ Auto-wakeup(AWU)
  ∗ Window watchdog(WWDG)
  ∗ Independent watchdog(IWDG)
C/C++
  ∗ stm8.h




(MCU Tensilica) L106







Flash Image




(MCU Tensilica) Xtensa LX6







Flash Image




(MCU BC417) BC417143







腳位



ARM







Carry Flag
ldmia sp!, {pc}^
Conditional Execution
解決沒有"/dev/input/eventX"的問題
解決"crt1.o: No such file or directory"問題
解決"./autogen.sh: 4: autoreconf: not found"問題



(ARM 7) LPC2103







腳位
開發板
記憶體
中斷表
如何進入ISP模式
build lpc21isp
return address
enable interrupt
如何使用lpc21isp燒錄
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ UART
  ∗ Button
  ∗ Timer0
  ∗ Timer1
  ∗ Timer2
  ∗ Timer3
  ∗ EINT1(FIQ)
  ∗ EINT1(IRQ)
  ∗ EINT1(Vector IRQ)
  ∗ EINT1(Non-vectored IRQ)
  ∗ Power-down
  ∗ WatchDog Timer(WDT)
  ∗ Phase Locked Loop(PLL)




(ARM 7) AT91SAM7S64







腳位
開發板
規格表
記憶體
如何使用SAM-BA燒錄
為何VDDOUT沒有輸出1.8V
Peripheral Identifiers
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ Phase Locked Loop(PLL)




(ARM 9) NUC977







規格表
架構圖
中斷表
記憶體
開發板
排針腳位
開機選擇
flash spi
flash nand
build uboot
build kernel
build nuwriter
boot from sdcard
解決"aclocal-1.15 is missing on your system"問題
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ UART0
  ∗ Timer0
  ∗ Timer1
  ∗ Timer2
  ∗ Timer3
  ∗ Timer4
  ∗ Button
  ∗ GPIO(FIQ)
  ∗ GPIO(IRQ)
  ∗ Watchdog Timer(WDT)
  ∗ Phase Locked Loop(PLL)
  ∗ Windowed Watchdog Timer(WWDT)
  ∗ Enhance Timer0 Controller(ETMR0)
  ∗ Enhance Timer1 Controller(ETMR1)
  ∗ Enhance Timer2 Controller(ETMR2)
  ∗ Enhance Timer3 Controller(ETMR3)




(ARM 9) NUC972







規格表
架構圖
中斷表
記憶體
開發板
排針腳位
開機選擇
framebuffer console
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ Timer0
  ∗ Timer1
  ∗ Timer2
  ∗ Timer3
  ∗ Timer4
  ∗ Button
  ∗ GPIO(FIQ)
  ∗ GPIO(IRQ)
  ∗ Watchdog Timer(WDT)
  ∗ Phase Locked Loop(PLL)
  ∗ Windowed Watchdog Timer(WWDT)
  ∗ Enhance Timer0 Controller(ETMR0)
  ∗ Enhance Timer1 Controller(ETMR1)
  ∗ Enhance Timer2 Controller(ETMR2)
  ∗ Enhance Timer3 Controller(ETMR3)




(ARM 9) F1C100S







開發板
記憶體
內部架構圖
mksunxi.c
System Bus
build uboot
BROM ffff0000.s
BROM ffff4000.s
build sunxi-tools
flash image(sdcard)
build kernel 4.14.0
如何將UBoot的輸出訊息轉到UART1
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ CCU
  ∗ UART
  ∗ KEYADC
  ∗ TWI(I2C)
  ∗ Watchdog
  ∗ SPI(NOR Flash)
  ∗ Timer0(Polling)
  ∗ Timer0(Interrupt)




(ARM 9) F1C200S







電路圖
排針腳位




(ARM 9) BK3231







腳位



(ARM 11) BCM2835







排針腳位




(ARM Cortex-M0+) SAMD21G18







腳位
JTAG、SWD腳位




(ARM Cortex-M0+) LPC810







開發板
記憶體
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ Button




(ARM Cortex-M0+) LPC812







build lpc21isp
如何使用lpc21isp燒錄
Assembly
  ∗ LED
  ∗ Button




(ARM Cortex-M3) STM32F103







腳位
開發板
Overclock 128MHz
Pull-up/Pull-Down
Debug STM32 on Debian x64
如何透過UART燒錄程式(Flash Loader)
如何透過ST-LINK V2燒錄程式(OpenOCD)
如何在Keil ARM修改UART Baudrate(外部震盪器)
如何使用N900透過ST-LINK V2燒錄程式(OpenOCD)
如何使用N900透過ST-LINK V2除錯程式(OpenOCD + GDB)
解決"section .plt LMA overlaps section .dynamic LMA"問題
解決"Cannot insert breakpoint 1. Cannot access memory at address xxx"問題
解決"Error: jtag status contains invalid mode value - communication failure"問題
Assembly
  ∗ 開發環境
  ∗ LED
  ∗ Button




(ARM Cortex-M4) STM32F429







接腳說明
Build All




(ARM Cortex-M4) MK20DX256







電路圖
build teensy_loader_cli
如何透過teensy_loader_cli燒錄程式




(ARM Cortex-M7) RT1062







電路圖
build teensy_loader_cli
如何透過teensy_loader_cli燒錄程式




(ARM Cortex-A5) RDA8810PL







create ubi.img
flash image(nand)
build all
build buildroot
build uboot(pdl1、pdl2)
pinout(lcd)
pinout(panel)
pinout(camera)
pinout(header)
pinout(dip switch)
如何輸出詳細的Kernel訊息




(ARM Cortex-A7) V3S







SDCard分區
SPI Flash分區
Flash Image(SPI)
Flash Image(SDCard)
Build UBoot
Build sunxi-tools
Build Kernel 4.10.15
如何將UBoot的輸出訊息轉到UART1
C/C++
  ∗ LED




(ARM Cortex-A7) A33







Build All




(ARM Cortex-A7) H3







Build All
Build sunxi-tools
解決無法在x86編譯的問題



(ARM Cortex-A7) H3







Build All
Flash Image(SDCard)




(ARM Cortex-A8) OSD3358







腳位
製作開機SDCard
build buildroot
build uboot 201507
build uboot 201910
build kernel 4.14.108




(ARM Cortex-A8) AM3354







Build UBoot
Build Kernel 4.1.18
開發板
製作SDCard開機片
從SDCard燒錄到Nand(經由UBoot)
解決buildroot無法登入的問題
解決顯示在LCD上面的圖形會緩慢移動的問題
解決"Frame Synchronization Lost Enabled Interrupt"問題
解決"VFS: Cannot open root device "mmcblk0p2" or unknown-block"
C/C++
  ∗ 2.4" IPS 320x240(ST7789V)




(ARM Cortex-A8) AM3358







Pinout
PinMux表
Build All
Build GDB
Build PCSX ReARMed
Flash Image
製作出最精簡的系統
為何LCD Ping-Pongs Buffer顯示會閃爍
解決LIDD DMA在中斷後無法啟動的問題
解決"ERROR: "__clk_get_name" ... undefined!"
解決SDL_PollEvent()無法取得Keyboard Event的問題
解決"Unhandled fault: ... non-linefetch (0x1028)"
解決PCSX ReARMed(--platform=generic)無法執行遊戲的問題
解決"ERROR: "clk_register_min_divider" ... undefined!"
解決"gzgetc error: request for member 'next' ... union"
解決"error: SDL_SysWMinfo ... has no member named info"
C/C++
  ∗ LED(GPIO)
  ∗ LED(Register)
  ∗ Keyboard(Polling)
  ∗ 2.0" IPS 320x240(ILI9335)(GPIO)
  ∗ 2.0" IPS 320x240(ILI9335)(Register)
  ∗ 移植PCM5102A音效驅動程式
  ∗ 移植Framebuffer顯示驅動程式(DMA)
  ∗ 移植Framebuffer顯示驅動程式(Polling)




(ARM Cortex-A53) S5P6818







Build UBoot
Build Kernel
Flash Image(SDCard)




(ARM Cortex-A53) BCM2837







Build Kernel(N900)
Build Kernel(Debian x64)




(ARM Cortex-A53) RK3328







UART
Build All




MIPS







Register
Memory Map(kuseg、kseg0、kseg1、kseg2)
⊕ OPCode
  ∗ MIPS I
  ∗ MIPS II
  ∗ MIPS III
  ∗ MIPS IV




(MIPS II) M200







開發板
UART輸出
Flash Image
Build UBoot
Build Kernel




(MIPS 24Kc) AR9331











(MIPS 24KEc) MT7688







腳位
為何系統一直重啟
Build UBoot
Build OpenWRT
Build Kernel 3.18.44
如何產生LinkIt7688-squashfs-sysupgrade.bin
解決"mt_wifi.ko_3.18.45 No such file or directory"問題
解決"node_modules/mraa/* No such file or directory"問題
解決"squashfs: SQUASHFS error: Filesystem uses "zlib" compression"問題
C/C++
  ∗ LED
  ∗ Button
  ∗ Keyboard
  ∗ 2.0" IPS 320x240(ILI9335)(GPIO)
  ∗ 2.0" IPS 320x240(ILI9335)(Register)
  ∗ 移植SDL 1.2.15
  ∗ 移植Framebuffer




(MIPS 24KEc) MT7688







腳位
Build Kernel 5.4.83
解決"can't open /dev/null /dev/console: No such file or directory"問題




(MIPS M4K) PIC32MX795







開發板
安裝XC32
安裝MPLAB X
C/C++
  ∗ LED




RISC-V







Register




(RISC-V) GD32VF103







Pinout




(RISC-V IMAFDC) K210







Pinout
使用kflash燒錄
Build Kendryte Standalone SDK
連接OpenOCD(SiPEED USB-JTAG/TTL)
連接OpenOCD + GDB(SiPEED USB-JTAG/TTL)
C/C++
  ∗ Hello, world!
  ∗ LED
  ∗ Button




Intel







80386
  ∗ 指令集
  ∗ jxx (flags)




(Intel Quark) D2000







連接OpenOCD
連接OpenOCD + GDB
Build Intel Quark Bootloader
Build Intel Quark Microcontroller Software Interface(QMSI)
C/C++
  ∗ Hello, world!