ESD CAN安裝除錯筆記

2022-09-01 08:27:13 字數 2162 閱讀 6836

該方法是將原生的linux核心(linux-4.4.32)打上esdcan的補丁(esdcan_patch),然後使用apollo提供的build.sh 指令碼編譯成實時核心。下面具體介紹操作步驟。

git clone

tar zxvf linux-4.4.32.tar.gz
將解壓後目錄下的所有檔案copy到 apollo-kernel/linux路徑下。你會發現在linux/drivers/路徑中沒有esdcan的目錄。所有的核心驅動都是在其根目錄drivers下的,esdcan驅動不是linux支援的,因此沒有其源**。

打esdcan的補丁

在 ~/apollo-kernel/linux/patches路徑下,將檔案esdcan.patch複製到linux目錄中。

在linux目錄下,執行如下命令進行打補丁操作:

patch -p1 < esdcan.patch
此時檢視./drivers/路徑 ,發現esdcan目錄已經存在。

根據你選用的esd-can卡型號,在附贈光碟中選取對應的驅動,解壓,將 src/路徑下除makefile之外的所有檔案copy到 ~/apollo-kernel/linux/drivers/esdcan/ 路徑下。命令為:

cd ~/apollo-kernel/linux/drivers/esdcan/

cp -ri ./src/* . #請將源路徑替換成自己驅動src目錄所在的路徑

執行如下命令

cd drivers/esdcan/;ln -s makefile.esd makefile;ln -s kconfig.esd kconfig;cd ../..  #如果鏈結不成功,刪掉 makefile或 kconfig重新進行進行即可

成功執行完上述操作,你當前的路徑應該是

~/apollo-kernel/linux/$

在該路徑下執行apollo官方提供的指令碼進行編譯:

./build.sh rt #rt引數表示只編譯實時(rt)核心,其他引數引數請用"./build help"檢視,或者直接開啟該指令碼一飽眼福,哈哈
編譯整個核心啊,這是乙個漫長的過程,在我新嘎嘎的 nuvo-6108ggc e3-1275-v5 八核處理器上,編譯了半個多小時呢。編譯剛開始時,你可以看看前面輸出的資訊,說是編譯的rt核心,esd-can支援 ,blablabla...... 驀然回首,乙個編譯好的鮮活生動的核心已經出爐!你可以在

~/apollo-kernel/linux/install/rt/路徑下看到install.tgz檔案,這就是核心安裝包。解壓,執行install路徑下的指令碼進行安裝。如果你多看一眼,你會發現還有乙個裝n卡驅動的指令碼,在本人的機器上,親測可用。

這個比較快,操作也簡單,請參考apollo官方文件

方法一

操作那麼複雜,存在意義是什麼呢,我簡單嘮叨兩句:

折騰這麼久,你肯定想看看這個can能不能正常工作嘍。然而當你按照apollo官方文件進行測試時,並不能順利進行。下面我總結一下正確的測試過程,希望對大家有幫助。額,測試之前,首先看看你啟動的核心是不是那個帶著esd-can的。

在目錄apollo/modules/monitor/hardware/can/esdcan_tools/

你需要在docker中用bazel編譯。步驟如下:

#copy ntcan.h to include/

#copy 64-bit libntcan.so.4.0.1 to lib/

#do the following to add the necessary symbolic links:

cd ./lib/;

ln -s libntcan.so.4.0.1 libntcan.so.4;

ln -s libntcan.so.4.0.1 libntcan.so.4.0

attention: 入行不深,疏漏難免,歡迎批評&&指正,不勝感激!

references:[1]

[2][3]

[4]

mysql cache除錯筆記

mysql cache除錯筆記 1 可以使用下列命令開啟mysql的select cache功能 set global query cache size 102400000 因為當query cache size預設為0時,是不開啟cache功能的。2 除錯 檢視cache的設定 show vari...

GDB 除錯筆記

chmod 777 r 給許可權包括子目錄下的所有檔案 ls l 顯示檔案的許可權大小時間等資訊 break 5 在第五行打斷點 break test 在函式test 打斷點 info break 顯示所有斷點 i b delete 2 刪除第二個斷點 list 顯示 list 1 從第一行向下顯示...

gdb除錯筆記

gcc main.c sum.c o main g gdb main info breakpoints 檢視所有的斷點 b main.c 24 設定斷點 b main.c main 可以用行號或者函式名字來設定斷點 break main.c 25 if a 109 條件斷點 disable 禁用所有...