![Msp430单片机C语言编译问题。Error[e16]:Segment CSTACK,第1张 Msp430单片机C语言编译问题。Error[e16]:Segment CSTACK,第1张](/aiimages/Msp430%E5%8D%95%E7%89%87%E6%9C%BAC%E8%AF%AD%E8%A8%80%E7%BC%96%E8%AF%91%E9%97%AE%E9%A2%98%E3%80%82Error%5Be16%5D%3ASegment+CSTACK.png)
以下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,如果要同时置多位,就用“加”或者“或”。之所以有这么多的宏定义,就是为了用户记忆方便,记忆有意义的符号比数字好记多了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)