为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

stm8 cosmic 使用常用问题集锦

2019-04-21 2页 doc 15KB 23阅读

用户头像

is_314871

暂无简介

举报
stm8 cosmic 使用常用问题集锦stm8 cosmic 使用常用问题集锦 问题:当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 Debug\kln.lkf:1 symbol f...
stm8 cosmic 使用常用问题集锦
stm8 cosmic 使用常用问题集锦 问题:当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 Debug\kln.lkf:1 symbol f__stext not defined (Debug\stm8_interrupt_vector.o ) The command: "clnk -l"C:\Program Files\COSMIC\CXSTM8\Lib"-o Debug\kln.sm8 -mDebug\kln.map Debug\kln.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)以内,不然程序会跑飞, 而且编译链接的时候也不会报错,我就被黑了一下。 问题:如何在该调试环境下产生HEX文件,以前用KEIL的时候 是必须产生HEX文件才能在板子上调试的 高手指教一下啊?解决:STVD Project -> Setting -> Post-BuildCommands 栏内添加: chex -fi -o $(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8 问题:是不是cosmic得bug? 没有64K为什么要用far? 还有中断向量表是在64K之内呀,谁能解释一下?也遇到这个问题解决:看stm8数据手册就会明白,64K之内CODE段只占32K空间 COSMIC for STM8 无限制版,可以用,编译led例程通过,编译music通不过。 ----------- Project music - STM8 Cosmic - Configuration Debug ------------- Removing intermediate files ... Done! ----------- Project music - STM8 Cosmic - Configuration Debug ------------- Compiling main.c... cxstm8 +mods +debug -pxp -no -pp -l -i"C:\Program Files\CXSTM8\Hstm8"-clDebug\ -coDebug\ main.c main.c: Compiling stm8_interrupt_vector.c... cxstm8 +mods +debug -pxp -no -pp -l -i"C:\Program Files\CXSTM8\Hstm8"-clDebug\ -coDebug\ stm8_interrupt_vector.c stm8_interrupt_vector.c: Running Linker clnk -l"C:\Program Files\CXSTM8\Lib"-o Debug\music.sm8 -mDebug\music.map Debug\music.lkf#error clnk Debug\music.lkf:1 symbol f__stext not defined (Debug\stm8_interrupt_vector.o )//变量没有声明??? The command: "clnk -l"C:\Program Files\CXSTM8\Lib"-o Debug\music.sm8 -mDebug\music.map Debug\music.lkf " has failed, the returned value is: 1 exit code=1. music.elf - 3 error(s), 0 warning(s) extern @near void _stext(); /* startup routine */ //我知道你的问题出在哪里了,你用的是STVD自动生成的 stm8_interrupt_vector.c文件,在使用modsl模?编译时, //你须将extern void _stext(); /* startup routine */ 这句修改为extern @near void _stext(); /* startup routine */ //需要增加@near 关键字。请修改后再试。  
/
本文档为【stm8 cosmic 使用常用问题集锦】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索