原创 ZTE ME3630 4G模塊在Hi3559AV100平臺上撥號指令流程

ZTE ME3630 4G模塊在Hi3559AV100平臺上撥號指令流程 驅動配置 內核版本linux-4.9.37     CONFIG_USB_SERIAL=y     CONFIG_USB_SERIAL_OPTION=y     C

原创 華爲ME909S-821在Hi3559AV100平臺上NDIS撥號指令流程

華爲ME909S-821 4G全網通無線通信模塊,4G無線數據卡。 模塊圖片 Hi3559AV100驅動網絡驅動配置     CONFIG_USB_SERIAL=y     CONFIG_USB_SERIAL_OPTION=y     

原创 看書《程序員的自我修養--鏈接、轉載於庫》記錄

看書位置 頁數:425;章節:12.3.1 看書記錄 1、用戶程序可通過運行庫系統調用,也可直接系統調用,如fopen和open;但是glibc提供的fopen具有緩衝和按行讀取文本文件的機制,open讀取的是原始數據文件,但性能會高點。

原创 Linux photorec恢復文件

下載testdisk開源代碼編譯出的photorec,可以進行數據會恢復,下面進行正常固態硬盤視頻文件刪除後進行恢復。 準備 一張32GB的固態硬盤,文件系統格式是btrfs,查上電腦虛擬機,繼續掛載第二分區: [yubo.wang@l

原创 Linux物理內存較少導致OOM問題分析

背景 開發項目過程中,發現盒子啓動後物理內存持續的減少,CMA內存過了一段時間後也出現明顯減少情況,到最後會低概率性的出現OOM殺掉進程的情況;通過ps命令監控所有進程在開機後的虛擬內存VSZ沒有明顯的增加,說明不是用戶進程申請的內存出現

原创 Linux驅動使用request_firmware固件子系統

背景 在使用外圍模塊器件時,經常有時候會進行固件的啓動加載和升級,比如LCD,TP;之前的方式是把固件轉換爲十六進制放在代碼的數組中,在需要加載固件時傳入數組名即可;但是這種數組方式不夠靈活,不方便後面的固件升級,也會導致內核鏡像文件變大

原创 Linux腳本檢測MP4文件完整性

mp4文件錄製完成後會在文件尾部寫一些數據信息,所以檢測MP4文件完整性只需要檢測尾部特定的信息; 完整文件 不完整文件  檢測依據:文件最後10字節數據是否是H264/90000; 檢測腳本 #!/bin/sh MD5_KEY=

原创 5G模塊M.2座子管腳和封裝分析

通過對M.2封裝座瞭解,然後分析了《PCIe-M.2-接口規範-V1.0-接口》定義,來分析一下M.2座子在網絡通信模塊中的應用。下面主要分析WWAN模塊,其他模塊類型需要自己文檔。 M.2連接器KEY類型大全 WWAN模塊的M.2使用

原创 i.MX 8M Mini rpmsg_lite_str_echo_rtos

A53與M4核通過共享內存方式通信,使用rpmsg機制傳遞數據,做到系統間的通信; 驅動 drivers/rpmsg/imx_rpmsg_tty.c static struct rpmsg_device_id rpmsg_driver

原创 Linux GPIO複用問題導致電平拉高拉低異常

在調試過程中,發現使用export出GPIO口拉高拉低電平沒有效果,分析原因如下: 測試 GPIO1_IO15,使用export出GPIO口拉高拉低: echo 15 > /sys/class/gpio/export;cd /sys/cl

原创 Linux驅動PCIE轉USB 3.0調試經驗

PCIE轉USB 3.0芯片 μPD720202K8-701-BAA-A芯片,一個PCIE口轉2個USB 3.0,主要用於USB口的擴展; 硬件電路 電路圖 電路設計注意事項 RXD需要改爲0歐電阻,不要ESD器件,OCI1B需要拉高

原创 Linux新版OpenWrt自動編譯加載ko

舊版的OpenWrt系統下,編譯出的ko模塊,需要自己手寫啓動腳本加載ko,這種方法比較繁瑣,好在新版的OpenWrt能實現自動加載ko操作。 需求 把PCIE的驅動編譯成ko自動加載 配置 package/kernel/linux/mo

原创 vSE1901A安全芯片調試

vSE1901A安全芯片調試,使用通用的spi協議接口。 電路圖 DTS配置 &iomuxc { pinctrl-names = "default"; imx8mm-evk { pinctrl_ec

原创 i.MX 8M Mini Cortex-M4 WDOG

手冊 《IMX8MMRM.pdf》 - 6.6 Watchdog Timer (WDOG) 代碼 SDK_2.5.0_EVK-MIMX8MM/boards/evkmimx8mm/driver_examples/wdog/wdog.c SD

原创 Linux使用Libubox中的ustream方向進行通信

Libubox中的ustream封裝了socket的一些函數功能,使用更加方便和快捷;一般在OpenWrt環境中使用 原理 git://nbd.name/luci2/libubox.git 流程 連接成功後註冊讀寫和狀態回調函數 代碼