add more debugging - still crashes on read

This commit is contained in:
wilberforce 2017-03-21 22:13:10 +13:00
parent 0ce596887b
commit 9541573f58
7 changed files with 95 additions and 29 deletions

2
flash-all.bat Executable file
View File

@ -0,0 +1,2 @@
..\esp-idf\components\esptool_py\esptool\esptool.py --chip esp32 --port COM3 --baud 921600 --before esp32r0 --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 app/build/bootloader/bootloader.bin 0x10000 ../Espruino/espruino_esp32.bin 0x8000 app/build/partitions_singleapp.bin
pause

2
flash-erase.bat Executable file
View File

@ -0,0 +1,2 @@
..\esp-idf\components\esptool_py\esptool\esptool.py --chip esp32 --port COM3 --baud 921600 --before esp32r0 erase_flash
pause

2
flash-fast-two_ota.bat Executable file
View File

@ -0,0 +1,2 @@
c:\Users\rhys\OneDrive\esp32\esp-idf\components\esptool_py\esptool\esptool.py --chip esp32 --port COM3 --baud 921600 --before esp32r0 --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 ../../template/build/bootloader/bootloader.bin 0x10000 ../../Espruino/espruino_esp32.bin 0x8000 partitions_two_ota.bin
pause

2
flash-fs.bat Executable file
View File

@ -0,0 +1,2 @@
..\esp-idf\components\esptool_py\esptool\esptool.py --chip esp32 --port COM3 --baud 921600 --before esp32r0 --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x200000 fs.img
pause

4
flash.bat Executable file
View File

@ -0,0 +1,4 @@
..\esp-idf\components\esptool_py\esptool\esptool.py --chip esp32 --port COM3 --baud 921600 --before esp32r0 --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x10000 ../Espruino/espruino_esp32.bin
rem ..\esp-idf\components\esptool_py\esptool\esptool.py --chip esp32 --port COM3 --baud 921600 --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x10000 ../Espruino/espruino_esp32.bin
REM ..\esp-idf\components\esptool_py\esptool\esptool.py --chip esp32 --port COM3 --baud 921600 --before esp32r0 --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x10000 ../Espruino/espruino_esp32.bin
pause

View File

@ -12,12 +12,14 @@
#define FS_SECTOR_SIZE 4096
#define FS_BLOCK_SIZE 1
// 1MB = 1024*1024 / 4096 = 256
// 0-33 format
#define FS_SECTOR_COUNT 256
// Hardcode page of 4Mb memory
uint32_t fs_flash_base=0;
int read_on=true;
#define FS_FLASH_BASE 0x200000
/*--------------------------------------------------------------------------
Public Functions
@ -35,8 +37,11 @@ DSTATUS disk_initialize (
{
NOT_USED(drv);
jsWarn("Flash Init - disk_initialize %d",drv);
return 0;
if ( fs_flash_base == 0 ) {
jsError("Need to set Flash address with E.flashFatFs");
return FR_NOT_READY;
}
return RES_OK;
}
/*-----------------------------------------------------------------------*/
@ -49,7 +54,7 @@ DSTATUS disk_status (
{
NOT_USED(drv);
jsWarn("Flash Init - disk_status %d",drv);
return 0;
return RES_OK;
}
@ -69,11 +74,15 @@ DRESULT disk_read (
uint32_t Memory_Offset;
Transfer_Length = count * FS_SECTOR_SIZE;
Memory_Offset = sector * FS_SECTOR_SIZE + FS_FLASH_BASE;
Memory_Offset = sector * FS_SECTOR_SIZE + fs_flash_base;
jsWarn("Flash disk_read sector: %d, buff: mem: %d buff: %d len: %d", sector, Memory_Offset, buff, Transfer_Length);
jshFlashRead( buff, Memory_Offset, Transfer_Length);
if ( ( read_on && sector > 10 ) || ( sector <= 10 ) ){
jshFlashRead( buff, Memory_Offset, Transfer_Length);
}
else {
jsWarn("reading disabled...%d", read_on );
}
return RES_OK;
}
@ -93,7 +102,7 @@ DRESULT disk_write (
uint32_t Memory_Offset;
Transfer_Length = count * FS_SECTOR_SIZE;
Memory_Offset = sector * FS_SECTOR_SIZE + FS_FLASH_BASE;
Memory_Offset = sector * FS_SECTOR_SIZE + fs_flash_base;
jsWarn("Flash disk_write sector: %d, buff: mem: %d buff: %d len: %d", sector, Memory_Offset, buff, Transfer_Length);
jshFlashErasePage(Memory_Offset);
@ -143,4 +152,52 @@ DRESULT disk_ioctl (
}
return res;
}l
}
/****/
extern void jsfsReportError(const char *msg, FRESULT res);
extern bool jsfsInit();
int flashFatFsInit( FATFS * jsfsFAT, int addr, int format) {
FRESULT res;
// sanity check here?
fs_flash_base=addr;
if ( format == 1 ) {
jsError("E.flashFatFs formatting...");
memset(jsfsFAT, 0, sizeof(FATFS));
if ((res = f_mount(jsfsFAT, "", 0)) != FR_OK) {
jsfsReportError("Unable to format", res);
return false;
}
//res = f_mkfs("/", 1, 0);
res = f_mkfs("", 1, 0); /* path, Partitioning rule 0:FDISK, 1:SFD super floppy , size of allocation unit */
if (res != FR_OK) {
jsError("[f_mkfs] Error %d\r\n", res);
jsfsReportError("Format error:",res);
}
}
if ( format == 2 ) {
jsWarn("jsfsInit: %d", jsfsInit());
}
if ( format == 20 ) {
read_on=false;
jsWarn("Disable Read %d", read_on );
}
if ( format == 21 ) {
read_on=true;
jsWarn("Enable Read %d", read_on );
}
if ( format == 4 ) {
DWORD fre_clust;
FATFS* ptr=jsfsFAT;
res = f_getfree("", &fre_clust, &ptr);
jsWarn("fre_clust: %d", fre_clust);
}
return true;
}

View File

@ -586,44 +586,41 @@ console.log(require("fs").readdirSync());
E.flashFatFs(0x200000,0);
dd if=/dev/zero of=fat.fs.img bs=1024 count=1024
mkfs.vfat -v -F 12 -S 4096 -s 1 fat.fs.img
f=require("Flash");
f.read(10,0x200000);
b=0x300000;
function rSect(s){
uintArray=f.read(64,b+s*4096);
console.log(String.fromCharCode.apply(null, uintArray));
}
rSect(34);
//Format
E.flashFatFs(0x200000,1);
//Init
E.flashFatFs(0x200000,2);
E.flashFatFs(0x300000,2);
var files = require("fs").readdirSync();
require("fs").writeFileSync("hello.txt", "Hello World");
require("fs").writeFileSync("hello.txt", "Hello World\nHello World\nNew line\n");
console.log(require("fs").readFileSync("hello.txt")); // prints "Hello World"
E.flashFatFs(0x200000,20); // read off
E.flashFatFs(0x200000,21); // read on
```
*/
extern void flashFatFsInit( FATFS * jsfsFAT, int addr, int format);
void jswrap_E_flashFatFs(int addr, int format) {
jsWarn("E.flashFatFs addr: %d format: %d", addr,format);
FRESULT res;
if ( format == 1 ) {
jsError("E.flashFatFs formatting...");
if ((res = f_mount(&jsfsFAT, "", 0)) != FR_OK) {
jsfsReportError("Unable to mount SD card", res);
return false;
}
res = f_mkfs("/", 0, 0); /* path, Partitioning rule 0:FDISK, 1:SFD super floppy , size of allocation unit */
if (res != FR_OK) {
jsError("[f_mkfs] Error %d\r\n", res);
jsfsReportError("Format error:",res);
}
}
if ( format == 2 ) {
jsWarn("jsfsInit: %d", jsfsInit());
}
flashFatFsInit( &jsfsFAT, addr, format);
}
#endif