Based on my experience with the F2812 and the DSP/BIOS, I don't really see the need for an off the shelf serial driver. To make matters worse, off the shelf drivers for the F2812 are somewhat limited in availability because of the lack of a board support package for the
The example code in the application notes will provide you with a fine starting point for working with the serial port both with and without interrupts. From that point, you can simply import the routines, modifided as desired, into your code and point the SCI interrupt in the DSP/BIOS configuration file to your RX and TX handler.
If there is something specific that you are having trouble with or don't understand, I would be happy to try and answer your questions. There has also been a tremendous amount of discussion regarding use of the serial ports on the C2000 discussion group on TI's webpage which you may want to look at.
Thanks for the reply, I'll take a look at that group. My needs (that I did not describe,) are simple and generic enough that I thought I may find a ready-to-run code snippet:
We are developing an system running on 2812s. The hardware has RS232 drivers hooked to SCIA. The final product will not use this serial interface at all, but I am using it now in a stand-alone test system that exercises only the software sections I am responsible for. The SCI driver I wrote works in polled mode, and provides the low level input/output functionality for a simple command interpreter.
The real user interface is provided by a separate board in the system, that runs an embedded web server and talks with my board over CAN and a couple proprietary buses.
We are now delivering a few boards for internal testing, meaning they will run in a standard configuration without being connected to the JTAG emulators we use for development, so I lose the ability to see (via the emulator) the status of internal variables that are not conveyed to the user through the html/web interface.
I want to use the serial port in a temporary debug tool to restore the visibility of some system variables. (Mainly counters showing the activity of a communications subsystem. Number messages transmitted, received, decoded (un)successfully, etc.) I can not use my existing driver as-is because polling mode is not acceptable in this environment, it must be interrupt driven.
So all I need is interrupt-driven SCI routines, (for a simple command interface a char at a time is enough, I can do my own buffering,) that are integrated with the DSP/BIOS. This meaning only that a task attempting to read will automatically block until data is available, or a task attempting to write will automatically block if the port is still transmitting previous data.
I can (and now it seems I probably will,) write my own, but since the common stupid coding errors, misinterpretation of, or faulty information in, the documentation, etc. may turn this mini-project into something much longer than expected I was hopping to find an already coded and tested solution.
Going off-topic, I really think TI should provide minimalist DSP/BIOS drivers like this for all on-board peripherals. I understand they will not answer to everybody's needs, but at least could be used as a starting point for customized code.
There is an application note that deals with peripheral examples for the F2812, including the SCI. The SCI that they provide works in interrupt mode using the loopback built into the SCI module. Of course, you will need to disable the loopback (change the bit setting in the config register). You will also probably want to change the fill level settings on the FIFO to generate interrupts after the desired number of characters (I set mine up for one character). In the .TCF file you then point the SCI interrupts to your routines, and enable the wrapper so your function can be C routines.
If the sample application doesn't get you far enough or you run into trouble, let me know. We have the SCI routines working with the DSP/BIOSsuccessfully and I would be happy to share with you. You can contact me (offline of this newsgroup) via the email address that should show up in the header as it is valid.