原创 雙鏈表的創建、排序、刪除、查找、合併

一、雙鏈表 #include <stdio.h> #include <stdlib.h> typedef struct ListNode {int data;struct ListNode *prev;struct ListNode *n

原创 SQLite3數據庫交叉編譯並移植到ARM_v7中運行

SQLite源碼編譯安裝與運行 首先到官網http://www.sqlite.org/download.html下載linux版本的源碼:sqlite-autoconf-sqlite-autoconf-3300100.tar.g

原创 Mdeditor編輯器

Mdeditor:原創Markdown編輯器 基於textarea 同步預覽html 不依賴任何插件 支持自定義語法 壓縮版7K 使用簡單 參考示例入口地址 鏈接:https://www.mdeditor.com/

原创 USB設備驅動

USB設備驅動實現流程 usb爲什麼能夠支持熱插拔? 熱插撥腳本使用VID和PID來確定當一個特定的設備插入到系統時該自動執行哪一個驅動程序的Probe 設備與驅動的匹配 我們知道,一個驅動可以支持多個設備,通過usb_

原创 Linux系統下使用4G模塊EC20實現撥號上網

驅動的實現過程 實現4G功能分爲兩步,第一步內核能成功識別出該設備,第二步實現撥號上網.最後提一下自帶的定位功能 一.添加內核USB驅動 這裏直接使用內核已經存在的USB驅動,只需要讓內核能識別出該USB設備,並自動加載驅動

原创 Socket通訊示例

一 最簡例程實現socket網絡傳輸 服務器端( 比客戶端先運行) vi socket_server.c 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include

原创 spidev0.0的正確打開方式

閱前必讀 該平臺基於Freescale的主控imx6ull,本人歷時兩週時間,走過無數坑,原因是無法精確的找到目前使用的文件,主要是nxp命名模式讓我有點尷尬,以至於對於錯誤的spi文件修改了半天,例如spi-fsl-spi.c

原创 make出現gnu/stubs-soft.h: No such file or directory

閱前必讀 歷經一天的折磨,最後還得請的我老闆出山,半個小時解決問題。心裏感慨萬千啊,這就是差距,前方的路還長,繼續加油!!! 以下附上我詳細解決思路,以供各位參考

原创 堆在ROM還是RAM?

寫在前面: 2018年前的最後一天班,臨時總結一下程序在整個嵌入式芯片的運行過程與所涉及到的堆棧問題 從頭說起 普通的嵌入式芯片分爲處理器cortex-m4、閃存Flash、內存RAM。其中我們編譯成機器碼的bin文件是直接

原创 c語言struct結構體強制類型轉換

一、 關於struct相關說明 1、無結構體標籤 struct { int in; int out; }GPIO_t; 聲明瞭一個無名結構體,並創建了一個結構體變量GPIO_t(已分配空間),該方法只適合創建一個結構體變

原创 c語言的.c和.h的文件關係

.c和.h文件沒有必然聯繫,不一定非得成對存在,可單獨實現;.h頭文件存在的意義,方便c文件的引用(避免重複)與描述。 理論上來說C文件與頭文件裏的內容,只要是C語言所支持的,無論寫什麼都可以的,比如你在頭文件中寫函數體,只要在任何一

原创 SI4463的數據衝撞解決辦法

無線數據解決衝撞的最好的辦法就是從源頭避免,這就需要在發送數據之前檢測當前信道是否有其他數據正在發送,如當前信道正在被佔用,採用一定的退避算法,例如簡單的延時來避免空中的數據衝突。 提供了以下兩種方案: 1、讀取當前信道的RSSI(R

原创 指針*p與地址之間的關係

 結論:邏輯內存中,每個字節對應一個地址,也就是每個字符對應一個地址,一個int型的變量由於是4個字節,就會對應4個地址。我們只有取到整型的首地址才能得到完整的int型數據    二.理解爲什麼char*可以這樣char *str =”

原创 對c語言內存的思考

一、C語言中變量聲明與定義的區別 變量定義:用於爲變量分配存儲空間,還可爲變量指定初始值。程序中,變量有且僅有一個定義。 變量聲明:(1)、 告訴編譯器,這個名字已經匹配到一塊內存上了,下面的代碼用到變量或對象是在別的地方定義的。聲明

原创 快速查找算法之爲ID卡而生

#include "binary_search.h" //sort_desc_t sort_desc; //general version o(log2^n) < o(n) int binary_search1(u32 *array,