原创 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模塊工作在主機模式時,模塊內部有一個控制腳必須由外部給它保持爲高電平狀態才能工作,

原创 STM32的啓動分析

       

原创 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

原创 memccpy