9178|19

78

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM8S编译设置问题 [复制链接]

程序很简单,LCD显示,定义了一个常量数组,数组大小为40K(40960字节);

u8 const cArray1[]=……;

芯片STM8S207SB,程序>32K,选择了modsl,编译可以通过,但是仿真时看不到显示,像是跑飞了;数组改小后可以正常显示。

找了下关于>32K编译的贴子,也没试出来。

哪位指点一二,TKS。
此帖出自stm32/stm8论坛

最新回复

                                 问题已经解决,请版主锁贴。 感谢大家关注,特别感谢“huhuhu_1”,参照他的办法解决问题。 我做了以下改正: 1:更新了STM8的库为1.1.1(之前使用的是1.0的库)。 2:更换了其它版本的编译器COSMIC(之前使用的是PJ版,现在换了个另外的PJ…同时倡议:在经济允许的情况下,请支持正版)。 3:配置:modsl+crtsxf.sm8(可以参考《CXSTM8_UsersGuide》等)。 希望后面的兄弟少走弯路。  详情 回复 发表于 2010-5-20 11:41
点赞 关注
 

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
1.编译可以通过,最好在检查链接是否正确,可以看.map文件。

2.可以在main()的第1行设置断点,看是否能停下来
此帖出自stm32/stm8论坛
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 停不下来!
此帖出自stm32/stm8论坛
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
                                 今天我也遇到同样的问题,没有搞定。关注中。
此帖出自stm32/stm8论坛
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

5
 
DEBUG编译选项没有打开吧,STVD默认是不打开的。

这样只能在汇编代码中设断点。
此帖出自stm32/stm8论坛
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

6
 
                                 main()第一行中断没问题,运行到打开中断时,产出中断,程序指针就乱了,不过乱的很有规律,本来是要跳到0x012344,可实际是到了0x2344,前面的1没了。我用的选项是modsl+crtsi.sm8,并取消-gnc(加上-gnc之后会在link时产生section cross错误)。
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
我的选项也是用的modsl+crtsi.sm8;

STVD+COSMIC;

程序>64K;需要什么特殊设置吗?哪位说说啊
此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(中级)

8
 
                                 用crtsi.sm8可能不对,改成 crtsxf.s 试试看.
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
                                 crtsxf.s也试了,结果是一样的。另外我认为用crtsi.sm8没有问题,我的.const都是在前32KB,并且只有2KB左右。
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

10
 
                                 我看到有不少这方面的帖子,但都没有解决,看来这个问题还是有一定的典型性的,热切希望版主主能关注一下。
此帖出自stm32/stm8论坛
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

11
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

12
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

13
 
我看到有不少这方面的帖子,但都没有解决,看来这个问题还是有一定的典型性的,热切希望版主主能关注一下。
确实比较典型,好好儿找找就有,我搜索了一下,很多帖子都有解决方案,这里还有一个:

求助:STM8的 “32K” 门槛如何跨过?
此帖出自stm32/stm8论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

14
 
————————————————————————————————————————
it.h中的 //void _stext(void); /* RESET startup routine */
屏蔽掉,
还要保证所有的const变量在32K范围内,我是强制把const放在16K之类
————————————————————————————————————————

我看到很多帖子都说要把const变量放在32K以内;
我也只是仅仅定义了一个40K大小的常量数组,就出现了这种问题,奇怪了。
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

15
 
我的问题搞定了。原因有2个方面:
一、中断函数的定义原来是@near,要改成@far。我是用ST提供的1..0.1版的库开发的项目,现在改成1.1.1版的库,修正的就是这个问题。
二、我用的cosmic的编译器是破解版的,可能是没完全搞定。我借了一个正版的用了,一切都正常了。
我也想用正版的,于是拿起电话咨询了代理商,结果是折扣之后还要2W,。。。。买不起。要是5K我会买的。
坛子里那位有不用了的正版,便宜点处理给我。huhuhu_1@163.com
此帖出自stm32/stm8论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

16
 
————————————————————————————————————————
it.h中的 //void _stext(void); /* RESET startup routine */
屏蔽掉,
还要保证所有的const变量在32K范围内,我是强制把const放在16K之类
————————————————————————————————————————
上面的说法是错误的,会编译通过,但程序是不能正常运行的,因为你屏蔽的是程序的初始化入口。实际测试也如我所说。
此帖出自stm32/stm8论坛
 
 
 

回复

20

帖子

0

TA的资源

一粒金砂(初级)

17
 
你将你搞定的程序能不能用石皮解版再编译一下试试,看看是否可行?
如果可行,说明是(一)的设置问题;
否则就需要正版了。
此帖出自stm32/stm8论坛
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

18
 
                                 多设几个断点
此帖出自stm32/stm8论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

19
 
                                 烧写进去后,显示是否正常
此帖出自stm32/stm8论坛
 
 
 

回复

123

帖子

0

TA的资源

一粒金砂(初级)

20
 
问题已经解决,请版主锁贴。
感谢大家关注,特别感谢“huhuhu_1”,参照他的办法解决问题。

我做了以下改正:
1:更新了STM8的库为1.1.1(之前使用的是1.0的库)。
2:更换了其它版本的编译器COSMIC(之前使用的是PJ版,现在换了个另外的PJ…同时倡议:在经济允许的情况下,请支持正版)。
3:配置:modsl+crtsxf.sm8(可以参考《CXSTM8_UsersGuide》等)。

希望后面的兄弟少走弯路。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表