完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我想知道我怎样才能找到闪光灯空间的使用量。我怎么才能找到这个?我知道,更早(像4-5年前)当我查看某些库函数时,我发现仅仅使用一个加载了代码的调用闪存就足以使应用程序不适合。因此,我必须创建自己的格式化函数(精简和刻薄)。现在我正在将旧代码移植到PIC24,我怀疑这些sprintf调用的频繁使用。但是在我开始替换任务之前,我想确切地了解这些调用的闪存成本。不能当使用MPLAB-X(和C30编译器)时,他很容易找到?
|
|
相关推荐
19个回答
|
|
|
我还建议尽量避免使用sprintf&Co。我认为最好的办法是计算差值。在C30 3.31中,对于PIC24,我得到的是一个几乎空的项目(只有crt和几乎空的main...)和一个非常简单的sprintf
|
|
|
|
|
|
不确定C30,但在XC8中,它取决于您在SaveTFF调用中使用的格式字符串。也就是说,它检查它需要什么代码位,并且只包括所需的代码。
|
|
|
|
|
|
是的,我要指出QHB关于XC8的说法-虽然XC16不应该(并且绝对不是C30)3-4K…加上一些数据…是意料之中的事。如果固件不是太紧,仍然值得!
|
|
|
|
|
|
没错,前面的示例是使用整数%d。因为我已经有了测试代码,所以我只向代码中添加了一个浮动变量,它将一个新的“偏移”设置为4440字节(sprintf仍然使用%d)。8 KB的一个带有浮点的喷水器。使用%D和%F也没有多大区别。(大约350字节)实际上我永远不会用sprintf来处理整数,只对sprintf和sscanf使用浮点,如果您有可用的flash的话,有时也可以。
|
|
|
|
|
|
哦,我明白了-很高兴知道
|
|
|
|
|
|
忘了说,当然,您还可以查看生成的.map文件。但是如果你在计算最后一个字节,那是很难的。它不是函数Simultf本身,它占用了那么多内存,它是FvPrimTf和所有辅助函数。
|
|
|
|
|
|
我想在这里加一个评论,但是写了20分钟后,我放弃了?为什么MC论坛引擎如此笨拙?在某个地方有没有公布的“禁词”名单?我知道与美国电话制造商相关的词汇,还有一些类似评论的C结构,但有更多吗?
|
|
|
|
|
|
许多单词,遵循一个打开的圆括号,被认为是SQL语句的一部分:尝试在中间添加一个或多个空格。
|
|
|
|
|
|
它不起作用……我在每个之前和之后添加了空格,但是没有用…现在把我的文章作为文件附加起来。也许有人能找出是什么阻止了它被定期提交?
|
|
|
|
|
|
吉姆测试BoabiPoStIDIT:我太困惑了。论坛防火墙过滤器上的坏代码
|
|
|
|
|
|
我发现,我所查看的代码大多使用与这个例子类似的sprintf:因为我已经创建了一个包含许多格式化函数的utils.c文件,可以用这些函数替换sprintf。格式字符串…
|
|
|
|
|
|
它拒绝打印.Curr的内容,只输出了最重要的单词,最不重要的单词总是0……结果我必须进行这些更改(你能认出来吗?)现在,计数器的全部值被打印到字符串上……我用long2hex()替换了sprintf调用,并且所有操作都很好并且更容易理解。buf是相同的字符串指针,8是结果十六进制字符串的长度……
|
|
|
|
|
|
它不喜欢这些台词:是的,我每天都在他的带领下:
|
|
|
|
|
|
哦,好吧!让我们试着理解这个问题,现在…
|
|
|
|
|
|
你不能发表禁止的词语
|
|
|
|
|
|
没错,前面的示例是使用整数%d。因为我已经有了测试代码,所以我只向代码中添加了一个浮动变量,它将一个新的“偏移”设置为4440字节(sprintf仍然使用%d)。8 KB的一个带有浮点的喷水器。使用%D和%F也没有多大区别。(大约350字节)实际上我永远不会用sprintf来处理整数,只对sprintf和sscanf使用浮点,如果您有可用的flash的话,有时也可以。
|
|
|
|
|
|
HI,使用StaveTf、PrimTf等时内存消耗的问题是这些函数具有可变长度参数。并声明为函数(int x,…)。大部分工作都是在运行时完成的,因为函数不知道(在很多应用中)将要抛出什么。如果浮动是一个参数,编译器必须提供一整批“辅助函数”来处理浮动上的可能操作。严格地说,在使用之前,应该对NANS的浮子进行测试。你提到德尔菲。我认为,当浮点NAN出现时,会创建一个异常,应用程序必须捕捉到这个异常。为了避免编译器猜测需要什么,可以使用标准或自定义转换构造字符串。看看上面的示例,格式字符串是一个常数,所以是在编译时定义的,所以字符串可以用代码行构造。不像SaveTFF那么简单,但有时这是在32 K/64K芯片上工作的成本。内置Yorky的FPU
|
|
|
|
|
|
几乎不可能从你的代码中引用任何东西。你的格式字符串必须完全符合变量参数列表,否则你会得到奇怪的结果。我不理解THISPrimTf(PTR,“5% 2.2x%2.2x”,Battcode,BATCODE2);结果应该是什么样的?阿赫。不可能回应任何有意义的事情。我放弃了。它必须张贴为图像或附件或更好地在另一个论坛。只需查看引用或使用您的Lang2HuxHTP://www. cPLUPLU.COM/RealthOn/CSTDIO/PROTFF/
|
|
|
|
|
|
大家好,我想就原创帖子发表评论。对于所有XC编译器(并且因为printf和scanf是这样的多层内存占用者),编译器对包含的代码进行裁剪,以最小化内存使用。因此,PrTNF和SCANF没有固定的成本。正如其他人所评论的,%d非常便宜,%f非常昂贵,是的,在整个调用树中都有变量参数列表,这使得它消耗了大量的内存,无论如何。来自SCANF或PrPTF。我喜欢注释它,删除注释,检查MPLAB X仪表板方法与深入到映射文件中的差异。遗漏一些东西太容易了。我的建议是永远远离打印和扫描,除非你真的、真的需要它们,并且有很多内存可以挥霍它们。他们做了很多其他你可能不需要的东西,但无论如何你都要为此付出代价。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 05:51 , Processed in 1.411675 second(s), Total 110, Slave 93 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3165