原创 rt-thread 自動初始化機制分析-關於編譯鏈接及段信息

本來我的工作主要集中於嵌入式Linux這一塊,關於RTOS,雖然之前也有用UcosII做過一兩個項目並量產,但並不是主要發力點,感覺相對與Linux來說,RTOS太過“easy”,能研究的東西並不多。 最新閒來看到Rtthread發展挺不

原创 嵌入式Linux架構

原创 關於GPS的1PPS時間同步功能探索與測試

最近在研究GPSD相關信息,查閱到GPSD可以與NTPD相配合實現高精度時間同步功能,因此才涉及到此主題。 目前手頭用的是Ublox F9P模塊,UART輸出NEMA數據,另外一個GPIO輸出1PPS脈衝 首先看一張時序圖: 1. NE

原创 GPSD架構介紹及交叉編譯和使用

一、功能介紹 GPSD是一系列管理GPS設備和其他用於導航與精確計時的傳感器的工具,包括航海自動識別系統(marine AIS (Automatic Identification System))的無線電廣播設備和電子羅盤。其中最主要的程

原创 移植MT76x8 私有WIFI驅動V4.1.0.0到Openwrt 18.06所遇到的坑

Openwrt系統,路由或者IOT網關方面,市面上能供個人或者小團隊甚至小企業 ,可玩性高的也就MT76xx系列路由芯片了,其中很大一部分原因主要在於MTK的WIFI驅動管控不是很嚴格,相對較容易獲取其WIFI驅動源碼。 目前市場上的MT

原创 完整適配LUCI界面的Openwrt中EC20的QMI撥號

目前4G模塊應用已經非常普及,跟之前的3G不同,3G基本使用ppp撥號,usbserial驅動,Linux內核自帶支持,此應用非常簡單。 4G模塊由於速率較高,usbserial驅動性能滿足不了,因此4G的撥號方式就發生了變化。基本方式有

原创 移植MT76x8 WiFi Driver V4.1.0.0到Openwrt 18.06所遇到的坑

Openwrt系統,路由或者IOT網關方面,市面上能供個人或者小團隊甚至小企業 ,可玩性高的也就MT76xx系列路由芯片了,其中很大一部分原因主要在於MTK的WIFI驅動管控不是很嚴格,相對較容易獲取其WIFI驅動源碼。 目前市場上的MT

原创 項目中用到的語音識別方案 硬件/軟件相關介紹

自從Amazon Alexa音箱發佈以來,各大廠家開始陸續發佈自家的音箱,完善自家的生態系統。從以前的路由器,手機到現在的音箱,一個個被認爲或曾被認爲是智能家居的入口,總會在市場上掀起一番風浪。 有幸在2018年完成了一款以語音交互爲核心

原创 Openwrt中MT7628/MT7688的全部GPIO複用配置及常用接口DTS配置總結

Openwrt的不同版本中關於MT7628,MT7688的GPIO配置,存在或多或少的一些小問題 下面將以MT7628AN爲基礎,介紹其全部的GPIO功能複用配置,以及需要注意的地方 MT76x8一個就47個可作爲GPIO引腳,如下

原创 MT7688 坑爹的 SPI Master 半雙工全雙工問題

MTK的東西便宜是真的便宜,好用也相對比較好用,但是總有那麼幾個地方,讓人用着心裏就窩火,就MT76x8來說,第一個窩火的地方就是啓動跳線選擇,非得把串口用作啓動跳線,導致調試起來非常麻煩,第二個就是本文要說的SPI問題,此問題分析和測試

原创 一種簡單快速的Openwrt內核patch製作方式

openwrt的patch機制非常不錯,應用的很廣泛,從內核到應用都有涉及,patch機制也方便了多個用戶之間的功能同步及差異控制。 在openwrt上常用的patch生成及修改方式爲QUILT工具,應用此工具可以修改現有補丁以及生成新的

原创 對於ARM的啓動,系統升級,燒寫過程和文件系統等方面的總結分析

本文所述的ARM的指的是Cortex A系列以及ARM9,ARM11,跑Linux操作系統。對於CortexM系列並不一定完全適用; 談到ARM以及啓動和燒寫等方面,首先我們要明確一下幾個關鍵詞:Uboot,Cmdline,啓動方式選擇,

原创 MT7628/MT7688 修改串口2作爲調試串口 所踩的坑

 MTK的芯片設計有些讓人搞不懂,非得將串口作爲啓動選擇引腳; MT76x8 參考其datesheet,TXD0 啓動時必須爲低電平,TXD1啓動時必須保持高電平; 一共最多3個串口,唯獨UART2不影響啓動;但是UART2與 NET P

原创 Openwrt 安全模式failsafe分析

安全模式作用: 只加載基本的文件系統,可以修改密碼,網絡配置等,可以進行升級系統,Uboot等操作; 依賴hotplug機制; procd中進行preinit初始化;同時註冊hotplug 事件; 文件/etc/hotplug-prei

原创 對於dts的理解和分析

DTS是Linux下對於設備資源的一種描述方式,相對於之前platform的描述方式,可以大大節省Linux內核代碼,主要是驅動描述方面。 DTS文件將被編譯成DTB文件,與編譯生成的kernel文件打包在一起,一般放在頭部。 kerne