bei dieser funktion
1 | void dma_read_init_file(void){
|
2 | u8 tmp0 ;
|
3 | u8 tmp1 ;
|
4 | u8 info_status[5]={9,9,9,9,9};
|
5 | fat_res=f_open(&File[0], "info_mp3.txt", FA_OPEN_EXISTING | FA_READ);
|
6 | fat_res = f_read(&File[0], info_status, 40, &fat_bitct);
|
7 | f_close(&File[0]);
|
8 |
|
9 | if (fat_res== FR_OK) {
|
10 | memcpy(&sel_dir,info_status,1);
|
11 | memcpy(&tmp0,info_status+1,1);
|
12 | memcpy(&tmp1,info_status+2,1);
|
13 | }
|
14 | sel_file=tmp0<<8;
|
15 | sel_file|=tmp1;
|
16 | return;
|
17 | }
|
stimmt irgendwas nicht. Vermutlich wird der stack-pointer überschrieben.
Wieso?
Die gleichartige write-Funktion geht.