[STM8] 请教:如何设置keilc中的变量为低字节在前

[复制链接]
912|9
 楼主| aacode 发表于 2020-12-30 16:24 | 显示全部楼层 |阅读模式
可实现下面的功能:

         U8  c[2]={0};
         U16 ival=0;

         c[0]=0x02;
         c[1]=0x01;
         ival= *(U16 *)&c[0];     

       // 实际结果: ival 的值为0x0201     (高位在前)

       // 期望结果: ival 的值为0x0102     (低位在前)
sonicll 发表于 2020-12-30 16:52 | 显示全部楼层
这跟keil没有关系,是CPU架构的问题,STM8是大端模式
qn7a12 发表于 2020-12-31 15:00 | 显示全部楼层
STM8是大端模式就没有keil的事情了,是吗?
airwill 发表于 2020-12-31 21:54 | 显示全部楼层
Keil C51 也是大端模式,  arm Cortex-M 系列是小端模式,  但是 Cortex-R 系列也是大端模式. 也可以用 Keil
晓伍 发表于 2021-1-11 15:22 | 显示全部楼层
不是通过keil能设置的
八层楼 发表于 2021-1-11 15:23 | 显示全部楼层
高低位谁在前是你自己定义的
观海 发表于 2021-1-11 15:25 | 显示全部楼层
不是大端模式的问题
guanjiaer 发表于 2021-1-11 15:28 | 显示全部楼层
这样会不会发生冲突呢
ayb_ice 发表于 2021-1-11 16:33 | 显示全部楼层
KEIL C51就是大端模式,与CPU关系不大(但有些CPU对某种模式有偏好,效率要稍高些),是编译器的行为(8位机更是如此)
 楼主| aacode 发表于 2021-3-19 17:00 | 显示全部楼层
如果可以在在keil中设置大端模式和小端模式就方便了,现在收到APP传来的数据都是小端模式,很多APP指令中的数据都要写代码交换高低字节。主要是mcu空间有点紧张。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

23

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部