
i) How does the bootloader core logic call these functions, are they registered somewhere? Which is that middle layer, that calls these functions?
There is no such things as "core logic" or "middle layer". There is only ony big binary which gets linked together from several objet files / libraries. We use standard C or assembler function calls to call any function we need.
I guess I could not make my point clear. i) From what I understand is that functions like "reset timer", "serial_puts" etc are called anywhere from the code logic as they are global. Is that correct? Their implementation is local to the board architecture. ii) Where does interrupt_init get called from? This is supposed to be a one time call. This is what I was refering to the "core logic".
Thanks & Regards, Ajay