clear data segment only if we are running from ROM/flash
This commit is contained in:
@@ -840,17 +840,12 @@ extern uint8_t _BAS_RESIDENT_TEXT_SIZE[];
|
|||||||
|
|
||||||
void clear_datasegment(void)
|
void clear_datasegment(void)
|
||||||
{
|
{
|
||||||
uint16_t *p;
|
extern uint8_t _BAS_DATA_START[];
|
||||||
extern uint16_t _BAS_DATA_START[];
|
uint8_t *BAS_DATA_START = &_BAS_DATA_START[0];
|
||||||
uint16_t *BAS_DATA_START = &_BAS_DATA_START[0];
|
extern uint8_t _BAS_DATA_END[];
|
||||||
extern uint16_t _BAS_DATA_END[];
|
uint8_t *BAS_DATA_END = &_BAS_DATA_END[0];
|
||||||
uint16_t *BAS_DATA_END = &_BAS_DATA_END[0];
|
|
||||||
|
|
||||||
p = BAS_DATA_START;
|
bzero(BAS_DATA_START, BAS_DATA_END - BAS_DATA_START);
|
||||||
while (p < BAS_DATA_END)
|
|
||||||
{
|
|
||||||
*p++ = 0L;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void initialize_hardware(void) {
|
void initialize_hardware(void) {
|
||||||
@@ -882,7 +877,10 @@ void initialize_hardware(void) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
clear_datasegment();
|
if (BAS_LMA != BAS_IN_RAM)
|
||||||
|
{
|
||||||
|
clear_datasegment();
|
||||||
|
}
|
||||||
|
|
||||||
init_gpio();
|
init_gpio();
|
||||||
init_serial();
|
init_serial();
|
||||||
|
|||||||
Reference in New Issue
Block a user