原创 多核Cache Coherence問題——以ARM爲例

最近在多核ARM芯片上搞並行計算,涉及到核間數據交互,因此對多核cache coherence稍作探究。想解決的疑問是:各個核之間是否“知道”內存中的數據被其他核進行了改動?有何機制來保障cache coherence? CSAP

原创 Bezier曲線(1):Introducion

參考: 貝塞爾曲線掃盲 貝塞爾曲線的理解 使用貝塞爾曲線繪製多點連接曲線 Bezier curves and surfaces Bezier Curve Drawing Algorithms Construction of B

原创 &和!=的優先級

寫了個小bug,基礎知識再複習。 這樣的一段程序: #include <stdio.h> #include <stdint.h> int main() { _Bool flag1, flag2; flag1 = (0x54

原创 memcpy與大小端

參考: 大端 小端 與memcpy 網絡字節序和大小端字節序 來看這樣一段代碼: 本意是想把uint8_t a[2]中的內容合成一個uint16_t b #include <stdlib.h> #include <stdio.h>

原创 Kalman Filter 0

參考: An Elementary Introduction to Kalman Filtering 之前看的一篇講Kalman Filter的論文,覺得很不錯!重讀一遍。 論文的結構大致是這樣的: Section 2—— 回顧基

原创 函數調用與自增運算

最近寫代碼的時候本想着用點小trick,結果一不小心踩了個坑。 一個例子: #include <stdio.h> int main() { int id = 0; printf("%d,%d\n", id++, id++)

原创 本週踩坑記錄-200322

1.CAMERA中斷程序中忘清中斷,導致頻繁進中斷,內存被踩,最後的計算結果錯誤。採用GDB逐步調試找到了計算錯誤的原因是內存被踩後,再做減法逐步排除出問題的代碼,才定位到中斷程序。 2.未注意程序執行的順序,在A任務中用到了B外

原创 Homography & Projective Geometry

參考資料: [1]Projective Geometry: A Short Introduction [2]計算機視覺筆記1:白話射影幾何 [3]lecture_1_3-basic-projective-geometry [4]2

原创 使用malloc的注意事項

有時候在函數中使用malloc時,如果分配內存失敗,可能會打算讓函數直接返回,例如: char *T; T = malloc(4); if (T == NULL) return -1; else //... 但是

原创 關於Homography的一些思考

1 DoF of Homography 參考: 南京師大 高等幾何 第19課 25’ 追根溯源,還是去看高等幾何/解析幾何吧。 對於一個二維射影homography 3*3矩陣 H=[h11h12h13h21h22h23h31h3

原创 數據拼接與處理Tips

最近搞了幾個傳感器,各個的數據格式都不太一樣,記錄一下處理數據的tips。 1 注意是否溢出 遇到這樣的情況:原始數據本身是8bit,然而需要加上offset才能得到真實數據,一疏忽用了uint8_t來存放數據,顯然就會存在溢出的

原创 使用memset初始化數組

寫在前面的ATTENTION:用memset初始化非char型(eg. int型、float型…)數組時,假如初始化值非0,可能導致錯誤的結果。 先舉個通常用法的栗子, 將int型數組arr的元素初始化爲0: int arr[5]

原创 Ubuntu臨時增大swap分區

編譯ORB_SLAM2遇到問題:virtual memory exhausted: Cannot allocate memory,解決方法是臨時增大swap分區。 參考: ORB SLAM2 ROS單目攝像頭環境搭建 Ubuntu

原创 C語言頭文件中的全局變量

如果在頭文件中定義了某個變量,而這個頭文件又被多個源文件包含了的話,編譯會出現變量重定義的錯誤,一種解決方法是利用extern這個關鍵字,可參考ucos: 在ucos_ii.h文件中定義了OS_EXT宏,如果文件中也同時定義了OS

原创 virtualbox裝Ubuntu16.04無法啓動Fixing recursive fault but reboot is needed!

換了個新筆記本出現的問題。 把虛擬機設置的系統->擴展特性->啓用I/O APIC勾選上就好了。