请教STM8移植USMART时编译出现“常量表达式截断”的错误

2019-07-19 21:18发布

今天尝试移植原子的USMART到STM8上,但是移植到最后一步,函数名列表初始化的时候,IAR编译报错了,报错如下:
Error[Pa128]: truncating cast in constant expression

出错代码是在usmart_config.c里,如下:
[mw_shl_code=c,true]struct _m_usmart_nametab usmart_nametab[]= { #if USMART_USE_WRFUNS==1 //如果使能了读写操作 #endif (void*)Set_Charge_Current,"void Set_Charge_Current(u16 curr)", (void*)Charge_Enable,"void Charge_Enable(u8 STATUS);", (void*)LDO_Enable,"void LDO_Enable(u8 STATUS);", (void*)OTG_Enable,"void OTG_Enable(u8 STATUS)", }; [/mw_shl_code]
这几个函数都放在了main.c里,在main.h中做了声明,usmart_config.c也include了main.h

请问,问题可能出现在哪里呢?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
wz18th
1楼-- · 2019-07-20 14:47
 回复【7楼】 aleda303 :
---------------------------------
改了,问题依旧啊。。


aleda303
2楼-- · 2019-07-20 18:44
那你这个结构体是怎么定义的?
wz18th
3楼-- · 2019-07-20 19:18
 精彩回答 2  元偷偷看……
aleda303
4楼-- · 2019-07-20 19:32
回复【10楼】wz18th:
---------------------------------

结构体内定义的  void * , 实例里就不必要强制转换为 void* ;

另外 对于 字符串 ,  u8 * 改为 char* 会更好些。
aleda303
5楼-- · 2019-07-20 22:38
 精彩回答 2  元偷偷看……
aleda303
6楼-- · 2019-07-21 01:45
 精彩回答 2  元偷偷看……

一周热门 更多>