Index: pic_bootloader.cpp
===================================================================
--- pic_bootloader.cpp (revision 2023)
+++ pic_bootloader.cpp (working copy)
@@ -187,7 +187,7 @@
switch (memory)
{
case MEM_FLASH:
- return 2;
+ return 32;
case MEM_EEPROM:
return 8;
case MEM_ID:
@@ -215,11 +215,17 @@
{
show_progress(OP_ERASING, type(), memory, 0);
open(params);
- // erase 0x800-0x4000 //!!! 18f24j50 change
+ // erase 0x800-0x4000
command.erase_flash.echo = ++command_id;
command.erase_flash.addr_hi = 0x08;
command.erase_flash.addr_lo = 0x00;
- command.erase_flash.size_x64 = 0x0D;
+ command.erase_flash.size_x64 = 0xE0;
+ transaction(&command, &response);
+ // erase 0x4000-0x6000
+ command.erase_flash.echo = ++command_id;
+ command.erase_flash.addr_hi = 0x40;
+ command.erase_flash.addr_lo = 0x00;
+ command.erase_flash.size_x64 = 0x80;
transaction(&command, &response);
close();
show_progress(OP_ERASING, type(), memory, OPERATION_DONE);
@@ -379,9 +385,8 @@
command.write_flash.echo = ++command_id;
command.write_flash.addr_hi = (unsigned char)((address >> 8) & 0xFF);
command.write_flash.addr_lo = (unsigned char)(address & 0xFF);
- command.write_flash.flush = (unsigned char) 0xff;
// size must be 8 dividable
- //eAssert(size % 8 == 0);
+ eAssert(size % 8 == 0);
command.write_flash.size8 = size;
transaction(&command, &response);
show_progress(OP_PROGRAMMING, type(), memory, buffer->progress());