ДА!!
Все оказалось не так то просто!!!
Все дело в секции _Text (куда на сколько я понял помещаеться сама программа)
Если грузить ее в накристалку то все работает!!Но если же грузить ее в СРАМ даже для простейшего проэкта - ошибка!!
Я порылся в исходниках бутлодера и нашел вот какую вещь
Код
static int8_t flash_get_srec_line (uint8_t *buf)
{
uint8_t c;
int8_t count = 0;
while (1) {
c = *flbuf++;
print ("\r\nC=0x");
putnum (c);
if (c == 0xD) {
/* Eat up the 0xA too */
c = *flbuf++;
return 0;
}
*buf++ = c;
count++;
print ("\r\nCOUNT=0x");
putnum (count);
if (count > SREC_MAX_BYTES)
return LD_SREC_LINE_ERROR;
}
}
SREC_MAX_BYTES = 78
flbuf = (uint8_t*)FLASH_IMAGE_BASEADDR - это адрес с которого начинаеться чтение, у меня 0х87000000(флэшка)
это кусок бутлодера (он не большой), весь он приведен в приложении.
Так вот как вы видите в этой функции опрашиваеться flbuf через с и как тока будет найдена синхропосылка 0хD мы вываливаемся из нее.
Я посмотрел терминалом (полностью листинг приведен в приложении) что у нас в с и выяснил удивительную штуку:
Код
EDK Bootloader:
C=0x00000053
COUNT=0x00000001
C=0x00000030
COUNT=0x00000002
C=0x00000031
COUNT=0x00000003
C=0x00000033
COUNT=0x00000004
C=0x00000030
COUNT=0x00000005
C=0x00000030
COUNT=0x00000006
C=0x00000030
COUNT=0x00000007
C=0x00000030
COUNT=0x00000008
C=0x00000034
COUNT=0x00000009
C=0x00000044
COUNT=0x0000000a
C=0x00000035
COUNT=0x0000000b
C=0x00000039
COUNT=0x0000000c
C=0x00000035
COUNT=0x0000000d
C=0x00000046
COUNT=0x0000000e
C=0x00000034
COUNT=0x0000000f
C=0x00000032
COUNT=0x00000010
C=0x00000034
COUNT=0x00000011
C=0x00000046
COUNT=0x00000012
C=0x00000034
COUNT=0x00000013
C=0x00000046
COUNT=0x00000014
C=0x00000035
COUNT=0x00000015
C=0x00000034
COUNT=0x00000016
C=0x00000032
COUNT=0x00000017
C=0x00000045
COUNT=0x00000018
C=0x00000036
COUNT=0x00000019
C=0x00000035
COUNT=0x0000001a
C=0x00000036
COUNT=0x0000001b
C=0x00000043
COUNT=0x0000001c
C=0x00000036
COUNT=0x0000001d
C=0x00000036
COUNT=0x0000001e
C=0x00000032
COUNT=0x0000001f
C=0x00000045
COUNT=0x00000020
C=0x00000037
COUNT=0x00000021
C=0x00000033
COUNT=0x00000022
C=0x00000037
COUNT=0x00000023
C=0x00000032
COUNT=0x00000024
C=0x00000036
COUNT=0x00000025
C=0x00000035
COUNT=0x00000026
C=0x00000036
COUNT=0x00000027
C=0x00000033
COUNT=0x00000028
C=0x00000037
COUNT=0x00000029
C=0x00000033
COUNT=0x0000002a
!!!!C=0x0000000d
Bootloader: Processed (0x)00000001 S-records
C=0x00000053
COUNT=0x00000001
C=0x00000033
COUNT=0x00000002
C=0x00000030
.
.
.
.
.
.
.
COUNT=0x0000002e
!!!!C=0x0000000d
Bootloader: Processed (0x)00000021 S-records
C=0x000000b0
COUNT=0x00000001
C=0x000000b0
COUNT=0x00000002
C=0x000000b0
COUNT=0x00000003
C=0x000000b0
COUNT=0x00000004
C=0x000000b0
COUNT=0x00000005
C=0x000000b0
COUNT=0x00000006
C=0x000000b0
COUNT=0x00000007
C=0x000000b0
COUNT=0x00000008
C=0x000000b0
COUNT=0x00000009
C=0x000000b0
COUNT=0x0000000a
C=0x000000b0
COUNT=0x0000000b
C=0x000000b0
COUNT=0x0000000c
C=0x000000b0
COUNT=0x0000000d
C=0x000000b0
COUNT=0x0000000e
C=0x000000b0
COUNT=0x0000000f
C=0x000000b0
COUNT=0x00000010
C=0x000000b0
COUNT=0x00000011
C=0x000000b0
COUNT=0x00000012
C=0x000000b0
COUNT=0x00000013
C=0x000000b0
COUNT=0x00000014
C=0x000000b0
COUNT=0x00000015
C=0x000000b0
COUNT=0x00000016
C=0x000000b0
COUNT=0x00000017
C=0x000000b0
COUNT=0x00000018
C=0x000000b0
COUNT=0x00000019
C=0x000000b0
COUNT=0x0000001a
C=0x000000b0
COUNT=0x0000001b
C=0x000000b0
COUNT=0x0000001c
C=0x000000b0
COUNT=0x0000001d
C=0x000000b0
COUNT=0x0000001e
C=0x000000b0
COUNT=0x0000001f
C=0x000000b0
COUNT=0x00000020
C=0x000000b0
COUNT=0x00000021
C=0x000000b0
COUNT=0x00000022
C=0x000000b0
COUNT=0x00000023
C=0x000000b0
COUNT=0x00000024
C=0x000000b0
COUNT=0x00000025
C=0x000000b0
COUNT=0x00000026
C=0x000000b0
COUNT=0x00000027
C=0x000000b0
COUNT=0x00000028
C=0x000000b0
COUNT=0x00000029
C=0x000000b0
COUNT=0x0000002a
C=0x000000b0
COUNT=0x0000002b
C=0x000000b0
COUNT=0x0000002c
C=0x000000b0
COUNT=0x0000002d
C=0x000000b0
COUNT=0x0000002e
C=0x000000b0
COUNT=0x0000002f
C=0x000000b0
COUNT=0x00000030
C=0x000000b0
COUNT=0x00000031
C=0x000000b0
COUNT=0x00000032
C=0x000000b0
COUNT=0x00000033
C=0x000000b0
COUNT=0x00000034
C=0x000000b0
COUNT=0x00000035
C=0x000000b0
COUNT=0x00000036
C=0x000000b0
COUNT=0x00000037
C=0x000000b0
COUNT=0x00000038
C=0x000000b0
COUNT=0x00000039
C=0x000000b0
COUNT=0x0000003a
C=0x000000b0
COUNT=0x0000003b
C=0x000000b0
COUNT=0x0000003c
C=0x000000b0
COUNT=0x0000003d
C=0x000000b0
COUNT=0x0000003e
C=0x000000b0
COUNT=0x0000003f
C=0x000000b0
COUNT=0x00000040
C=0x000000b0
COUNT=0x00000041
C=0x000000b0
COUNT=0x00000042
C=0x000000b0
COUNT=0x00000043
C=0x000000b0
COUNT=0x00000044
C=0x000000b0
COUNT=0x00000045
C=0x000000b0
COUNT=0x00000046
C=0x000000b0
COUNT=0x00000047
C=0x000000b0
COUNT=0x00000048
C=0x000000b0
COUNT=0x00000049
C=0x000000b0
COUNT=0x0000004a
C=0x000000b0
COUNT=0x0000004b
C=0x000000b0
COUNT=0x0000004c
C=0x000000b0
COUNT=0x0000004d
C=0x000000b0
COUNT=0x0000004e
!!!!C=0x000000b0
COUNT=0x0000004fERROR: SREC line is corrupted
!!!! - я пометил синхропосылки
с залипло на значении b0 C=0x000000b0 и все 78 раз с флэшки читаеться одно и тоже и соответственно синхропосылка 0хD не найдена и мы вываливаемся с ошибкой!!
От сюда вопрос что это может быть??
Я неправильно пишу во флэшь??
Не правильно читаю из флэшь??
Или что нибудь не правильно еще??
Подскажите!!Этот бутлодер уже меня замучил!!!
Файлик в приложение