STVD换手机后如何清除原来的ROM

01&使用&stvd&编译STM8S&时能看到使用RAM&ROM大小的方法
刚刚安装的STVD编译器,编译时候不显示用了多少RAM和ROM?
对于此问题,有两个方法:一是看.map文件 另一种是
增加一个补丁,具体操作如下,可以在我的资源里下载相应的文件。&
网上找到的:&
将附件压缩包中的mapinfo.exe解压到stvd的\安装路径\STMicroelectronics\st_toolset\stvd中;&
2. 用stvd打开你的工程文件,在工程上点右键选settings...&
3. 右侧的选项卡选择Linker,将category的下拉框选成output,然后在Generate Map
file前打勾;&
4. 再将选项卡上选择到Post-Build,在下方文本框中去掉旧的文本,重新粘贴一行内容&mapinfo
$(OutputPath)$(TargetSName).map&;&
<img src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" real_src ="http://s8.sinaimg.cn/middle/003lhNDXzy6TJ4iiqQDf7&690" BORDER="0" ALT="" NAME=""
TITLE="01&使用&stvd&编译STM8S&时能看到使用RAM&ROM大小的方法" /><img src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" real_src ="-1" BORDER="0" ALT=""
TITLE="01&使用&stvd&编译STM8S&时能看到使用RAM&ROM大小的方法" />
5. 点OK按键确定,菜单File-&save workspace,保存工程;&
6. 重新编译下,你就能看到flash,ram,eeprom占用字节数了 。&
看我的结果:&
ram:130 & flash:7483 & eeprom:0
& stack:40&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。STVD Cosmic
全局变量分配ROM空间问题求助【悬赏问答】 - STM8 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 7353|回复: 10
STVD Cosmic
全局变量分配ROM空间问题求助【悬赏问答】
在线时间1 小时
该用户从未签到主题帖子精华
初级会员, 积分 69, 距离下一级还需 131 积分
声明全局变量的数组:
const unsigned char
DACvolume[]=
{0x00,0x19,0x00,0x20,0x19,0x00,0x20,0x19,0x00,0x20.................};
这样写,编译通过,无警告,但没有分配ROM空间给这个数组,函数查表时结果出错。
而将DACvolume[] 括号内填入一个数字,则能够分配一个ROM空间给这个数组,且查表结果正确。
const unsigned char
DACvolume[2050]=
{0x00,0x19,0x00,0x20,0x19,0x00,0x20,0x19,0x00,0x20.................};
另外,把这个全局变量改到函数内部,作为局部变量,却又能够分配ROM空间。
不知如何解决。
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间14 小时
该用户从未签到主题帖子精华
中级会员, 积分 210, 距离下一级还需 290 积分
RE:STVD Cosmic
全局变量分配ROM空间问题求助
你试试把 变量设置为 Static的试试。。
在线时间1 小时
该用户从未签到主题帖子精华
初级会员, 积分 69, 距离下一级还需 131 积分
回复:STVD Cosmic
全局变量分配ROM空间问题求助
回复第 2 楼 于 15:29:19发表:
你试试把 变量设置为 Static的试试。。
试过了,结果一样。
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间14 小时
该用户从未签到主题帖子精华
中级会员, 积分 210, 距离下一级还需 290 积分
回复:STVD Cosmic
全局变量分配ROM空间问题求助
回复第 3 楼 于 15:47:42发表:
回复第 2 楼 于 15:29:19发表:
你试试把 变量设置为 Static的试试。。
试过了,结果一样。
给你个文档看看,这个文档里100%有你想知道的答案,在文档的第25页。
16:26 上传
点击文件名下载附件
2.71 MB, 下载次数: 258
在线时间1 小时
该用户从未签到主题帖子精华
初级会员, 积分 69, 距离下一级还需 131 积分
回复:STVD Cosmic
全局变量分配ROM空间问题求助
回复第 4 楼 于 16:23:04发表:
回复第 3 楼 于 15:47:42发表:
回复第 2 楼 于 15:29:19发表:
你试试把 变量设置为 Static的试试。。
试过了,结果一样。
我回复太快了,看到上面的文本,附件还没有传完就回复了。
我尝试修改,project--&settings--&linker--&input--&Code,constants中的
.const,鼠标右键,选中 protect,就能正确分配ROM地址空间给这个数组;
请高手解释一下这是为什么?
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间14 小时
该用户从未签到主题帖子精华
中级会员, 积分 210, 距离下一级还需 290 积分
RE:STVD Cosmic
全局变量分配ROM空间问题求助
文档已经上传成功了,你可以看一下 文件在 4 楼
在线时间0 小时
该用户从未签到主题帖子精华
新手上路, 积分 196, 距离下一级还需 -146 积分
回复:STVD Cosmic
全局变量分配ROM空间问题求助【悬赏问答】
回复第 5 楼 于 16:29:08发表:
回复第 4 楼 于 16:23:04发表:
回复第 3 楼 于 15:47:42发表:
回复第 2 楼 于 15:29:19发表:
你试试把 变量设置为 Static的试试。。
试过了,结果一样。
我回复太快了,看到上面的文本,附件还没有传完就回复了。
我尝试修改,project--&settings--&linker--&input--&Code,constants中的
.const,鼠标右键,选中 protect,就能正确分配ROM地址空间给这个数组;
请高手解释一下这是为什么?
从字面上来看,你关了ROM的保护。应该是这样的。
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间0 小时
该用户从未签到主题帖子精华
新手上路, 积分 3, 距离下一级还需 47 积分
回复:STVD Cosmic
全局变量分配ROM空间问题求助【悬赏问答】
只读全局变量
定义全局变量const
char a[100]=”abcdefg”将生成大小为100个字节的只读数据区,并使用字符串“abcdefg”初始化。如果定义为const char a[]=”abcdefg”,没有指定大小,将根据“abcdefgh”字串的长度,生成8个字节的只读数据段。
只读局部变量
例如:在函数内部定义的变量const char
b[100]=””;其初始化的过程和全局变量。
在线时间1 小时
该用户从未签到主题帖子精华
新手上路, 积分 13, 距离下一级还需 37 积分
RE:STVD Cosmic
全局变量分配ROM空间问题求助【悬赏问答】
学习了,以前没注意一般都直接定义_f
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间0 小时
该用户从未签到主题帖子精华
新手上路, 积分 20, 距离下一级还需 30 积分
回复:STVD Cosmic
全局变量分配ROM空间问题求助【悬赏问答】
站长推荐 /3
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered by刚刚安装的STVD编译器,编译时候不显示用了多少RAM和ROM?对于此问题,有两个方法:一是看.map文件 另一种是 增加一个补丁,具体操作如下,可以在我的资源里下载相应的文件。
http://download.csdn.net/detail/chuangwu
网上找到的:
1. 将附件压缩包中的mapinfo.exe解压到stvd的\安装路径\STMicroelectronics\st_toolset\stvd中;
2. 用stvd打开你的工程文件,在工程上点右键选settings...
3. 右侧的选项卡选择Linker,将category的下拉框选成output,然后在Generate Map file前打勾;
4. 再将选项卡上选择到Post-Build,在下方文本框中去掉旧的文本,重新粘贴一行内容“mapinfo $(OutputPath)$(TargetSName).map”;--记得不要加双引号哦
5. 点OK按键确定,菜单File-&save workspace,保存工程;
6. 重新编译下,你就能看到flash,ram,eeprom占用字节数了 。
看我的结果:
flash:7483
keil 编译后 flash 和 ram 占用情况
Program Size: Code=8896 RO-data=1300 RW-data=92 ZI-data=11132
Code -- 代码
RO-data -- 常量
编译的程序占用的内存分为一下几个部分
一个由C/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)—
由编译器自动分配释放
,存放函数的参数值,局部变量的值等。其
操作方式类似于数据结构中的栈。...
STVD下配置Cosmic编译器
之前一直用IAR编写stm8的程序,一直没用上st官方自带的IDE。后来听说Cosmic编译出来的代码要比IAR优化要好,特此来试一下stvd+Cosmic。系统环境:w7 x64配置过程也比较简单首...
stm8s003 8K空间不够用,出现报错,修改stvd参数进行最优化
stm8s008空间大小是8K 使用的时候会出现空间不够用的情况,这个时候要对软件进行一些设置,从而优化程序大小。
1,修改优化等级,如下图所示,这样会优化掉无关的函数,将代码优化到最大程度
mapinfo v0.3 for cosmic map 功能介绍: 1. 对cosmic编译器生成的map文件进行分析,显示ram flash eeprom stack的占用量 ps:ram仅指ram...
针对安装&em&STVD+&/em&COSMIC 开发环境后不能&em&编译&/em&STM8&em&程序&/em&,出现错误,找不到头文件等问题... -08-05 上传&em&大小&/em&:1.16MB STM8STVD ...开发环境后不能&em&编译&/em&STM8&em&程序&/em&,出现错误...
1.软件下载
到ST官网下载最新版
在Project-&settings-&PostBuild选项页中,在commands栏内加入下行命令:
chex –fi -o $(OutputPath)$(TargetSName).he...
Keil和IAR下查看占用Flash和SRAM空间大小的方法
在实际项目中经常需要评估代码占用的Flash和SRAM空间,在Keil和IAR里该如何查看呢?
1)Keil里查看map文件
Size (Code + RO Data)
没有更多推荐了,在使用STM单片机的官方库函数编程时,单片机的ROM会额外的占用很多,我现在使用STM8S103时,使用了库函数,8K的ROM,写了几个自己的驱动和应用程序后,内存占用就到了 7800 bytes。但是还有些东西没有写完,需要继续添加。我使用以下两种方法,将其ROM减少到了 5866 bytes。
MCU:STM8S103K3
开发工具:IAR 2.20
1) 查看ROM,RAM使用情况的方法:查看map文件,文件末尾。
2) map文件位置:demo\Debug\List
3) map的产生是需要在编译器中设置:
Project —& Options… —& Linker —& List —& Genarate linker mapfile
具体方法:
不使用库函数,直接使用寄存器编程。
但是这样编程会比较麻烦,到不得已的时候在使用。可以参考原有的库函数,一步一步的改写程序。
就是注释掉库函数中的“assert_param()”函数。
这个函数作用是检测函数参数的正确性,对程序的功能不会产生实质性的影响,所以这是一种比较好的减少ROM占用的方法。
我使用了第二种方法,下面是ROM使用前后的对照:
1.没有注释掉 “assert_param()” 之前ROM的使用情况:
assert_param(IS_ADC1_CONVERSIONMODE_OK(ADC1_ConversionMode));
assert_param(IS_ADC1_CHANNEL_OK(ADC1_Channel));
assert_param(IS_ADC1_PRESSEL_OK(ADC1_PrescalerSelection));
assert_param(IS_ADC1_EXTTRIG_OK(ADC1_ExtTrigger));
assert_param(IS_FUNCTIONALSTATE_OK(((ADC1_ExtTriggerState))));
assert_param(IS_ADC1_ALIGN_OK(ADC1_Align));
assert_param(IS_ADC1_SCHMITTTRIG_OK(ADC1_SchmittTriggerChannel));
assert_param(IS_FUNCTIONALSTATE_OK(ADC1_SchmittTriggerState));
ROM使用:6251 bytes, 下面是map文件的内容
2.注释后的ROM使用情况:
assert_param(IS_ADC1_CONVERSIONMODE_OK(ADC1_ConversionMode));
assert_param(IS_ADC1_CHANNEL_OK(ADC1_Channel));
assert_param(IS_ADC1_PRESSEL_OK(ADC1_PrescalerSelection));
assert_param(IS_ADC1_EXTTRIG_OK(ADC1_ExtTrigger));
assert_param(IS_FUNCTIONALSTATE_OK(((ADC1_ExtTriggerState))));
assert_param(IS_ADC1_ALIGN_OK(ADC1_Align));
assert_param(IS_ADC1_SCHMITTTRIG_OK(ADC1_SchmittTriggerChannel));
assert_param(IS_FUNCTIONALSTATE_OK(ADC1_SchmittTriggerState));
ROM使用情况:5866 bytes, 下面是map文件的内容
pillar peng
IAR for stm8使用标准固件库的方法以及注意事项
标准库其实挺方便的。有了一个模板之后,如果改参数,根本就不需要再去查手册,重新定义寄存器值了。
第一部分,stm8标准库介绍。
stm8的标准库名称代码是stsw-stm8069,根据这个...
关于Stm8库函数使用需要格外注意的地方
最近在调一个无线项目,用的是STM8003系列的单片机。调用读IO口的库函数
if(SET == GPIO_ReadInputPin(RF_DAT_GPIO_PORT ,RF_DAT_GPIO_...
STM8 寄存器与官方库的组合使用
之前一直都是单独使用官方库或者寄存器,现在来一次集合
1)首先,将库提供的main文件下的这段代码删去,因为不再使用了。
2)然后,同样是在mian文件的最后,补充上
void assert...
STM8L051之ADC+DMA两通道数据采样错位问题
程序中使用ADC1采样一个外部输入,一个内部参考电压的
电压,其中出现了两通道的数据错位问题,即有时数组第
一个数与该数组第二个数据交换了,在网上找了很久=都
没神马结果,最后只能将ADC的连续...
在stm32教学光盘的A里,有两个开发指南,一个是库函数版本,一个是寄存器版本。那么问题来了,作为一个初学者,我应该用库函数好还是直接对寄存器操作比较好?为此我搜集了一些资料,找到了一些可以借鉴的文章...
&em&STM8&/em& 芯片开发学习风驰&em&STM8&/em&开发板例程,包括库和&em&寄存器&/em&,让在开发学习过程中快速学习与应用,适用新手交流。风驰&em&STM8&/em&开发板所有的例程均经过项目的考验过的,对于企业...
&em&STM8&/em&S&em&寄存器&/em&速查手册,本人在工作中使用,自己手工制作。不全面,一般是用多少弄...&em&stm8&/em&s&em&库函数&/em&以及&em&寄存器&/em&例程 立即下载
上传者: hlq5721806 时间: ...
一、空程序
#include &stm8s208rb.h&
void delay(unsigned int t)
while(t--);
stm8是一款低功耗的MCU芯片,它具备stm32库函数和资源丰富的优势。也同时具有价格便宜,低功耗的特点。在一些项目中,能起到很好的作用。下面我介绍一下stm8的IIC硬件库函数驱动代码及实现。...
没有更多推荐了,}

我要回帖

更多关于 换手机后如何清除原来的 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信