找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 13|回复: 0

stm8 32K cosmic 编译器

[复制链接]

32万

主题

0

回帖

96万

积分

超级版主

积分
964681
发表于 2025-3-14 10:56:22 | 显示全部楼层 |阅读模式
软件标签:  stm8   编译器
cosmic stm8旨在以最简洁小巧的程序为你完成最便捷的各类编译服务,拥有众多编译器辅助功能,为你集成了众多的开发环境,为你带来不错的汇编效果!
cosmic stm8介绍
stm8 32k cosmic 编译器免费软件,cosmic 公司(cosmic software inc.)的cosmic stm8编译器(cosmic c compiler)及全套嵌入开发工具支持stm8系列产品的开发。cosmic产品包括c 交叉编译器、汇编、连接器、ansi库、仿真器、硬件调试器和易于使用的集成开发环境(idea)。



特色介绍
此软件主要是应用于stm8的开发任务。

cosmic 公司提供了16k 和32k 代码大小限制的全功能的免费软件。
常见问题:
问题:

当c compiler中的memory models选择long stack(modsl0)并且linker中的start-up file选择crtsi0.sm8的时候,编译是没有问题的,程序最大长度可以到32k;但是c compiler中的memory models选择long stack(modsl)并且linker中的start-up file选择crtsi.sm8的时候,编译出现问题,如下:

#error clnk debugkln.lkf:1 symbol f__stext not defined (debugstm8_interrupt_vector.o )

the command: "clnk -l"c:program filescosmiccxstm8lib" ?-o debugkln.sm8 -mdebugkln.map debugkln.lkf " has failed, the returned value is: 1

exit code=1.

个人感觉是找不到f__stext,所以说如果要编译大于32k的程序的时候还是不行,请楼猪和各位帮忙解决一下。

stm8系列的性价比还是蛮高的,可惜是没有免费的编译器,我在公司有个硬件狗,据说要1000多dollar,所以阿.为了普及,靠大家了^_^

解决:

你用的是stvd自动生成的stm8_interrupt_vector.c文件,在使用modsl模式编译时,你须将extern void _stext(); ? ? /* startup routine */ 这句修改为extern @near void _stext(); ? ? /* startup routine */ ?需要增加@near 关键字。请修改后再试。

问题已经解决了,中断文件改为

typedef void @far(*interrupt_handler_t)(void);

struct interrupt_vector

{

unsigned char interrupt_instruction;

interrupt_handler_t interrupt_handler;

};

@near void _stext(); /* startup routine */

大家注意一下,程序大于32k后,要把const数据,main还有中断函数等定位到32k(地址64k)以内,不然程序会跑飞,

而且编译链接的时候也不会报错,我就被黑了一下。
怎么安装:
安装cxstm8_32k.exe到您的计算机上.

解压cxstm8_32k_patch.zip, 运行cxstm8_32k_patch.exe,找到...cosmiccxstm8_32k安装目录。


aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|ziyuan80.com

GMT+8, 2025-8-14 15:54 , Processed in 0.068319 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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