STM8S与IAR程序常用错误

一、IAR中的重复定义问题

在自己写头文件时,要记得将常量定义在.c文件中,如果将常量定义在.h文件中,当在main.c或者其他地方包含该头文件时,会将头文件中的常量定义包 含到main.c中,同时,相应的.c文件也有该常量定义语句,就会导致linker报错,有xxxx重定义(redefined)。此外,当要在 main.c中使用其他.c文件中定义的量时,要记得+ extern+ <类型>+<+变量名>。

标准的做法:在.h文件中声明变量,在一个.c文件中定义变量,其它.c文件要用到变量只要包含.h头文件,相当于变量声明,就可以引用其它.c文件中定义的变量了。一般只在头文件中声明变量,在原文件中定义变量,即使你在头文件中使用了预编译指令 #ifndef.... #define ... #endif,也不能在头文件中定义变量。不能定义,必须声明。

二、程序溢出问题(Error[Lp011]问题)

Error[Lp011]: section placement failed:
unable to allocate space for sections/blocks with a total estimated
minimum size of 0x2ba9 bytes in
<[0x008000-0x009fff]>

原因:将library改为由full改为normal,一下子空间减少很多,还有printf和scanf的格式都由full改为small,不过这里不能用printf了。

(total uncommitted space 0x1f80).
  11 971 bytes of readonly  code
memory
    
915 bytes of readonly  data memory
    
726 bytes of readwrite data memory  
Errors: 1

CPU:STM8S103F3P,它有8K FLASH[0x008000-0x009fff],有1K RAM,实际提示的FLASH大小为10582+809>8192

[0x008000-0x009fff]=8192,0x1f80=8064
0x3180=12672, 0x1f80=8064, 11971+915=12886
8s207就没有问题,换成103问题就溢出。

相关讨论:

http://www.amobbs.com/thread-5516889-1-26.html

http://www.amobbs.com/thread-5516388-1-1.html

http://www.amobbs.com/thread-5526431-1-1.html

http://www.amobbs.com/thread-4181924-1-1.html

三、 Error[Pe169]: expected
a declaration

答:多了}右大括号。

四、PL2303上电后鼠标乱动的解决办法:

1,重新上电,因为我们开发板带了一键下载电路,所以第一次上电,会引起几次(3~6次)MCU复位,很正常. 你不要每次都按电源键来实现复位,就不存在这个问题了.

2,因为你的例程,一上电,就通过串口输出数据了,而此时CH340还在和电脑通信,CH340在和电脑USB连接建立的时候,收到数据,就可能导致你的串口不被识别为串口,而被识别为什么ball之类的设备,从而鼠标乱飞.

解决办法:

上电之前,先按住MCU的复位,然后再上电.等10秒钟左右,再释放复位.就一切OK了.

时间: 2024-11-02 23:26:56

STM8S与IAR程序常用错误的相关文章

IAR for STM8 错误

一个IAR for STM8 v1.3 的工程,换到1.4版后出现如下错误 unable to allocate space for sections/blocks with a total estimated minimum size of 0x2341 bytes in <[0x008000-0x009fff]> (total uncommitted space 0x1f80). 在网上找到下面文章,在工程选项里将“Library Options”里的“Printf formatter”和

SxsTrace程序追踪 &amp;&amp; 错误信息分析

先贴错误:应用程序无法运行,并行配置不正确 ,使用命令行sxstrace.exe.百度解决版本. 起因:同事给我一 EXE,然后基于 其进行开发 dll和模块,但是无法加入进程,无法运行. SxsTrace使用 1.程序无法运行, sxstrace.exe进行追踪. 1.测试本地命令能否成功执行. cmd 下,任意目录,c:\> sxstrace 回车: 2.转(cd)至程序所在目录,运行命令:SxsTrace Trace -logfile:SxsTrace.etl,启动跟踪: 3.运行程序(可

STM8S编译时内存溢出错误的解决办法

? 导致COSMIC报告"segment .ubsct overflow"错误的根本原因是内存溢出, 相关原因分析如下: ? 1.变量存储空间结构 ? STM8S105系列CPU的RAM地址范围为0~0x7FF的2K空间,其中默认将高512字节分配给堆栈,剩下0~0x5FF字节为变量存储空间 .在0~0x5FF的空间范围内,低256字节被定义为Zero page,其中包括.bsct,.ubsct,.bit,.share ? 可见, 当segment .ubsct overflow错误出

IOS程序常用目录

<Home>/AppName.app   应用程序本身包目录 <Home>/Documents/       应用程序的重要数据文件和用户数据文件等都放在这个目录, iTunes进行备份和恢复时,这个目录会被复制. <Home>/Library/Preferences   存放app的偏好设置文件,使用NSUserDefaults类产生的文件 <Home>/Library/Caches   用于存放app使用过程中产生的支持文件和缓存文件, 还有日志文件也最

JAVA程序调试错误集

这边文章是我记录调试JAVA程序的错误,每次遇到都会更新! 错误1.HTTP Status 405 - HTTP method GET is not supported by this URL 解决办法:删除super.doGet(request, response); 错误2. HTTP Status 404 - /Simple/GetAddress ------------------------------------------------------------------------

SpringBoard 无法启动应用程序(错误:-3)

暂时不知道错误的细节原因,重启模拟器就好了. 先记录下. SpringBoard 无法启动应用程序(错误:-3),布布扣,bubuko.com

C#常用错误

解决方法: 在配置文件连接数据库设置后加 MultipleActiveResultSets=true; <add key="ConnectionString" value="server=115.28.152.167;database=JD_Business;uid=sa;pwd=Q1w2e3;MultipleActiveResultSets=true;"/> C#常用错误,布布扣,bubuko.com

配置错误:未能使用提供程序“RsaProtectedConfigurationProvider”进行解密。提供程序返回错误信息为: 打不开 RSA 密钥容器。

http://www.cnblogs.com/jiaruistone/articles/1441634.html 我们如果想对web.config的数据库连接字符串进行加密的话,那么这里提供了两个方法. 方法一.     使用“DataProtectionConfigurationProvider”形式加密,创建test.aspx文件,代码如下: 需要添加引用 using System.Web.Configuration; using System.IO; //加密 protected void

PHP采集程序常用函数分享

分享一些php采集程序中的常用函数,省得以后满地找了,想用时来这里看看,哈哈. //当前的脚本网址 function get_php_url(){ if(!empty($_SERVER["REQUEST_URI"])){ $scriptName = $_SERVER["REQUEST_URI"]; $nowurl = $scriptName; }else{ $scriptName = $_SERVER["PHP_SELF"]; if(empty(