原创 20.Linux3.4內核啓動源碼分析(zImage內核解壓過程分析)
內核編譯過程 從頂層makefile查找以理關係如下 Created with Raphaël 2.2.0arch/arm/boot/Makefile(zImage)arch/arm/boot/compressed/Makefil
原创 23.nanopi t2 s5p4418超頻
修復nanopi t2 cpu調頻不起作用 nanopi t2 s5p4418超頻 驅動相關文件 內核版本:linux-3.4.y 相關代碼: drivers/cpufreq/nxp-cpufreq.c 驅動主邏輯 drivers
原创 15.【linux驅動】spi驅動
spi系列文章: 1.spi 硬件、協議 2.spi(GPIO模擬) 3.spi驅動 設置時鐘 spi在arm-cortex系列當中一般與ssp聯繫一起。ssp兼容spi,兩者區別也不大。在4418上面沒有用spi模式調試成功,用
原创 13.【linux驅動】spi 硬件、協議
簡介 高速、全雙工串行總線,使用四根線完成通信。數據一位一位的傳輸,高位先行。 有點:連線少 缺點:沒有應答機制 連線 一共四根線 SSEL:片選信號。低電平選中,可以用多個GPIO代替這個信號實現多從機通信。 SCLK:時鐘信號
原创 14.【linux驅動】spi(GPIO模擬)
GPIO模擬SPI 只實現一下主機發送,上升沿發送,空閒狀態爲低電平。需要注意CPU速度過快,GPIO電平設置會被合併,需要加入延時函數。 另外自己實現延時的話需要使用內存屏障關鍵字volatile 防止被優化。 #include
原创 16.【linux驅動】spi驅動TFT液晶屏
代碼 液晶屏型號:ILI9488 液晶屏操作直接由原廠代碼更改了一下得來。 #include <stdio.h> #include <linux/ioctl.h> #include <sys/ioctl.h> #include <
原创 17.【linux驅動】IIC驅動OLED屏(GPIO 模擬)
IIC系列文章 1.【linux驅動】IIC驅動-硬件、協議 2.【linux驅動】IIC驅動OLED屏(GPIO 模擬) 3.【linux驅動】IIC驅動(4418讀取EEPROM:24AA025E48T-I/OT) 4.【li
原创 19.【linux驅動】IIC驅動(OLED屏)
IIC系列文章 1.【linux驅動】IIC驅動-硬件、協議 2.【linux驅動】IIC驅動OLED屏(GPIO 模擬) 3.【linux驅動】IIC驅動(4418讀取EEPROM:24AA025E48T-I/OT) 4.【li
原创 11.構建Ubuntu系統
rootfs系列文章: 構建最小根文件系統 根文件系統構建(2) 構建Ubuntu系統 下載根文件系統 ubuntu的rootfs一般去官網下載就好:http://cdimage.ubuntu.com/ubuntu-base/
原创 【NanoPi T2】 1.裸機開發(S5P4418)
目錄1.擦除sd卡2.查看uboot可用空間3.提取MBR+啓動代碼+uboot保存成complete-boot.bin4.寫入sd卡測試啓動5.獲取鏡像包中Block 0~Block 65的內容保存成uboot-bl1.bin6
原创 18.【linux驅動】IIC驅動(4418讀取EEPROM:24AA025E48T-I/OT)
IIC系列文章 1.【linux驅動】IIC驅動-硬件、協議 2.【linux驅動】IIC驅動OLED屏(GPIO 模擬) 3.【linux驅動】IIC驅動(4418讀取EEPROM:24AA025E48T-I/OT) 4.【li
原创 12.【linux驅動】內核空間用戶空間數據傳遞
linux分爲用戶空間和內核空間,兩者的虛擬地址空間分佈不一樣。內核佔用高地址,應用程序佔有低地址空間,每個進程的內核虛擬地址都是一樣的,區別在於進程的用戶控件映射不同,所以內核也可以直接使用用戶空間的指針讀寫數據,但是用戶空間的
原创 10.【linux驅動】PWM
pwm脈寬調製:原理是週期性產生方波,通過控制方波高電平與低電平佔有的時間比率來達到功率控制的目的。例如高電平的時間在一個週期內佔10%,那麼負載功率就只有滿功率的10%。相比於使用電阻器來說,PWM控制功率理論上效率是100%,
原创 7.【linux驅動】中斷
用GPIOB_31模擬按鍵功能,設置上拉,下降沿觸發 寄存器版本 linux驅動幾乎不用管硬件中斷了,內核已經幫我們管理好了所有硬件中斷號,並且定義了相應的內核中斷號,我們只需要看一下內核中斷號。 arch/arm/mach-s5
原创 6.【linux驅動】字符設備
簡單輸出文字 需要注意的地方只有read中讀取數量和文件指針的移動問題 #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> #in