kasbert / JQ6500-tool

Tool for uploading and downloading JQ6500 MP3 voice module

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JQ6500 file system details

rma-x opened this issue · comments

commented

I have written a similar tool for the JQ6500, but in C and a bit earlier:
https://chiselapp.com/user/rmax/repository/jq6500

For that, I found out some more details about the "file system" header at offset 0x40000 that I want to share with you:

The meta data of the JQ6500 file system consists of little endian 32 bit unsigned integers that have the following meaning:

0 .. 3: Number of subdirectories
4 .. 7: Offset of subdir 1 (A)
...
A .. (A+3): Number of files in this dir
(A+4) .. (A+7): Offset of file 1 (B)
(A+8) .. (A+11): Size of file 1 (C)
...
(B) .. (B+C): MP3 data of file 1

So, for the first example hex dump in your readme, this means:

05000000: There are five directories in the file system
18000400: The 1st directory begins at 0x00040018
ec420600: The 2nd directory begins at 0x000642ec (after the data of dir #1)
f0420600: The 3rd directory begins at 0x000642f0
f4420600: The 4th directory begins at 0x000642f4
f8420600: The 5th directory begins at 0x000642f8
01000000: The 1st directory contains 1 file

Offsets for dirs and files can point anywhere in the flash. They don't need to be in any particular order and may also point to addresses below 0x40000.

But for using the area below 0x40000 for MP3s (at the expense of the embedded CD image) I found another trick to be more useful: The flash content wraps around at the end, so you can treat the flash as a continuous address space going from 0x40000 to 0x240000 (for the 16Mbit/2MByte model).

Thank you