I have been trying to develop for the MAX32690EVKIT. However, I've spent a very long time on this and still am running into problems. At this point, I have decided that I need to ask for help. The story up to this point:
The first problem that I ran into was that no tools seem to know how to program it. I discovered that pyocd can talk to the SOC's memory and halt the core. Using pyocd, I was able to read and write to the flash controller and program the memory. Using that process as a guide, I spent a long time writing my own program to flash it. Using libusb, to talk to the HID device that the MAX32625PICO exposes itself as, I was able to flash binary images into the onboard flash.
The problem now is that nothing I write to 0x1000_0000 seems to get executed. If I flash a very simple program that only uses 1 simple THUMB instruction to spin at 0x1000_0000 and use pyocd to halt and dump the core registers, the program counter is always sitting at 0x0000_0222. I suspect it is spinning there in the ROM. Before I overwrote it, I backed up the contents of the flash to a file. If I write that file back, it will run and execute the preloaded blinkled demo program. Then, if I use pyocd to halt and dump the program counter, it is in the range of the flash at 0x1000_0000, as I would expect.
This suggests to me that the ROM is refusing to jump to my program and that suggests a secure boot issue. The docs are vague on this. The MAX32690 seems to be available in versions both with and without secure boot. Which version of the SOC is included in the EVAL kit is also vague. However, given that it is said that the EVAL kit is loaded with the test key, I suspect it is enabled on that version. I do not require or desire secure boot for my application. I tried to use the provided utilities to create an .sbin file with the test key. I then tried to flash that file to the SOC, but it still didn't work. The .sbin file seems to be my program with the .sig appended to the end.
Interestingly, if I attempt to disassemble the backup image that I took from the flash, it doesn't seem to contain reasonable THUMB instructions at the start. This suggests to me there is some kind of binary header on it instead and that the ROM is jumping elsewhere into the binary image. Is this a feature of the secure boot system? Section 3.2.1 of the MAX32690 users manual says that it jumps to 0x1000_0000. This is also different from the format of the .sbin file.
I'm very confused at this point and need some guidance as to where to go from here? The short version of my question: How the heck do you program this thing?
[edited by: GenevaCooper at 10:48 PM (GMT -5) on 21 Nov 2023]