6996|14

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

st72324及其仿真器设置问题 [复制链接]

我用cosmic编个基于st72324的程序,编译没问题,但是build始终无法通过。
前后试了Cosmic CxST7 16K 4.5.5这个版本,不知道是不是设置的原因,那个build-setuptools选项里的都要自己来填,如create command files来生成lkf文件,等等,但这么做之后还是有错,说无法生成可执行文件。
用st7 toolchain里的来做,连command files都不知道怎么生成了,始终提示
missing command files for linker。肯定是某些设置的问题。
其实我那个设置都是根据说明书来做的,不过他们不是用汇编就是用hiware来做,有些设置不一样。可能是这些地方没做好吧。
高手们帮帮忙啊!
能否给出用cosmic来build的具体步骤。
还有根据浪淘沙的说法,Project/Settings里面调出配制图完成代码段的定位,但我选setting后只出了一个界面,就是那个工作区项目设置的界面,即新建工作区后会选next后出现的那个界面。难道是版本问题?
maker文件是自动生成的还是完全自己写的?
此帖出自stm32/stm8论坛

最新回复

                                 改完后设为上拉输出时确实是1;不过蜂鸣器的问题还是得问有经验的人士啦。   详情 回复 发表于 2007-5-10 17:26
点赞 关注
 

回复
举报

81

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

顺便说下,参考了st7通用单片机原理及应用这本书

                                 所以这些问题是实在无法解决才来请教的,说得不是很清楚,辛苦大家看下
此帖出自stm32/stm8论坛
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

你先试试一个配置好的项目,确保你的所有工具环境正确

请参考下面这个帖子中的例子做一下:

ST7 16位通用定时器中的输出比较功能(Output Compare)详解
此帖出自stm32/stm8论坛
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 

代码段设置

#    LINK COMMAND FILE FOR TEST PROGRAM
#    Copyright (c) 1998 by COSMIC Software
#
+seg .text -b 0xf000 -n .text        # program start address
+seg .const -a .text            # constants follow code
+seg .bsct -b 0x80 -m 0x80        # data start address
+seg .ubsct -n iram            # uninitialized zero page
#
# define the .share segment when using compact or memory models only
#
#+seg .share -a iram -is        # shared segment

# Put you startup file here
"C:Program FilesCOSMICCXST7_16KLibcrtsi.st7"
# Put your files here
ht.o
#
# float and integer library names depend on the model used
#
"C:Program FilesCOSMICCXST7_16KLiblibisl.st7"
"C:Program FilesCOSMICCXST7_16KLiblibm.st7"

+seg .const -b 0xffce            # vectors start address
# Put your interrupt vectors file here if needed
vector.o

#
# define these symbols if crtsi or crtsx is used
#
+def __endzp=@.ubsct            # end of uninitialized zpage
+def __memory=@.bss            # end of bss segment
我用的是st62324,自己就编了ht.h,ht.c,vector.c,然后加上io72324.h就该完成所有功能了。从错误提示看,是代码段有问题,说什么共享代码段无法定位。

这个网站就那么几个帖子,我基本都是看过的,st官网的资料也去找了,不过我这些问题都没有说明,可能太浅了吧
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 

vector。c

extern void _stext();        /* startup routine */
extern void tmrint();        /* timer overflow interrupt */
//extern void it_tcmp();        /* timer compare interrupt */
//#pragma section const {vector}
void (* const _vectab[])() = {
    NULL,                   //AVD
    NULL,                   //SCI        
    tmrint,            /* TMRB                     */
    NULL,            /* TMRA                  */
    NULL,            /* SPI                  */
    NULL,            /* External Interrupt 3     */
    NULL,            /* External Interrupt 2     */
    NULL,            /* External Interrupt 1     */
    NULL,            /* External Interrupt 0     */
    NULL,                    //MCCRTC
    NULL,            /* unused                   */
    NULL,            /* TRAP                     */
    _stext,            /* RESET                    */
    };     
    //#pragma section ()
这个是vector.c,不知道这么写有没有问题。
#pragma section const {vector}
#pragma section ()
这两句不知道有没有必要加上,因为vector是从ffce开始的,而-stext在fffe-ffff位置上,那么是不是还得加上这两句,然后定义好vector起始地址?
浪淘沙在c语言定位里的那个界面我始终调不出,那么我怎么设置那个段地址?

此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

6
 

请问你是否运行了我在3楼让你测试的项目文件?

你是如何生成你的项目文件的?如果你用STVD7,你根本不用考虑如何写/修改lkf文件,这个文件对用户是透明的,不许用户手动修改。

用STVD7可以很方便地生成合适的项目文件,整个程序的框架已经建好了,你只需把你的程序写进去就行;请你试一试,很简单的。
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

7
 

你这样测试

现下载ST最新的STVD7软件(URL http://www.stmcu.com/mdtfiles/1177338473.exe),安装后新建一个空的项目,选择新建“Create workspace and project”,编译器选择COSMIC,芯片选择ST72F324,建好以后项目自带中断的C文件和Main文件,你什么都不要更改,直接F7,看看还会不会linker Error?请不要更改默认的任何设置,也不要急着现加入任何其它文件。


对于COSMIC,你更本就不能更改lkf文件,还有#pragma section const {vector},#pragma section ()这些代码根本就不需要加多此一举,中断部分的服务函数STVD7在新建的时候已经给出了,都是空函数,除了main外,你在这一部分什么都不需要更改!如果需要加入自己的中断服务程序,只需要将对应中断向量前面的NULL改成你的中断服务函数名称即可。我想一定是你更改了什么设置才会这样。

此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 

回香水城和grant_jx

答复7楼:试过了,例程可以用;后来我是根据例程里的设置改的,但还是需要自己创建command file。用的是那个16k的版本。

答复8楼:按你说的做了下

----------- Project yefeng - ST7 Cosmic - Configuration Debug -------------

Compiling interrupt_vector.c...
cxst7 +debug -pxp -no -l +modm -pp -i"C:Program FilesCOSMICCXST7_16KHst7"  -clDebug -coDebug interrupt_vector.c
interrupt_vector.c:

Running ST7 linker
clnk -m Debugyefeng.map -l"C:Program FilesCOSMICCXST7_16KLib"  -o Debugyefeng.st7 Debugyefeng.lkf 
#error clnk Debugyefeng.lkf:1 symbol _main not defined (C:Program FilesCOSMICCXST7_16KLibcrtsx.st7 )
 The command: "clnk -m Debugyefeng.map -l"C:Program FilesCOSMICCXST7_16KLib"  -o Debugyefeng.st7 Debugyefeng.lkf " has failed, the returned value is: 1
exit code=1.

yefeng.elf - 2 error(s), 0 warning(s)
出了这个错,不会是那个16k的cosmic有问题吧?

我换成st7mc带的那个cosmic版本试后还是这个错误。。。。。。



此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

9
 

回复8楼

用你推荐的那个版本安装后可以通过,
原来那个版本不生成main文件,faint!

我电脑上一共装了好几个版本的编译器,包括光盘安装的,st官网下载的,不清楚这些版本是怎么回事!
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

10
 

谢谢大家帮助

终于build成功,虽然还是不太明白怎么回事,
比如那个16k版本正常情况下也该很方便的通过link和build,但就是不通过,希望高手们能整理下这些版本是怎么回事。
我被困在这个地方好几天。

前不久用renesas的仿真器也是这么回事,用高版本编译器载入workspace后那个workspace再用低版本载入就不能用了,后来还是技术支持来解决的。

用的最顺的还是codewarrior,基本没遇到什么困难。

目前st的第一步算是小小的解决了,看看仿真情况怎么样,有问题再来问大家。
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

11
 

请不要同时安装多个版本,否则很可能会互相干扰

                                 同时安装不同的版本,有可能造成一套软件中不同文件之间的不匹配,这种情况下产生的问题往往谁也说不清楚。
此帖出自stm32/stm8论坛
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

12
 

关于评分

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

13
 

关于PF1蜂鸣器输出的设置

上一贴不小心发错了。
我想问的是蜂鸣器输出怎么设置,
现在只看到mccbcr里能设置蜂鸣器输出频率,但我在哪个寄存器里设置可以使pf1端口只用做蜂鸣器复用输出而不是普通io输出?
像别的定时器输出比较输出等等都有对应的寄存器,但蜂鸣器的在哪里?
单片机st72f324k2
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

14
 

被广告帖压到底下去了,往上浮一下等待回答

同时问:
st单片机输入输出状态切换时pcdr寄存器的变化情况。
我用st72f324,我将pc口的or设为0xff,ddr设为输入,那么正常情况下这个是上拉输入,是否输入口该为1?
但是我测试时外面什么都不接端电压是0,接上一个按键与led并联的电路,然后串联一个1k电阻,再接到那个io口上后,输出端电压是1.7v,led并不亮。
这个电路我还得改,因为是做按键和led分时复用的,所以led电路不该这么接,只是目前的现象有点困惑。
那个上拉输入不就应该是不用用户外接上拉电阻,方便按键输入的么?那么这么选择的话就应该是高电位啊!
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

15
 

那个电压的问题已经自己解决,将电路改造了下

改完后设为上拉输出时确实是1;
不过蜂鸣器的问题还是得问有经验的人士啦。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表