摘要:
返回值優化,是一種屬于編譯器的技術,它通過轉換源代碼和對象的創建來加快源代碼的執行速度。RVO = return value optimization。測試平臺:STM32F103VG + Keil 5.15背景:我們有個MacAddress::ToArray 因為封裝需要,打算返回字節數組類Byt 閱讀全文
posted @ 2017-09-01 22:59
大石頭
閱讀(2685)
評論(0)
推薦(1)
摘要:
自2003年開始,斷斷續續用了12年C++,直到這兩年做物聯網嵌入式開發,感覺對C++的掌握僅有10%左右。習慣了C#開發,C++倒顯得難以下手!今天就一個函數返回問題跟輝月兄弟討論一番,大有所獲,足以解決我們目前80%的問題,感覺對C++的掌握上升到了20%。背景,現有字節數組ByteArray和 閱讀全文
posted @ 2017-09-01 22:56
大石頭
閱讀(1851)
評論(15)
推薦(15)
摘要:
因為需要自動適配芯片進行系統配置,所以我們有必要通過讀取一些系統寄存器來獲取必要信息。我們的代碼需要兼容STM32F1/GD32F1/STM32F0/STM32F4代碼如下: 各常見芯片信息如下:STM32F030C8T6 GD32F130C8T6 STM32F051C8T6 GD32F150C8T 閱讀全文
posted @ 2017-09-01 14:05
大石頭
閱讀(3120)
評論(0)
推薦(0)
摘要:
無數次遭受堆棧溢出折磨,隨著系統變得復雜,故障點越來越難以查找!主要溢出情況如下:1,一般RAM最后兩塊空間是堆Heap和棧Stack,堆從下往上用,棧從上往下用,任意一個用完,都會進入對方的空間2,如果棧用完,進入堆的空間,這個時候系統是不會有任何異常的,也就是說,棧底沒有什么意義。除非堆和棧指針 閱讀全文
posted @ 2017-09-01 13:55
大石頭
閱讀(1926)
評論(0)
推薦(1)
摘要:
先來看看我們SmartIRQ的具體實現 在構造的時候備份,然后根據參數決定打開還是關閉中斷。在系統內核時鐘里面,關鍵操作需要關閉中斷,最后打開,以免其它中斷影響關鍵操作的原子事務性。于是我們有: 其中irq在離開作用域時被釋放,自動調用SmartIRQ的析構函數,還原了中斷狀態因為調用極其頻繁,最高 閱讀全文
posted @ 2017-09-01 13:12
大石頭
閱讀(521)
評論(0)
推薦(0)
摘要:
在測試MF固件時,發生一個非常詭異的異常,代碼如下: 指定第二行代碼時,會跳到異常處理程序,發生了6號異常(用法異常Usage Fault)我對ARM還是非常陌生,不知道怎么可能發生這個問題。在今天之前,這行代碼執行了無數次也未曾出錯,最近也沒有修改該函數或者相關函數的代碼,昨天倒是大量修改了其它代 閱讀全文
posted @ 2017-09-01 13:06
大石頭
閱讀(782)
評論(0)
推薦(0)

浙公網安備 33010602011771號