原创 代碼段和數據端

上面提到的 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點的內容進行恢復。