原创 代碼段和數據端
上面提到的 Program Size 包含以下幾個部分: 1)Code:代碼段,存放程序的代碼部分; 2)RO-data:只讀數據段,存放程序中定義的常量; 3)RW-data:讀寫數據段,存放初始化爲非 0 值的全局變量; 4)ZI-d
原创 鏈接知識及Linux下grep使用
一般在.ld的鏈接文件裏 g_start = .; //. 這個點表示使用現在的地址 keep(*(SORT(.section*))) // 在目前地址的基礎上,增加.section* 大小的值 grep -rn “查找的字符”
原创 FreeRTOS 中斷優先級配置
NVIC 的全稱是 Nested vectored interrupt controller,即嵌套向量中斷控制器。 對於 M3 和 M4 內核的 MCU,每個中斷的優先級都是用寄存器中的 8 位來設置的。 8 位的話就可以 設置 2^8
原创 NTC溫度的檢測
1、溫度與NTC阻值是廠家手冊上的。 電壓 = (電壓*NTC阻值)/(外圍電阻+NTC阻值) MCU電壓 3.3 外圍電阻 100 溫度 NTC阻值(kohm) 電壓 -5
原创 GD重新設置主頻的方法
SystemSelectPLL(); SystemCoreClockUpdate (); //更新SystemCoreClock vPortSetupTimerInterrupt(); // 更新Systick控制器的值 #i
原创 指針的大小在MCU爲4個字節
typedef struct { uint8_t * data; uint16_t len; } DATA_MSG_T; sizeof(DATA_MSG_T) 的大小爲8,uint8_t * data;其
原创 __attribute__( at(絕對地址) )
C語言中的關鍵字__attribute__ ,當時大一學C語言中沒有接觸過,後來工作中搞RFID的藍牙標籤卡開發,用的是MSP430G2332,直接用的是絕對定位: 1 const uint8_t flash_data[TX_PLOA
原创 ARM內核的數據存儲
ARM映像文件的組成: 一個映像文件由一個或多個域(region,也有譯爲“區”)組成 每個域包含一個或多個輸出段(section,也有譯爲“節”) 每個輸出段包含一個或多個輸入段 各個輸入段包含了目標文件中的代碼和數據 輸入段中包含了
原创 調試charge遇到的一些問題
如果設置電池的充電電流爲400ma,在VBUS處測試的電流不是400ma。 測試的結果要比400ma要低,是因爲如下: 假設電池的電壓爲3.8v 5.2*(測試電流)+系統功率(先忽略) = 3.8*400 測試電流 = 292ma 上述
原创 __VA_ARGS__的作用
#define AW9106_TRACE(...) printf("[AW9106] "); printf(__VA_ARGS__); printf("\r\n"); #define AW9106_TRACE(...) printf
原创 Git cherry pick 遠程的代碼,不可以推送的原因
發生如上錯誤是因爲遠程的那個commit 是86951a9 ,本地的名字是59a7dc4. 但是拉取的遠程commit是59a7dc4,但是別人發現了有了新的提交點,又推送了一下,commit變成了86951a9。
原创 生成SSH KEY
git config --list git config git config --global user.name "alex.xxx" git config --global user.email "[email protected]"
原创 git patch 解決思路
幾個新手剛剛開始接觸 Git,爲了維護核心倉庫的“純潔”,避免太多無關信息被誤提交進倉庫(再次批評一些圖形化工具默認的“Select All”),採用了核心倉庫只讀,郵件提交 patch,審覈後再提交的工作流程。 期間有時會遇到合併衝突,
原创 vim字符串查找功能
vim有強大的字符串查找功能。 我們通常在vim下要查找字符串的時候, 都是輸入 / 或者 ? 加 需要查找的字符串來進行搜索,比如想搜索 super 這個單詞, 可以輸入 /super 或者 ?super, 兩者的
原创 Git 使用筆記 200530
在.git /logs裏面有一個數據庫可以看到Git的操作記錄。 如果在沒有本地分支的情況下,提交了代碼,但是沒有記錄,可以通過上面的數據庫查看記錄。並且使用checkout,對Git點的內容進行恢復。