도와주세요!!
글 수 15,339
2002.03.19 14:27:55 (*.241.146.2)
12912
안녕하세요.
EZ-Boot 소스를 따라가면서 공부를 하다보니 계속 이쪽부분만 질문을 하게됩니
다. 소스의 LoadConfig와 SaveConfig 함수에서 질문이 있어서요.
[질문1]
LoadConfig 함수가 아래와 같이 구현이 되어있잖아요.
void LoadConfig( void )
{
if ( Cfg.MagicNumber == *(Word32 *)(DEFAULT_BOOT_SIZE-
DEFAULT_PARAM_SIZE) )
{
memcpy( &Cfg, (unsigned char *)(DEFAULT_BOOT_SIZE-
DEFAULT_PARAM_SIZE), sizeof(TConfig) );
}
}
여기서 DEFAULT_BOOT_SIZE - DEFAULT_PARAM_SIZE를 하면 126k가 나오는데요.
여기부터 2k를 Cfg 영역으로 복사하는 것이 맞나요?
그렇다면 EzBoot 128K 영역중에서 Config 데이터의 위치는 전체 0-128K 영역
중 가장 뒷쪽(128K에 가까운쪽)의 2K 가 맞는것인지 알고 싶습니다.
[질문2]
두번째 질문은 SaveConfig인데요.. 소스를 보니 아래와 같이 적혀있거든요.
void SaveConfig( void )
{
memcpy( (unsigned char *)(0xc0020000-0x400), &Cfg, sizeof
(TConfig) );
// 부트 영역 츨래쉬에 쓴다.
Flash_WriteFull( DEFAULT_FLASH_BOOT, DEFAULT_RAM_BOOT_START,
DEFAULT_BOOT_SIZE );
}
첫번째 질문은 요부분입니다.
memcpy( (unsigned char *)(0xc0020000-0x400), &Cfg, sizeof
(TConfig) );
이부분에서 (0xc0020000-0x400) 요 주소가 어떻게 나온것인지 알고싶습니다.
소스의 mem_map.h 파일을 보아도 요주소는 잘 모르겠습니다.
두번째는 Flash_WriteFull를 써서 플래시 0번지에 적을때에 전체 128K를 적는
것으로 알고 있습니다. 이렇게 하는 이유가 있는지요.. 2K의 Cfg 데이터만 플
래시에 저장을 하면 안되는것인지요...
이부분에서는 memcpy하고 FlashWriteFull의 연관성을 알고싶습니다.
읽어주셔서 감사하구요. 모두들 즐거운 하루 되세요.
EZ-Boot 소스를 따라가면서 공부를 하다보니 계속 이쪽부분만 질문을 하게됩니
다. 소스의 LoadConfig와 SaveConfig 함수에서 질문이 있어서요.
[질문1]
LoadConfig 함수가 아래와 같이 구현이 되어있잖아요.
void LoadConfig( void )
{
if ( Cfg.MagicNumber == *(Word32 *)(DEFAULT_BOOT_SIZE-
DEFAULT_PARAM_SIZE) )
{
memcpy( &Cfg, (unsigned char *)(DEFAULT_BOOT_SIZE-
DEFAULT_PARAM_SIZE), sizeof(TConfig) );
}
}
여기서 DEFAULT_BOOT_SIZE - DEFAULT_PARAM_SIZE를 하면 126k가 나오는데요.
여기부터 2k를 Cfg 영역으로 복사하는 것이 맞나요?
그렇다면 EzBoot 128K 영역중에서 Config 데이터의 위치는 전체 0-128K 영역
중 가장 뒷쪽(128K에 가까운쪽)의 2K 가 맞는것인지 알고 싶습니다.
[질문2]
두번째 질문은 SaveConfig인데요.. 소스를 보니 아래와 같이 적혀있거든요.
void SaveConfig( void )
{
memcpy( (unsigned char *)(0xc0020000-0x400), &Cfg, sizeof
(TConfig) );
// 부트 영역 츨래쉬에 쓴다.
Flash_WriteFull( DEFAULT_FLASH_BOOT, DEFAULT_RAM_BOOT_START,
DEFAULT_BOOT_SIZE );
}
첫번째 질문은 요부분입니다.
memcpy( (unsigned char *)(0xc0020000-0x400), &Cfg, sizeof
(TConfig) );
이부분에서 (0xc0020000-0x400) 요 주소가 어떻게 나온것인지 알고싶습니다.
소스의 mem_map.h 파일을 보아도 요주소는 잘 모르겠습니다.
두번째는 Flash_WriteFull를 써서 플래시 0번지에 적을때에 전체 128K를 적는
것으로 알고 있습니다. 이렇게 하는 이유가 있는지요.. 2K의 Cfg 데이터만 플
래시에 저장을 하면 안되는것인지요...
이부분에서는 memcpy하고 FlashWriteFull의 연관성을 알고싶습니다.
읽어주셔서 감사하구요. 모두들 즐거운 하루 되세요.