请问keil中编译后的Program Size:data xdata code上限是多少
3个回答
推荐于2017-10-03
展开全部
keil C51吧。keil mdk应该可以到4GB。
C51的实际值和你的软硬件有关。code只和硬件有关,不能超过你ROM总量,你的ROM总量一般最多是64KB,如果在项目选好芯片,如果超出会提示的。使用keil的code banking功能可以超过64KB,但没有验证过最大值。data和你的最大嵌套层级有关,计算时注意考虑中断嵌套,排除嵌套需要保留的堆栈就是你的最大data,你的芯片RAM如果只有128B,就要用128减堆栈保留字节数,如果超过256B一般用256减。如果有重入函数,又使用的small内存模式编译,就要再考虑重入次数,重入函数在单片机里尽量不要用,每次重入,函数有多少字节的变量,就要再多占用那么字节的存储,比较像PC的函数。如果有使用malloc之类的函数,就自己判断吧。xdata基本可以用完,你有多少用多少,如果有重入函数又不是用的small内存模式就要预留重入时需要的内存。
C51的实际值和你的软硬件有关。code只和硬件有关,不能超过你ROM总量,你的ROM总量一般最多是64KB,如果在项目选好芯片,如果超出会提示的。使用keil的code banking功能可以超过64KB,但没有验证过最大值。data和你的最大嵌套层级有关,计算时注意考虑中断嵌套,排除嵌套需要保留的堆栈就是你的最大data,你的芯片RAM如果只有128B,就要用128减堆栈保留字节数,如果超过256B一般用256减。如果有重入函数,又使用的small内存模式编译,就要再考虑重入次数,重入函数在单片机里尽量不要用,每次重入,函数有多少字节的变量,就要再多占用那么字节的存储,比较像PC的函数。如果有使用malloc之类的函数,就自己判断吧。xdata基本可以用完,你有多少用多少,如果有重入函数又不是用的small内存模式就要预留重入时需要的内存。
2014-03-31
展开全部
取决于你的芯片的参数,code就是存在Flash Memory中的程序文件,理论上你Flash Memory多大就可以写进去多大,而keil编译的大小取决于你编写程序的大小,显示的值只是告诉你当前写的程序编译后产生的大小是多少。data和xdata同理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
取决于你所选的芯片以及其外围存储器的配置。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询