首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]初学者,各位大侠指教

[求助]初学者,各位大侠指教

单片机运行时,是否是将flash中的程序复制到ram中执行??
如果定义的变量太多,ram中放不下怎么办???
什么单片机?飞思卡尔的HC08、S08及S12单片机都是直接用FLASH运行程序的,不用先复制到RAM中。只是在某些特殊情况下,如对FLASH进行擦写操作时,才将程序复制到RAM中运行。
海纳百川  有容乃大
是MC9SDG128B,我在程序里定义了三个二维数组就程序执行不了了,只定义一个话就可以执行,不知道是怎么回事??
是定义的全局变量还是局部变量?局部变量只采用堆栈,堆栈空间不够的话肯定不行。
海纳百川  有容乃大
是局部变量,定义堆栈使用的是STACKSIZE 0x100
这样是否是只留给堆栈256B的空间??
我的这三个数组用了414B是不够用的了
对吗?
谢谢版主
还有个问题,书上说可以用STACKTOP 0x3F00代替STACKSIZE 0x100,然后必须将工程文件Start12.c中的函数void_ineruppt0_Startup(void)中的
#ifdef_HCS12_SERIALMON和#endif两句宏命令注释掉
但我没有找到,结果编译时出错了
STACKTOP command incompatible with .stack being part of a list of sections
请问这是怎么回事??
最好不要去修改start12.c文件。在PRM文件中就可以修改堆栈的大小,很方便的,你一看就知道了。
海纳百川  有容乃大
返回列表