原创 在 spl 和 u-boot中 使用保留內存

平臺:TI am5728 u-boot:201801 項目需要在spl中顯示logo,其中就需要分配framebuffer,如果framebuffer較小,一般可以直接用芯片的OCMC_RAM做framebuffer,我的芯片上的OCMC

原创 dts中memreserve和reserved-memory的區別

Devicetree 提供了兩種方式預留內存: reserved-memory和memreserve memreserve示例 /memreserve/ 0x40000000 0x01000000 reserved-memory示例  

原创 systemd關機流程 以及 自定義systemd關機腳本和服務

systemd關機流程 在使用systemd的linux系統中,reboot,shutdown,halt等命令是指向systemctl的軟鏈接,執行reboot相當於執行 systemctl reboot,systemctl reboot

原创 pcie總線帶寬

總線帶寬簡介 在計算機系統中,總線的作用就好比是人體中的神經系統,它承擔的是所有數據傳輸的職責,而各個子系統間都必須藉由總線才能通訊,例如,CPU和北橋間有前端總線、北橋與顯卡間爲AGP總線、芯片組間有南北橋總線,各類擴展設備通過PCI、

原创 OMAP335X-內核BSP之hwmod

MPU平臺:OAMP3352 內核版本:3.2.0      聲明:我講解的範疇是從內核解壓以後經過彙編代碼執行最後跳到第一個C代碼這個點開始講解,一直講到文件系統被正確的掛載起來,用戶可以正常登入!至於之前的解壓縮內核、彙編啓動代碼我會

原创 linux 內核版本號 的生成和修改

linux下可以通過 cat /proc/version 命令查看內核版本信息。 root@am57xx-evm:~# cat /proc/version Linux version 4.14.79-gbde58ab01e (allen

原创 __weak 關鍵字的作用

在閱讀linux uboot源碼時,可以看到一些函數定義帶有__weak關鍵字,比如: 這是個宏定義 #define __weak __attribute__((weak)) 在函數名稱前面加上__weak 關鍵字,我們一般稱這個函

原创 嵌入式linux input

輸入 如果沒有窗口系統,則可以通過evdev直接或使用諸如libinput、tslib庫 的幫助來讀取鼠標,鍵盤,觸摸輸入。注意,這要求/dev/input/event*用戶可以讀取設備節點。eglfs和linuxfb已編譯包含所有輸入處

原创 linux 時區時間相關庫函數

時鐘計數 clockclock_t clock(void) ; 返回處理器調用某個進程或函數所花費的時間。函數返回從“開啓這個程序進程”到“程序中調用clock()函數”時之間的CPU時鐘計時單元(clock tick)數,其中clock

原创 ubuntu 下配置靜態ip 或dhcp

Ubuntu下常用網絡配置 服務程序: /etc/init.d/networking 配置文件:/etc/network/interfaces (CentOS的服務和配置文件好像是 /etc/rc.d/init.d/network,/et

原创 把RGB數據寫入BMP文件

bool Write555BitImg2BmpFile(u8 *pImg, int width, int height, const char * filename) { typedef unsigned long       DWOR

原创 Linux內存管理 —— DMA和一致性緩存

1. 出現內存不一致的原因 CPU寫內存的時候有兩種方式: 1. write through: CPU直接寫內存,不經過cache。 2. write back: CPU只寫到cache中。cache的硬件使用LRU算法將cache裏面的

原创 MicroSD/SD卡筆記

https://www.myoschain.com/blog/132624786906939392 https://www.sdcard.org/chs/developers/overview/index.html https://www

原创 uboot中 使用i2c

uboot中i2c讀寫有2種方式,一種使用uboot驅動模型,通過宏 CONFIG_DM_I2C定義,另一種是傳統方式,通過宏CONFIG_SYS_I2C定義。 傳統方式——SYS_I2C 1.設置總線號 int i2c_set_bus_

原创 NDEBUG 、DEBUG宏 和assert() 的用法

一、NDEBUG 和 DEBUG宏的用法       1、NDEBUG宏是Standard C中定義的宏,專門用來控制assert()的行爲。如果定義了這個宏,則assert不會起作用。 #ifdef NDEBUG #define ass