Msp430单片机C语言编译问题。Error[e16]:Segment CSTACK

Msp430单片机C语言编译问题。Error[e16]:Segment CSTACK,第1张

RAM区溢出,

以下1,2只能减少量的数据

1 优团绝明化代码 ,将可以的变量申请const存入ROM

2 重设堆宏搜栈塌告,options-》General options -》stack/Heap重设数据,设置时小心程序运行时堆栈溢出

3 升级CPU

不支持自动化(错误

430)

并非所有的对象都能显露自动化接口。此错误有以下原因和解决方法:

虽然在指定的

GetObject

CreateObject

函数调用中找到此类,但并没有显露编程的接口。

除非一个对象有支持自动化的接口,否则不能写代码来控制该对象的行为。检查创建此对象的应用程序的文档,以了解在此对象类上使用自动化的限制。

您将一个工程

.dll

更改为

.exe,或从

.exe

更改为

.dll。如果您有一个已经编译并注册了的

.dll

服务器,然后您将工程类型更改为

.exe

并重新进行了编译,因为

.dll

.exe

已经在您的系统中注册了,因此您无法创建任何一个对象。您必须手工取消对旧的

.dll

.exe

的注册来避免这一问题。

发生这一问题的原因是工程兼容性和将工程从

.exe

更改为

.dll

综合造成的。在工程兼容性中,CLSID

被保留,而不是

IID

被保留。因为

CLSID

被保留,所以最后被注册的类带有两个服务器,一个是进程内服消握宴务器,另一个是本地服务拿银器。皮拦当创建一个实例时,将选择进程内服务器。当发生界面查询时,.dll

不支持

IID,因为它是新的。

详细信息,可选取有问题的项目,并按下

F1

键。

请采纳,谢谢!

1、MSP430主要看是什么系列的,如果是早期的可以用Proteus仿真,比如msp430f149等,如果是新系粗洞改列如msp430F5438A的话暂时不方便软件仿真,除非自己可以在proteus中制作那个控制器的模型。

2、MSP430的编译环境里都提供一系列与片子型号对应的头文件,比如msp430x14x.h就是对14系列的资源定义,说得明白点,就是许多#define宏定义,然后你会发现每个430程序都会包含对应的头文件。比如你说的WDTCTL=WDTPW+WDTHOLD,WDTCTL已经被定义为对应寄存器(看门狗控制寄存器)的地颤答址,WDTPW和WDTHOLD是该寄岩判存器对应位为1的数值,也已经宏定义,如WDTHOLD为第7位,就已经被定义为0x80(0b10000000),然后通过把数值赋给对应地址(可视为变量),这样就可以将对应位置1,如果要同时置多位,就用“加”或者“或”。之所以有这么多的宏定义,就是为了用户记忆方便,记忆有意义的符号比数字好记多了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12415785.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存