原创 深度解析NRF24L01

本文將深度解析一款爛大街的無線芯片,NRF24L01(及國產完全兼容的SI24R1)。實在是現在網上很多寫NRF24L01的文章抓不到重點,一些冷門用法沒人寫,就寫了這個文章。推薦選用SI24R1,原因是功能完全相同,但SI24R1內置P

原创 [GN] 谷歌元構建系統GN,toolchain配置

注:主要信息來自於GN的幫助文件 典型格式:  tool(<tool type>) {     <tool variables...>   } tool type可選的範圍: 編譯器: "cc": C編譯器 "cxx": C++ 編譯器

原创 蘋果ipnone 6s Taptic Engine測試

iphone從6開始使用LRA馬達,很早之前買了一個回來打算研究一下,結果一拖就拖到了現在,終於找到了時間去測試一下這個可以讓一個假按鍵按下振動以假亂真的Taptic Engine。 結構 結構網上對應的圖片很多,下面放兩個比較直觀的圖,

原创 [GN] 生成bin和hex

gn對於工具鏈的配置只到可執行文件就結束了,在我們之前配置的armcc中,最終生成axf就算結束了,但對於一些應用場景來說,bin和hex是必須的,因此還需要執行額外的步驟來實現bin和hex的生成,對於bin和hex,arm工具鏈中提供

原创 [GN] 官方文檔

介紹 本頁面描述了許多語言的細節和行爲。 使用內置的幫助! GN有一個廣泛的內置幫助系統,爲每個功能和內置變量提供參考。這個是gn文檔的主要來源! gn help 設計理念 編寫構建文件不應該是一個創造性的努力。理想情況下,兩個人應

原创 [GN] 讓構建更快更快以及更快

基於GN+ninja的構建系統已經在構建系統層面將速度提升到了極致,但對於編譯來說遠遠沒有! 我們可以通過對於不常改動的文件編譯爲lib的方式來避免每次清理後的重複構建,這樣直接把編譯的過程都省掉了,構建就可以變得更快。 靜態鏈接庫 編譯

原创 [GN] 工程架構

前面說到了怎麼配置一個可用的armcc的工具鏈,這篇文檔將基於其工具鏈架構一個真實可用的具體工程。 環境依賴 首先需要下載gn.exe和ninja.exe兩個程序,每個程序只有幾百k,相對於cmake來說真的是清爽,而且無需安裝,可以直接

原创 [GN] 配置armcc工具鏈

對於gn來說,工具鏈被抽象爲一系列的工具描述,我們要做的就是寫對應的工具描述文件出來。 首先在工程根目錄建立一個文件.gn(注意文件的名字爲空,後綴爲.gn),文件中配置工具鏈描述文件所在的路徑 buildconfig = "//bui

原创 [GN] 使用GN+Ninja替代MDK進行編譯

背景 在單片機開發者中,使用MDK一直是一個較爲普遍的選擇,但是當工程變的越來越大之後,MDK開始力不從心,編譯速度下降,配置複雜,編譯過程中添加自定義行爲困難等問題開始顯露出來,因此選擇一個更好的編譯工具就變成了一個需要提上日程的需求。

原创 一種相對高效的按鍵消抖方法

按鍵軟件消抖自我接觸單片機開始就已經存在這個問題了,網上的辦法無非是延時消抖和定時輪詢。對於寫裸機的我來說這兩種方法都不可避免的會有資源浪費掉,今天突然有了靈感,想到了一種相對高效的辦法來解決消抖問題。 硬件平臺:STM32F103RCT

原创 使用字符映射完成簡單的對稱加密

最近做了點東西,爲了防止能夠被簡單的逆向破解通訊協議,所以需要進行簡單的加密操作。於是實現了一個簡單的字符映射的對稱加密。 首先先說一下實現原理吧,其實原理很簡單,對每byte數據進行重新映射,比如明文1映射到9,那麼解密的時候9對應的就

原创 linux環境下使用V4L2及Qt設計簡易照相機

最近放假,比較清閒,正好手上有一個USB的免驅攝像頭,想了想打算做一個簡易的照相機,後期移植到4412的板子上做實時監控。之後在網上找了找參考資料,發現了一個比較好的博客,在此貼出來,鏈接:http://www.cnblogs.com/s