OrangeJewce,
No, I'm not that concerned about there being an aditional checksum, that would be an extra-work feature that would have required cooperation between teensy and winAVR or an extra added by ic07 (which hasn't been mentioned, so hasn't happened.) so it is a low probability.
With regards to switching sections of the compiled hex, all layers have been implemented as part of the same array and are contiguous.
The map I have here was built off of the dev tree and states that _kb_layout starts at 0x00ac, the next symbol being at 0x0154. that is 168 bytes.
The layer macro defines 84 bytes of data per layer, 168/84 is 2. Coincidentally, thats the number of layers currently in the dev-branch, so we've found all the keymap definitions. (though I've not fully explained to my satisfaction _kb_layout_press and _kb_layout_release. erg. Now I have. _kb_layout is of type uint8_t, the other two is of type kbfun_funptr_t (pointer to function). effective but fun to handle. Examination shows repetition at 16-bit intervals. But not of a sequence that ties up to the map's definition of the functions I was expecting. I'll do some more digging later when it isn't approching 0100.
Update: The value stored in the press and release tables is the "word address" of the function in flash, while the map has the "byte address". the byte address from the map divided by 2 gives the value in the table. Note that the avr is a little endian device, so an address of 0x0b7e divided by two is 0x05bf and would appear in the .hex as bf05.
Summary:
#1: Don't worry about checksums, we'll cross that bridge if we meet it.
#2: We also know now where all the keymapping is, even if we don't know the right values for the press and release functions yet.
#3: Values of positions will change on each compile, so if we can work out how to extract the values programatically from the map, that would be best.
ic07,
The definition of the Layer macro is the fundamental mapping of what keys are where in the array, so that is going to be critical : )
So far, so good.
Sorry about any typos, dyslexia and late nights don't mix.