【緣由】
今天拿到rtthread的ch32v208的rtthread驅(qū)動,在配置好驅(qū)動后,scons時報錯,找不到can2的錯誤,我查看我的rtconfig.h文件,明明沒有定義CAN2,明一直提示出錯。經(jīng)查看手冊,ch32v208只有一個can設(shè)備,而原來的驅(qū)動只適配了ch32v307的驅(qū)動。經(jīng)我一天的修改,終于把ch32v208適配了。
【適配方法與步驟】
經(jīng)查看原來的代碼為:
#ifdef BSP_USING_CAN1
static struct ch32v307x_can_obj drv_can1 =
{
.name = "can1",
.can_base = CAN1,
};
#endif
#ifdef BSP_USING_CAN2
static struct ch32v307x_can_obj drv_can2 =
{
.name = "can2",
.can_base = CAN2,
};
#endif
為了讓編譯器不去編譯CAN2,所以我選擇用條件編譯來匹配兩款不同的芯片修改后代碼如下:
#ifdef BSP_USING_CAN1
static struct ch32v307x_can_obj drv_can1 =
{
.name = "can1",
.can_base = CAN1,
};
#endif
#ifdef CH32V30x_D8C
#ifdef BSP_USING_CAN2
static struct ch32v307x_can_obj drv_can2 =
{
.name = "can2",
.can_base = CAN2,
};
#endif
#endif
經(jīng)過修改后的代碼如下代碼我已經(jīng)提交到github。這里附件如下:
經(jīng)修正后,就愉快的可以編譯使用rtthread 的drv_can驅(qū)動了:
審核編輯 黃宇
-
CAN
+關(guān)注
關(guān)注
57文章
2694瀏覽量
463144 -
驅(qū)動
+關(guān)注
關(guān)注
12文章
1818瀏覽量
85106 -
RTThread
+關(guān)注
關(guān)注
7文章
132瀏覽量
40775
發(fā)布評論請先 登錄
相關(guān)推薦
評論