【緣由】
今天拿到rtthread的ch32v208的rtthread驅(qū)動(dòng),在配置好驅(qū)動(dòng)后,scons時(shí)報(bào)錯(cuò),找不到can2的錯(cuò)誤,我查看我的rtconfig.h文件,明明沒(méi)有定義CAN2,明一直提示出錯(cuò)。經(jīng)查看手冊(cè),ch32v208只有一個(gè)can設(shè)備,而原來(lái)的驅(qū)動(dòng)只適配了ch32v307的驅(qū)動(dòng)。經(jīng)我一天的修改,終于把ch32v208適配了。
【適配方法與步驟】
經(jīng)查看原來(lái)的代碼為:
#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,所以我選擇用條件編譯來(lái)匹配兩款不同的芯片修改后代碼如下:
#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)過(guò)修改后的代碼如下代碼我已經(jīng)提交到github。這里附件如下:
經(jīng)修正后,就愉快的可以編譯使用rtthread 的drv_can驅(qū)動(dòng)了:
審核編輯 黃宇
-
CAN
+關(guān)注
關(guān)注
57文章
2921瀏覽量
467885 -
驅(qū)動(dòng)
+關(guān)注
關(guān)注
12文章
1918瀏覽量
86951 -
RTThread
+關(guān)注
關(guān)注
8文章
132瀏覽量
41776
發(fā)布評(píng)論請(qǐng)先 登錄
【沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用】RTT 純命令行(makefile) 和 點(diǎn)燈測(cè)試

評(píng)論