amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 999|回复: 12

Keil c51转瑞萨CS+,2级查表报警,求解决方法。(解决)

[复制链接]
发表于 2017-7-13 19:18:28 | 显示全部楼层 |阅读模式
本帖最后由 hzpyl 于 2017-7-14 16:10 编辑

以下2级查表,Keil c51是没有问题的。

现在移植到瑞萨的CS+ FOR CC,报警,运行结果也不对,求解决方法。

//-----------------------------------------------------------------------------
const        U8        Refrigerant_Type_WD_R12_Tab[] =       
{
        5 ,                 // -29℃
        4 ,              // -28℃
        5 ,              // -27℃
        5 ,              // -26℃
        5 ,              // -25℃
        5 ,              // -24℃
        5 ,              // -23℃
        5 ,              // -22℃
        6 ,              // -21℃
        0xFF                 // 结束
};

//很多同样的表,长度不同。

// 下面是2级表,  报警
const        U16        Refrigerant_Type_WD_Tab_Tab[] =
{
        Refrigerant_Type_WD_R12_Tab,                 
        Refrigerant_Type_WD_R22_Tab,                 
        Refrigerant_Type_WD_R410A_Tab,         
        Refrigerant_Type_WD_R123_Tab,           
        Refrigerant_Type_WD_R134A_Tab,         
        Refrigerant_Type_WD_R290_Tab,           
        Refrigerant_Type_WD_R404A_Tab,         
        Refrigerant_Type_WD_R407C_Tab,         
        Refrigerant_Type_WD_R410A_Tab,         
        Refrigerant_Type_WD_R502_Tab,           
        Refrigerant_Type_WD_R507_Tab,           
        Refrigerant_Type_WD_R600A_Tab           
};



解决办法:  强制 U16,不报警了。
const        U16        Refrigerant_Type_WD_Tab_Tab[] =
{
        (U16)Refrigerant_Type_WD_R12_Tab,                  
        (U16)Refrigerant_Type_WD_R22_Tab,                  
        (U16)Refrigerant_Type_WD_R410A_Tab,         
        (U16)Refrigerant_Type_WD_R123_Tab,           
        (U16)Refrigerant_Type_WD_R134A_Tab,         
        (U16)Refrigerant_Type_WD_R290_Tab,           
        (U16)Refrigerant_Type_WD_R404A_Tab,         
        (U16)Refrigerant_Type_WD_R407C_Tab,         
        (U16)Refrigerant_Type_WD_R410A_Tab,         
        (U16)Refrigerant_Type_WD_R502_Tab,           
        (U16)Refrigerant_Type_WD_R507_Tab,           
        (U16)Refrigerant_Type_WD_R600A_Tab           
};
 楼主| 发表于 2017-7-13 22:10:15 来自手机 | 显示全部楼层
用瑞萨的人真少。
发表于 2017-7-13 22:20:56 | 显示全部楼层
二级表里边存的不是数组吗?确定地址是16位的??
发表于 2017-7-13 22:31:00 | 显示全部楼层
瑞萨芯片是16位的,注意数组指针的长度是否不对?
我用cs+

如果有简单的工程,我可以帮你查一下原因。
发表于 2017-7-13 23:52:27 | 显示全部楼层
报警报的什么错误呢?
发表于 2017-7-14 00:05:38 来自手机 | 显示全部楼层
还是得看报警内容。用过一次瑞萨,感觉就是不敢写得太特别,都尽量按最简单的几步走,不然动不动就错误
 楼主| 发表于 2017-7-14 07:03:40 | 显示全部楼层
报警内容如下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2017-7-14 07:11:38 | 显示全部楼层
他的指针寻址长度是短地址,需要加_far_
试试看
发表于 2017-7-14 07:41:50 | 显示全部楼层

警告信息说得很清楚呀,
不能将一个const unsigned char _near类型初始化到一个 const unsigned int _near 类型的入口

类型不符
发表于 2017-7-14 07:48:38 | 显示全部楼层
用IAR吧,不要用CS+,太差了
 楼主| 发表于 2017-7-14 10:42:46 | 显示全部楼层
zyw19987 发表于 2017-7-14 07:11
他的指针寻址长度是短地址,需要加_far_
试试看

请问,_far_加什么地方?
发表于 2017-7-14 11:38:40 | 显示全部楼层
不好用,  
发表于 2017-7-14 15:55:40 | 显示全部楼层
你的第二个表格的元素应该是常数数组的指针,你直接搞个U16定位上,应该是不可以的吧。
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2020-2-21 03:01

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表