Real programmers write hex straight into mask-rom. all this namby pamby stuff with high level languages , compilers , flash , retry , breakpoints debuggers is for beginners. Real programmers know the whole instruction set in its hexadecimal form ( opcodes are for 'intermediate programmers' ) and write flawless, elegant code that you can directly put into mask rom. It will work first time right. Anybody that does it different is a 'wanna-be' (that includes myself ).
with your postulate, i believe everybody is wannabe including the "Real programmers write hex straight into mask-rom". the only one i know that doesnt make mistake and "work first time right" is God. pls name "human" if you know any. i'm positive it wont be "Bill" or "Steve"
Well, without claiming any titles --any titles at all-- I have recently done that!
Specifically, I patched the
DS1000EUpdate.RGL v2.06 (the Rigol firmware update binary file), replacing a code chunk with a custom one, inspired by
Krater's Homebrew work on the firmware v2.05.
What I did, was to:
1. Spot the chunk of code to be replaced in the disassembly listing of the image loaded into the SDRAM system space,
2. Write in assembly the piece of code I needed to replace the original one with,
3. Convert the instructions to op-codes,
4. Manually calculate the source and the target function and buffer offsets,
5. Write down the corrected op-codes, without invoking any Blackfin assemblers or linkers,
6. Calculate the offsets of the new chunk of code within the executable image file (the "DS1000EUpdate.RGL") and replace the original code chunk,
7. Confirm in disassembler that the new image works as expected,
8. Load the new firmware and, finally,
9. Successfully test it!
How much time did all this take for me to do it? Almost two working days (a day and a half, actually)!
Why I did I choose that path? Because of the minimal time it required from me to do it, by only using the Blackfin documentation (the ADSP Instruction Set, the Hardware and the Programming references and the Boot-ROM Engineer Note), without having to get myself to learn the Analog Devices VisualDSP platform.
So, yes, there certainly are many ways for a job to be done!
-George