Edit linker script and fix read function in SDIO
This commit is contained in:
		| @@ -246,15 +246,19 @@ DRESULT SDIO_disk_read(BYTE *buff, DWORD sector, UINT count){ | ||||
|  | ||||
| 		SDIO->DLEN = (1 << BLOCKSIZE); | ||||
|  | ||||
| 		/* Init Transfer */ | ||||
| 		if (SDIO_send_read_block_CMD17(addr)) { | ||||
| 			return RES_ERROR; | ||||
| 		} | ||||
|  | ||||
| 		SDIO->ICR = SDIO_ICR_CCRCFAILC | SDIO_ICR_DCRCFAILC | SDIO_ICR_CTIMEOUTC | SDIO_ICR_DTIMEOUTC | | ||||
| 						SDIO_ICR_TXUNDERRC | SDIO_ICR_RXOVERRC | SDIO_ICR_CMDRENDC | SDIO_ICR_CMDSENTC | SDIO_ICR_DATAENDC | | ||||
| 						SDIO_ICR_STBITERRC | SDIO_ICR_DBCKENDC | SDIO_ICR_SDIOITC | SDIO_ICR_CEATAENDC; | ||||
| 		SDIO->DCTRL = (BLOCKSIZE<<4) | SDIO_DCTRL_DTDIR | /*SDIO_DCTRL_DMAEN |*/ SDIO_DCTRL_DTEN; | ||||
|  | ||||
|  | ||||
| 				/* Init Transfer */ | ||||
| 		if (SDIO_send_read_block_CMD17(addr)) { | ||||
| 			SDIO->DCTRL = 0; | ||||
| 			return RES_ERROR; | ||||
| 		} | ||||
|  | ||||
| 		debug=0; | ||||
| 		counter = 0; | ||||
| 		while (counter < (1<<(BLOCKSIZE-2)) || !(SDIO->STA & (SDIO_STA_DBCKEND | SDIO_STA_DATAEND))) { // TODO: Handle errors | ||||
|   | ||||
| @@ -152,7 +152,7 @@ SECTIONS | ||||
|  | ||||
|   /* Uninitialized data section */ | ||||
|   . = ALIGN(4); | ||||
|   .bss : | ||||
|   .bss (NOLOAD): | ||||
|   { | ||||
|     /* This is used by the startup in order to initialize the .bss secion */ | ||||
|     _sbss = .;         /* define a global symbol at bss start */ | ||||
| @@ -167,7 +167,7 @@ SECTIONS | ||||
|   } >RAM | ||||
|  | ||||
|   /* User_heap_stack section, used to check that there is enough RAM left */ | ||||
|   ._user_heap_stack : | ||||
|   ._user_heap_stack (NOLOAD): | ||||
|   { | ||||
|     . = ALIGN(4); | ||||
|     PROVIDE (heap_low = .); /* for _sbrk */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user