原创 FreeRTOS的中斷優先級配置小結
NVIC 的全稱是 Nested vectored interrupt controller,即嵌套向量中斷控制器。對於 M3 和 M4 內核的 MCU,每個中斷的優先級都是用寄存器中的 8 位來設置的。 8 位的話就可以 設置 2^8
原创 共享庫中的位置無關代碼(PIC)
原作者:Eli Bendersky http://eli.thegreenplace.net/2011/11/03/position-independent-code-pic-in-shared-libraries/ 在之前的文章裏我已經
原创 GNU 彙編語言
轉自http://www.ibm.com/developerworks/cn/linux/l-assembly/ 一、簡介 作爲最基本的編程語言之一,彙編語言雖然應用的範圍不算很廣,但重要性卻勿庸置疑,因爲它能夠完成許多其它語言所無法完成
原创 可變參數__VA_ARGS__使用和va_list使用小結
1. #用來把參數轉換成字符串 #define P(A) printf("%s:%d\n",#A,A); #define SQUARE(x) printf("The square of "#x" is %d.\n", ((x)*(x)))
原创 AIR720串口2收發數據問題
串口2收發數據測試時發現有時候完全沒反應,查了很久的代碼沒找到原因,偶爾發現是供電不足引起的,因爲4G模塊連上USB口的話容易自動給電腦聯網,浪費4g流量,所以升級完程序就斷開了,結果導致供電不足,其他模塊可能沒問題,但串口模塊就是不行,
原创 編譯成功但鏈接失敗的原因
編譯沒有報錯,但連接時出問題,錯誤提示很離譜,不是普通的找不到相關函數的錯誤,根本看不懂。 仔細覈對源代碼,發現內部使用了自己的內存管理函數iot_os_malloc和iot_os_free,若果使用malloc和free函數,雖然編譯不
原创 C++又一坑:動態鏈接庫中的全局變量
extern "C" { void dll_func() { foo_class::_.m += 100; printf("&foo_class::_ = 0x%llx, foo_class::_.m =
原创 STM32F103 SPI 主機模式分析
STM32F103的SPI模塊,跟通用SPI芯片的工作模式有些區別,手冊上也沒有特別註明,所以光看手冊有時候還不容易理解。 STM32上的不同之處在於SPI模塊工作在主機模式時,模塊內部有一個控制腳必須由外部給它保持爲高電平狀態才能工作,
原创 jflash合併stm32f103之bin文件及hex文件
合併bin格式文件: 1、file-> open data file, 選擇boot文件, 地址從8000000開始。 2、file-> merge data file, 選擇app文件, 地址從程序開始執行地址開始,根據keil md
原创 TCP網絡編程中connect()、listen()和accept()三者之間的關係
https://blog.csdn.net/tennysonsky/article/details/45621341 基於 TCP 的網絡編程開發分爲服務器端和客戶端兩部分,常見的核心步驟和流程如下: 連接詳情: connec
原创 recv函數返回值總結
函數原型:int recv( SOCKET s, char *buf, int len, int flags) 功能:不論是客戶還是服務器應用程序都用recv函數從TCP連接的另一端接收數據。 參數一:指定接收端套接字描述符; 參數二:
原创 C 庫函數 - vprintf()
描述 C 庫函數 int vprintf(const char *format, va_list arg) 使用參數列表發送格式化輸出到標準輸出 stdout。 下面的實例演示了 vprintf() 函數的用法。 #include
原创 淺談多進程多線程的選擇(轉)
關於多進程和多線程,教科書上最經典的一句話是“進程是資源分配的最小單位,線程是CPU調度的最小單位”,這句話應付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有這麼簡單了,選的不好,會讓你深受其害。 經常在網絡上看到有的XD