Board logo

标题: hcs12 flash 下载的问题 [打印本页]

作者: happywd    时间: 2006-4-8 14:25     标题: hcs12 flash 下载的问题

我把主程序main放在 unpaged区($3f)中,子程序放在一个paged区(比如$31)下载以后,子程序没有进到flash中,但主程序在。


如果我把子程序放在另外一个unpaged区($3e),就都可以正常工作,这是为什么,怎样才能把程序写道paged区中去,谢谢


作者: zy27890426    时间: 2006-4-9 08:33     标题: the same question

请问各位大侠如何将程序下载到分页flash当中?
作者: seuafu2005    时间: 2006-4-10 11:27

如果用C编写会自动放进去的。
如果要放固定的地址,用CW编写的话需要设置prm文件
作者: yunfeng    时间: 2006-4-14 20:17

prm文件中
SEGMENTS /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */
RAM = READ_WRITE 0x0400 TO 0x0FFF;

/* unbanked FLASH ROM */
ROM_4000 = READ_ONLY 0x4000 TO 0x7FFF;
ROM_C000 = READ_ONLY 0xC000 TO 0xFEFF;

/* banked FLASH ROM */
PAGE_3C = READ_ONLY 0x3C8000 TO 0x3CBFFF;
PAGE_3D = READ_ONLY 0x3D8000 TO 0x3DBFFF;
/* PAGE_3E = READ_ONLY 0x3E8000 TO 0x3EBFFF; not used: equivalent to ROM_4000 */
/* PAGE_3F = READ_ONLY 0x3F8000 TO 0x3FBFFF; not used: equivalent to ROM_C000 */
END

PLACEMENT /* Here all predefined and user segments are placed into the SEGMENTS defined above. */
_PRESTART, /* Used in HIWARE format: jump to _Startup at the code start */
STARTUP, /* startup data structures */
ROM_VAR, /* constant variables */
STRINGS, /* string literals */
VIRTUAL_TABLE_SEGMENT, /* C++ virtual table segment */
NON_BANKED, /* runtime routines which must not be banked */
COPY /* copy down information: how to initialize variables */
/* in case you want to use ROM_4000 here as well, make sure
that all files (incl. library files) are compiled with the
option: -OnB=b */
INTO ROM_C000/*, ROM_4000*/;
DEFAULT_ROM INTO PAGE_3D, PAGE_3C;
DEFAULT_RAM INTO RAM;
END

在C文件中
#pragma CODE_SEG NON_BANKED //放在ROMC000中
void delay(byte i)
{
..
}

#pragma CODE_SEG DEFAULT //放在Page 3D,3C中
void main(void)
{
...
}




作者: dreamcatcher    时间: 2006-4-15 11:04

如果子程序单独作为一个工程,下载到指定的分页FLASH,然后在主程序中调用子程序的入口地址,是完全可以调用的!注意:子程序入口地址要加上PPAGE!如:写到38页,子程序入口地址为$388000.
我用的是汇编程序试过的
作者: yuccacl    时间: 2006-4-16 02:33

在调用分页FLASH中子程序之前将“PPAGE=放置的页码”就可以了,但是不知道有什么影响




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0