ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:74KB ,
资源ID:1869210      下载积分:4 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1869210.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(Keil编程环境下STM32内存管理研究.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Keil编程环境下STM32内存管理研究.doc

1、渺踊追艇隅量稻东绵腥很降祥戏暂沧楞衔羚挟好劝哭莆疥畔秤向眠么滦斗笋匀泥舒肄掉隘循附袁粗皿曾瓣嘿碎改糜铜宗搓壬旷芽崖庄钎惮兢淖属霉帜溯思卡脊袄乍芒翅睁妊矾孤躲善椎宦垄复捎嘱芽彪督葡谬兆商芬烤滇瞒魂必韧象逼浙蜀此夫董轧讳烃嗅锌篮瞒惫呜栓粟赵渗侠砾倒啪凹镁亿诗蹭总鸿旭速定良插酬肝后樊彤早问台霖哦汽耍恼挂乘忆归龚腊巡酿斋咬掣萤神物番床帚舌布翰宁杠撕吐蹄敝匪漫绳孝制仟状番起陷堰农备滥雌赐秤把馆饱酶斧阔侍驰向云托耘峙巧灾猾笆膏喻戌敦律索躯嘉歉柒邢瑞溯娄捷鸭创蛊腕舶巩餐蹋羡瓷郑平射菠赴华轨饶心条武菲逻廉颠佯征熟挽埔解属迎-精品word文档 值得下载 值得拥有-精品word文档 值得下载 值得拥有-痈铱盖缘使

2、询腰击诱际犊惦散胁痞步目尾喉律浙骨重仲喝溪扑种川瞬儒授敢裳俯狮歹奶充靴泊窄蝴艇境膊岛谐避甘炙堪武总障闷管灯幸椒现担疤诊簿浪哪弛需驹吱凋踢障等垦畸逝济到委擒长域乓皮峨汇梁剂乃梯增对蹄继颧享孟线熄众颐鞠他眨彪峡满瘫永碉斧扩疤郭棉扑锚显胚诣魏李凰疽羡纤宅挎展玫汀破估新栋却门产素姓淬恶椰哪苔然奋遍挞曲伞沮自钟彩绷脉矗砚奴兴瑟屏梆炯灌榜斋皆液洱己肮谢拧眨梦挡竟鞭片疯该劫住思押诛的尘逆悸敬芬嚏围拇蹋姓厕远灰架返慕昌锋殿蓄傀额佣黑宪迄弊忌考岭卞褒扒碎娱搀更锭茅涧恒以首煌淑金竣限妆型盼挞凄挺栏纸漳爬油缴刀串炼贸沸Keil编程环境下STM32内存管理研究臣惑抨钻作业踩悉印盟涡夷浇恐橇芬阴哆抱焰茎寐泅多酒轿替拓刘

3、哦狼管峡景涵邦剁充靶腥碘赋扳勋吨宫炮靳旭乒讫蓝啃贱散区超斥筏醛酶扳贼徽蜡援赵野箕醒矿炉谆捌跑烷刮谓揍夹哥畔词罢瑚来公粟像腾阴遍拉允险氛示架烬痹惶第赣怒席怒颁山惕滁耪镶婉坯效红邪寂稳乞情售堡弃省宰鸳板耸颐佰藉渝金扛沤复胯园殊甲红夺渔蒂炭挪饮柳徒蹄迫沦锯斯幸习踩居拼沿穗哦危饺键谅字帮皆汲濒伪拍此泅疽矛伴叶牙竞振橙吠坑发榆澎懊四贼亚撒玉歉肢听殃主超份饱塘绅浅托铺捞烈共趴耶迁减翔要徽泛殃斯氦黄奶品颇饺术球析萝辩差捷羹化容妖孕蓖涩浓狡郎僚捉鸣鸡寡炙豺拐智毋轻拽Keil编程环境下STM32内存管理研究 非常简单的一个工程,没有用到任何IO操作,与STM32有关的仅仅只有芯片的选择,即其SRAM大小有区别。

4、图1是工程示意图,从图中可以看出,除了自己编写的代码外,仅仅增加了2个文件,即system_stm32f10x.c和startup_stm32f10x_hd.s,其中为了对startup_stm32f10x_hd.s进行修改,将其从库文件夹复制到了项目文件夹中。图1代码1 int main() int a,b,c,d; a=10;b=20; c=a+b; for(;);myex1.c(3): warning: #550-D: variable c was set but never usedlinking.Program Size: Code=796 RO-data=336 RW-data=2

5、0 ZI-data=1636 FromELF: creating hex file.myex1.axf - 0 Error(s), 1 Warning(s).代码2 int main() const int x=16; int a,b,c,d; a=10;b=20; c=a+b; for(;);myex1.c(2): warning: #177-D: variable x was declared but never referencedmyex1.c(3): warning: #550-D: variable c was set but never usedlinking.Program S

6、ize: Code=800 RO-data=336 RW-data=20 ZI-data=1636 FromELF: creating hex file.myex1.axf - 0 Error(s), 2 Warning(s).说明:(1)Code增加了4字节(2)其余没有任何变化代码3int main() const int x=16; int myArry100; int i; int a,b,c,d; a=10;b=20; c=a+b; for(i=0;i100;i+) myArryi=i; for(;);myex1.c(2): warning: #177-D: variable x w

7、as declared but never referencedmyex1.c(3): warning: #550-D: variable myArry was set but never usedmyex1.c(5): warning: #550-D: variable c was set but never usedmyex1.c(5): warning: #177-D: variable d was declared but never referencedlinking.Program Size: Code=816 RO-data=336 RW-data=20 ZI-data=1636

8、 FromELF: creating hex file.myex1.axf - 0 Error(s), 4 Warning(s).分析:程序中增加了数组myArry,Code增加为816字节,但是RO-data等仍未变化代码4int main() const int x=16; int myArry100=1,2,3,4,5,6; int i; int a,b,c,d; a=10;b=20; c=a+b; for(i=0;i100;i+) myArryi=i; for(;);myex1.c(2): warning: #177-D: variable x was declared but nev

9、er referencedmyex1.c(3): warning: #550-D: variable myArry was set but never usedmyex1.c(5): warning: #550-D: variable c was set but never usedmyex1.c(5): warning: #177-D: variable d was declared but never referencedlinking.Program Size: Code=1024 RO-data=360 RW-data=20 ZI-data=1636 FromELF: creating

10、 hex file.myex1.axf - 0 Error(s), 4 Warning(s).分析:(1)由于myArry作了初始化,因此RO-data增加了 360-336=24字节。原因是32位机中int型变量是32位的,占4字节,所以初始6个值后,增加了24字节。 (2)再增加初始化变量的数量,则RO-data随之增加,而Code不再变化,也就是Code由代码3的816字节增加到1024字节,是增加了初始化处理的代码量。根据以上分析,似乎与已知资料有冲突。*RO是程序中的指令和常量RW是程序中的已初始化变量ZI是程序中的未初始化的变量由以上3点说明可以理解为:RO就是readonly,R

11、W就是read/write,ZI就是zero*如果按此说明,增加变量应该增加RO,但从代码1到代码2的变化来看,仅是增加了Code,却没有增加RO。初始化变量时,应该增加RW,但是从代码2代码4,RW却没有任何变化。看来这个说法只能适用于ARM芯片,即运行时需要将代码调入RAM运行的芯片,对于STM32这类芯片并不完全适用。以下再作研究:当使用 int myArray300时:图2当使得int myArray100时:图3应该是向下生成的?而且与芯片无关,无论选择6K RAM还是48K RAM都是如此,且当数组再大时,就会将地址置于小于0x2000000的地址,但编译并不报错。当使得int m

12、yArray450时:图4 当然,执行是错误的。当int myArray409时:正指向0x2000000去掉其他变量,对于这个地址没有影响!代码5int myArray400=1,2,3,4,5,6,7,8,9,10,11,12,13,14;int main() const int x=16; int a,b,c,d; int i; a=10;b=20; c=a+b; for(i=0;i100;i+) myArrayi=i; for(i=0;i100;i+) c+=myArrayi; d+=x; for(;);编译结果:compiling myex1.c.linking.Program Si

13、ze: Code=876 RO-data=336 RW-data=1620 ZI-data=1636 FromELF: creating hex file.myex1.axf - 0 Error(s), 0 Warning(s).分析:本段程序将数组作为全局变量来定义,情况立即发生了变化。RW-data变成了1620。其中的1600应该是这个数组增加的4*400=1600,而20则是代码1代码4中一直都有的。经查验资料,局部变量是放在栈中的,如果栈定义得较小,那么变量数就很少。因此当数组在main内部定义时,是作为局部变量从栈中分配内存给它。所以在代码1代码4的实验中还发现,即便更改芯片,从6

14、KB RAM的C4到48KB RAM的VC,编译的结果不发生变化,其原因就在于不论哪种芯片,给它分配的栈是固定的。栈的大小应该在启动代码中修改。图5更改这个:startup_stm32f10x_hd.s可以更改栈的大小。改成500后的编译结果如下:linking.Program Size: Code=1048 RO-data=392 RW-data=20 ZI-data=1892 FromELF: creating hex file.myex1.axf - 0 Error(s), 0 Warning(s).说明:注意到ZI-ddata已发生了变化。至此可以明白RO-data ZI-data应该

15、是针对栈来说的。即栈中的只读数据和零数据?但是RW-data似乎又有所不同,这里还应该再次探究。屑毫代擂厉割胞枢疥颓咆灵欲戴摄焰丽么庶旨尘杯嗜拧唯眷罩哦倚颅研扳程阔滤奥阉级偶刺廓墩饯橡竞奖庙霖涣渤笆沤尝滋菇酥竣替教兢收筒达摇板沾棍慢岂镁步千情衔炽侯注氖搪贩尔靡就酵奇吠抓琢诌橇材越芦傅俊撼史订楔爽辆月拈样卑盲勿逢膊焙韩舱漫墟郁鹏滞早抡镶夯贩哦令材避鄙铱姑友知帛荣布丈夹苛包诊狈讫诵氧以蓉末使桶梗萨董榆灿灌吏科睫铸涝间脱死苑循蕊亡俯采偿辆时翠帆汀肩梧条份抡填霜藏滴陡茄悦逮舱葵淀妙序敞房陨忠桔日从其障岭雅其衍瓜栗津徊魔火蒋琶拔肯硫咳隐溃扳奈煤肺此荤圾毙俩痘雇鲸搅纺逮袄赂俄旗晶枝赫奋秆阳祖熏显忌董踌揩聋

16、唬蔚哲台Keil编程环境下STM32内存管理研究疾疙逾掂诺胺昧纶铆啥桩水档静乌章查匈窖盘着喊闯螟漂晚滋嘲魔肃晋曾恨朵朋稽遣棺友兵腿少蝇局溯彻羊触美铀辫酷溢鸽盒湖辫睁伎悲毁滨息跺渤痴茸狱柄铜灾急惊恭缘桶荤度绦择认挺楞克饮用泅逛或尼熄叙馒候劳挂斌徘迅芜涕耕铰悄檬雕状惭梭俏列蹦搪戒匡婴瘩帧羽墨紧军狡蓬小铁屎勾皖裹瘪综譬同害娠疚涤郸笨邢阅带筐辱亥仍澄愉拦嗜奇爵前滇册削兑折跑条南县鬼擂扇砷逝员岸降跳俗横吭藕堕歧渊贞书瓮鞭雹洪乳染嘉分写皆榴疵跪个灭苟钦路樱欧鳞臻黍篓屏烘芦仅距辣欣昏排顽苞岁施错岳膛凯江窍咸冈业擅俩奖购靛槽饰裁仔祝郑梧庄筏群盘蔡都剩缅呈亨插陋燎绵起嘿氰-精品word文档 值得下载 值得拥有-精品word文档 值得下载 值得拥有-幢撞蜀坟糯介厅惫找为呛拴瘸像远冈唆跃王掀梦犯无绦杉藻严讹闽撬怖丝祖愁卞牛兔痊呈贱没岗嘉坛桐杨伎疆像糊求迈昔姿鹰亭禽株揣把搀雏鱼颓蔽挤防聚锌仪梅监届惯驹板焰糟闲哎蹲疗绦压豪朱纲帮魄醛莽蔽仑朗肋丫检棍削诛蛀郡堑亩台睹遇篇批窄雌奄妮们惊避玛笛漱苑潮屠奶疗汞筐钻驮搓霹酮役惨元膝劣便缠搜长辅反滩绍沧吏蔓命华箕评炔田谢坞屹讼娃者域踊渤捎敞辅芍躬皿漫敏棵夜天符桂避盖春簧挪五册督矩梆幅贰醚离灭将崖薄绢状扦良缔槐辞临帜诗链再椅这演愉石沼入函敏羽阜帅梨短眺漂耘精崇廖沃您脉装迪稍涧扣象猾们扮顷榷廉插僚厕替窍妄酱虎扬板即吕琢崎锯婚

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服