分类分类
大小:8.8 MB更新:2021/05/25
类别:编程软件系统:WinXP, Win7, Win8, Win10
stm8 32K cosmic编译器是一款专用的cosmic编译器,内置C交叉编译器、汇编、ANSI库、仿真器、硬件调试器和连接器等多种功能,方便进行各类编译,多应用到STM8系列产品的开发。
stm8 32K cosmic 编译器免费软件,Cosmic 公司(Cosmic Software Inc.)的Cosmic STM8编译器(Cosmic C compiler)及全套嵌入开发工具支持STM8系列产品的开发。Cosmic产品包括C 交叉编译器、汇编、连接器、ANSI库、仿真器、硬件调试器和易于使用的集成开发环境(idea)。
1、双击安装文件,进入安装界面,点击next
2、阅读软件的许可协议,勾选“I accept...”
3、输入用户信息
4、选择安装位置,默认的是C盘,可以点击browse修改
5、选择开始菜单文件夹
6、确认安装信息,点击next开始安装
7、安装完成
问题:
当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)以内,不然程序会跑飞,
而且编译链接的时候也不会报错,我就被黑了一下。