на счет ld_script не уверен... хотя надо поизучать, чем отличаются эти скрипты для МК с флешем больше 64К... хотя все равно ведь прошивка и до 32К не дотягивает...
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
ARV писал(а):скрипта на 10 килобайт я не припоминаю...
я несколько раз проделал одну и ту же операцию, факт остается фактом.ARV писал(а): Как связана карта со скриптом?!
Код: Выделить всё
ПОТЁКИ
CLR
_R=FF VR=FF
VD=FF VD/06 VD+01
RPT
RPT
VT=RD VT%06 VT*VD
LVT=VC
VC=VT
V1=50
RPT
V0=TC
MRD
RPT
MR=01
PP=V0 PB=FF
MR=00
I_R=00 IRD<15 PI=VC EI EI
I_G=00 IRD<15 PI=VC EI EI
I_B=00 IRD<15 PI=VC EI EI
PM=V0
LV0
WT=07
LV1
INF
Да, дело в нем, после выполнения скрипта мультирун printf_P перестает работать однозначно. Это и в протеусе видно, после нескольких безрезультатных попыток вызова printf_P происходит ребут контроллера. Уж не помню что протеус пишет, но выход за пределы SRAM. Вот на этом участке кодаARV писал(а):Dimon456, вы попробуйте свой диагностический вывод убрать совсем - может, дело в нем?
Код: Выделить всё
#define SD_present() sd_check()
BYTE sd_check(void) {
BYTE i = 100;
do {
send_cmd(CMD55, 0);
if(send_cmd(ACMD41, 0x40000000) == 0) return 0;
} while(--i);
return 1;
}Код: Выделить всё
if(pf_open(script.fname) == FR_OK){Код: Выделить всё
FRESULT pf_open (
const char *path /* Pointer to the file name */
)
и в зависимости от возврата
typedef enum {
FR_OK = 0, /* 0 */ успешное завершение функции
FR_DISK_ERR, /* 1 */ произошла невосстановимая ошибка на низком уровне (функции I/O диска)
FR_NOT_READY, /* 2 */ некорректного извлечения носителя или ошибка функции disk_initialize
FR_NO_FILE, /* 3 */ файл не найден
FR_NOT_OPENED, /* 4 */ файл не был открыт
FR_NOT_ENABLED, /* 5 */ не смонтирован диск
FR_NO_FILESYSTEM /* 6 */ на диске нет допустимого тома с файловой системой FAT
} FRESULT;
уже выбирать то или иное действие