diff Bootloader/flash.c @ 337:932ef3bbd4d7

Working mk20dx256vlh7 usb flash support
author Jacob Alexander <haata@kiibohd.com>
date Sat, 30 May 2015 00:02:22 -0700
parents 7be3475fc9fa
children
line wrap: on
line diff
--- a/Bootloader/flash.c	Mon May 25 17:50:32 2015 -0700
+++ b/Bootloader/flash.c	Sat May 30 00:02:22 2015 -0700
@@ -18,6 +18,7 @@
 // ----- Local Includes -----
 
 #include "mchck.h"
+#include "debug.h"
 
 
 
@@ -73,6 +74,13 @@
 
 int flash_erase_sector( uintptr_t addr )
 {
+#ifdef FLASH_DEBUG
+	// Debug
+	print("Erasing Sector: address(");
+	printHex( addr );
+	printNL(")");
+#endif
+
 	if ( addr < (uintptr_t)&_app_rom && flash_ALLOW_BRICKABLE_ADDRESSES != 0x00023420 )
 		return (-1);
 	FTFL.fccob.erase.fcmd = FTFL_FCMD_ERASE_SECTOR;
@@ -83,6 +91,15 @@
 
 int flash_program_section_longwords( uintptr_t addr, size_t num_words )
 {
+#ifdef FLASH_DEBUG
+	// Debug
+	print("Programming Sector: address(");
+	printHex( addr );
+	print(") longwords(");
+	printHex( num_words );
+	printNL(")");
+#endif
+
 	FTFL.fccob.program_section.fcmd = FTFL_FCMD_PROGRAM_SECTION;
 	FTFL.fccob.program_section.addr = addr;
 	FTFL.fccob.program_section.num_words = num_words;
@@ -92,6 +109,15 @@
 
 int flash_program_section_phrases( uintptr_t addr, size_t num_phrases )
 {
+#ifdef FLASH_DEBUG
+	// Debug
+	print("Programming Sector: address(");
+	printHex( addr );
+	print(") phrases(");
+	printHex( num_phrases );
+	printNL(")");
+#endif
+
 	FTFL.fccob.program_section.fcmd = FTFL_FCMD_PROGRAM_SECTION;
 	FTFL.fccob.program_section.addr = addr;
 	FTFL.fccob.program_section.num_words = num_phrases;
@@ -101,7 +127,7 @@
 
 int flash_program_sector( uintptr_t addr, size_t len )
 {
-	if ( len != FLASH_SECTOR_SIZE )
+	if ( len != USB_DFU_TRANSFER_SIZE )
 		return 1;
 
 #if defined(_mk20dx128vlf5_)
@@ -140,7 +166,7 @@
 
 void *flash_get_staging_area( uintptr_t addr, size_t len )
 {
-	if ( (addr & (FLASH_SECTOR_SIZE - 1)) != 0 || len != FLASH_SECTOR_SIZE )
+	if ( (addr & (USB_DFU_TRANSFER_SIZE - 1)) != 0 || len != USB_DFU_TRANSFER_SIZE )
 		return (NULL);
 	return (FlexRAM);
 }