原创 S5P4418裸機開發(十五):SDIO

參考 SD4.0協議標準完整版[1-6章中文翻譯] Linux SD/MMC/SDIO驅動分析 sd 協議解析 S5P4418,3個SD/MMC控制接口。SDIO協議3.0。 寄存器 寄存器名 功能 留坑···

原创 VSCode調試,簡單配置

launch.json { "version": "0.2.0", "configurations": [ { "name": "C++ Launch (GDB)", // 配置

原创 S5P4418裸機開發(十四):TIMER

概述 S5P4418,5個定時器 Timers 0, 1, 2, and 3有連接GPIO,可以輸出PWM 時鐘源PCLK,2nboot默認配置爲200MHz Timers 0 and 1共享一個預分頻器,Timers 2, 3,

原创 S5P4418裸機開發(十三):GIC

GIC系列文章: arm GIC介紹之一 arm GIC介紹之二 GIC由Distributor和CPU interface組成; Group0,Secure accesses,FIQ驅動 Group1,Non-secure ac

原创 S5P4418裸機開發(十二):IRQ (按鍵中斷)

S5P4418 64箇中斷源,按鍵的GPIO口是GPIOB28-30,中斷號爲54; Interrupt Controller相關寄存器 寄存器 功能 VICIRQSTATUS R,相關位爲1表示該IRQ中斷髮生且未被

原创 S5P4418裸機開發(十):Undef異常處理

上一帖總結了異常中斷處理過程,當未定義指令異常發生時,PC最終會跳到0xFFFF0204,該地址上也是一條跳轉指令。爲了執行我們自定義的異常處理函數,讓這條指令跳向我們的函數即可; 接着 5_lds 寫; 在啓動文件中加入一條未定義指

原创 S5P4418裸機開發(九):異常中斷處理概述

ARM體系結構中對異常中斷的一些概述 七種異常 優先級 異常中斷類型 異常中斷模式 優先級 Rset 特權模式 1 Undef 未定義指令中止模式 6 SWI 特權模式 6 PAbort 中止模式

原创 S5P4418裸機開發(十一):FPU使能 & SWI異常

FPU使能 心血來潮想優化一下UART初始化部分,之前是固定的115200,改成根據傳入的參數值來設定波特率; // 設置UART0時鐘,一般設置爲10MHz UARTCLKENB |= (1 << 2); UARTC

原创 S5P4418裸機開發(八):lds鏈接腳本的使用

前幾個程序編譯鏈接時, 會使用ld -Ttext=0x42C00000指定.text段的起始地址; 以串口回顯的工程爲例,查看編譯後的文件大小; 再看看.elf文件的段表,arm-linux-objdump -h LMA:

原创 S5P4418裸機開發(七):SDRAM

Smart4418 板載 1GB DDR3 SDRAM; 芯片型號 K4B4G1646D-BCK0; 16bit位寬,單片容量256Mbit * 16 = 4Gbit,即 512Mbyte; 板載兩塊,U6,U7; SDRA

原创 S5P4418裸機開發(零):小問題記錄

一、裸機沒有除法和取模運算 針對ARM裸機環境,當除數是變量時,報錯: undefined reference to `__aeabi_uidivmod' undefined reference to `__aeabi_uidiv'

原创 S5P4418裸機開發(五):系統時鐘

還沒理解透,留坑

原创 S5P4418裸機開發(六):串口初試,簡單回顯(輪詢模式)

手冊上對S5P4418串口的概述 UART0 ~ 4,五個串口 可編程FIOF UART0,1,2支持DMA IrDA(紅外數據組織)SIR ENDEC … UART配置基本流程 TX引腳配置爲輸出模式,RX引腳配置爲輸入模式 配

原创 二叉樹之二叉排序樹

二叉排序樹(Binary Sort Tree),又稱二叉查找樹(Binary Search Tree),亦稱二叉搜索樹。定義二叉排序樹或者是一棵空樹,或者是具有下列性質的二叉樹:(1)若左子樹不空,則左子樹上所有結點的值均小於或等於它的根

原创 Python爬蟲模擬登錄(六):驗證碼識別一

用到第三方庫pytesseract,配合PIL使用;pip install pytesseract對簡單的無干擾的圖片識別效果還行;識別中文要裝tesseract-ocr;安裝 imgbuf = s.get(imgurl).cont