Skip to content
Snippets Groups Projects
Select Git revision
  • a896951a9a8d8585d094e5ee6d7d37ff17d1b73e
  • wip-bootstrap default
  • dualcore
  • ch3/leds
  • ch3/time
  • master
6 results

moduerrno.c

Blame
  • main.c 5.24 KiB
    #include "bootloader.h"
    
    #include "card10.h"
    #include "led.h"
    #include "pb.h"
    #include "pmic.h"
    
    #include "board.h"
    #include "crc.h"
    #include "crc16-ccitt.h"
    #include "ff.h"
    #include "flc.h"
    #include "i2c.h"
    #include "icc.h"
    #include "mxc_config.h"
    #include "mxc_delay.h"
    #include "mxc_sys.h"
    
    #include <stdbool.h>
    #include <stddef.h>
    #include <stdio.h>
    #include <string.h>
    
    #define GPIO_PORT_IN PORT_1
    #define GPIO_PIN_IN PIN_6
    
    #define PARTITION_START (0x10000000 + 64 * 1024)
    #define PARTITION_END (0x10000000 + 1024 * 1024 - 1)
    
    DIR dir;
    FATFS FatFs;
    
    bool mount(void)
    {
    	FRESULT res;
    	res = f_mount(&FatFs, "/", 0);
    	if (res != FR_OK) {
    		printf("f_mount error %d\n", res);
    		return false;
    	}
    
    	res = f_opendir(&dir, "0:");
    	if (res != FR_OK) {
    		printf("f_opendir error %d\n", res);
    		return false;
    	}
    
    	return true;
    }
    
    bool check_integrity(void)
    {
    	FIL file;
    	UINT readbytes;
    	char *filename = "card10.bin";
    	uint8_t data[512];
    	FRESULT res;
    
    	res = f_open(&file, filename, FA_OPEN_EXISTING | FA_READ);
    	if (res != FR_OK) {
    		bootloader_display_line(2, "card10.bin not found", 0xffff);
    		printf("f_open error %d\n", res);
    		return false;
    	}
    
    	uint16_t crcval = 0;
    	do {
    		res = f_read(&file, data, sizeof(data), &readbytes);
    		if (res != FR_OK) {
    			printf("f_read error %d\n", res);