Forums

need help with adsp21489 ezkit programming

Started by thejmack 4 weeks ago8 replieslatest reply 2 weeks ago73 views

Hello,

I reach out to the community in desperation :). I recently purchased the ADSP 21489 EZKIT to start some hobby DSP projects using CCS 2.8.3. Can anyone recommend a good place to get help regarding basic programming for the ADSP 21489. Are the other ADSP 214xx compatible with the ADSP 21489? If someone could even provide some help with basic examples on programming the ADSP 21489, that should be enough to get me started. At this point any simple code would help.

Thank you all,

Arj

[ - ]
Reply by drmikeMay 28, 2019

Howdy Arj,

Check out this page: https://download.analog.com/tools/SWExamples/all_e...

I think there is a package of sample code there for that EZKIT.  Look at the other sample codes for blinking LED things and see if you can modify it to work for that EZKIT.  It should help you at least get started.

Dr. mike

[ - ]
Reply by thejmackMay 28, 2019

Thanks Dr. Mike,

Unfortunately, I have already gone down that path. Whenever I try to modify say e.g. ADSP21479 for the ADSP21489, I get an error from CSS saying "trying to load ADSP21479 code onto ADSP21489". I think they have different drivers and I guess I have to figure out which part of the code needs to be changed.


Thanks for your help.

Arj

[ - ]
Reply by drmikeMay 28, 2019

It's possible the memory map is different too.  Start looking at the linker command files.  It tells the compiler where to put code, where peripheral space is and so on.  Use the linker command file for your board with the other boards program and it should put things in the correct place.  The drivers might be hard wired, but usually there is an include file that fixes all that.  Just be patient and dig into it one step at a time.  These things are complex and it takes a lot of time to learn all the individual idiosyncrasies of each processor.


Good Luck!

mike

[ - ]
Reply by thejmackMay 28, 2019

yes tell me about it. Ive been pulling out the little hair that I have. I am quite experienced at programming and have enough math skills for the DSP part, but this hardware programming without appropriate manuals is a little crazy. Thanks for your help. Ill keep at it.

Best wishes,

Arj

[ - ]
Reply by chalilJune 13, 2019

ADI had extended the SigmaStudio GUI programming environment for SHARCs. Not sure if this is still live. try https://www.analog.com/en/design-center/evaluation... hope this would some of your hair ;)

-Chalil


[ - ]
Reply by rbjMay 28, 2019

Do you have an ICE-1000 or some JTAG emulator with this EZKIT?

If you don't use a JTAG emulator, I s'pose ADI provides some means of loading and running code, but do you have the ability to debug with breakpoints and single-stepping your code without a some kinda JTAG emulator?

Sorry, my experience is limited, but at one time I knew how to assemble, link, load, run, and debug SHArC code with an ICE-1000 and VDSP+.  But I dunno how you do it without an ICE.  And I haven't used Crosscore yet.

Looks like nowadays it ain't the ICE-1000 but is this EMULATOR-USB & HP USB ICE found at https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/usb-emulatorbf.html .

These emulators are usually super expensive.



[ - ]
Reply by thejmackMay 29, 2019

Hi rbj, 

Thanks for your reply. I dont have an emulator, but I do have a JTAG debugger agent that allows me to connect, upload code and debug. There are some example programs for the ADSP21489, but they are quite complicated and opaque and doesnt shed much insight into the programming process. I just want to find a simple talkthrough or blinking LED code to get started from ground zero so I can understand the process of coding these monsters from scratch. If you could provide any insight on how I can get started that would be very helpful. I used to be an experimental physicist for many years so I have quite a bit of experience with instruments and coding in general, but this is a beast of a different flavor, and especially with poor documentation, at this point I do not know how to tame it :(.

[ - ]
Reply by rbjMay 29, 2019

Okay, so I know the SHArC core instruction set pretty well and some of the key features that existed in the SHArC back in the olden daze (like 1995 with version 0.6 silicon for an ADSP-21062).  So I know how to use and setup the SPORTs and the DMA for the SPORTs and how to set up interrupts in the Interrupt Vector Table all the way back to the boot vector.

And not too long ago I was working on an ADSP-21479 based board that was not an ADI board. I think I know how to use the SRU() macro to connect up the internal patch board from a peripheral device to specific pins.  And I think I know how to hook up a specific pin to a FLAG which you can use for toggling bits, such as an LED.  This product had a flash memory that had the default boot program, but I just loaded in my own boot code on top of it using an ICE-1000.  So I am not familiar with your "JTAP debugger agent", and I presume you're using CrossCore and not VDSP+, right?

With VDSP+, I was unsuccessful at marrying C code to the asm code that I wrote from the boot vector.  But I know how the argument passing convention works and how the registers should default to, to keep the C/C++ environment happy.  I have an email from one of the ADI compiler guys and he assures me that it is possible to link **generic** C code to asm code without needing the std C lib.  I know how the .LDF files work for partitioning the memory map.  And how to spin up the processor clock.

I have a variety of text handling (this product had a USB to talk to the TeraTerm app on the PC) and math functions written in asm that I own (not my client) that I am happy to share with you.  I also have a sample-block based I/O scheme which uses the SHArC DMA which is somewhat better than any other that I have seen, better than what's supplied by ADI.  And I have a scheme for putting algorithms into modules that are #defined that you can put into your board.

What we have to figure out is exactly what your board does at boot time that initializes every external chip to the SHArC (maybe it uses the Two-Wire-Interface to talk to the control registers of the external chips), how the SHArC peripheral interface is configged to talk to the external chip, how the SPORTs are set up.  That source code should exist somewhere.  Do you have a "talkthru" example in asm that you know you can assemble from source, link and load and run?  If you can do that, then I think we can marry some of my code to that and you'll have a cleaner and easier platform to fiddle with.

Are you doing audio?  (shouldn't really matter.)

Somehow, you're gonna have to figure out how to assemble, link, load, and run some kinda simple given program that comes with your EZKIT.  I can't help with that, because I didn't have an EZKIT in the last two decades.  But if you can get one of their examples to load and run, and do it from the source code, I can help you from there.  especially, if you can find a talkthru that works and passes audio (or whatever is your signal).

my email is rbj@audioimagination.com .  you and i can send files back and forth.

L8r,

r b-j