This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/TMS320F28379D: SYS/BIOS UART/SCI API

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Tool/software: TI-RTOS

Hello,

I know how to output bytes in ASCII format through one of the SCI interfaces from the uC through register bit fields. But now that I am experimenting with SYS/BIOS, I would like to avoid (if possible) touching any register. Is there any UART/SCI module API which I can use to do so? I have seen that TI-RTOS has a UART module, but I haven't found it within SYS/BIOS. Can anyone please help me?

Best regards,

Adria

  • The TI-RTOS drivers aren't supported on the F2837xD--just the SYS/BIOS kernel part. There is a DriverLib in C2000Ware that provides functions to interact with the SCI registers. You can find examples for it under \driverlib\f2837xd\examples\cpu1\sci

    Edit: I should add that the DriverLib doesn't contain any SYS/BIOS integration, but you can create your own higher level API that does integrate the two.

    Whitney

  • Hi Whitney,

    Thanks for your answer. I have 2 more questions:

    1. Without SYS/BIOS, to compile a project there had to be a file called "F2837xD_CodeStartBranch.asm" within which codestart section was defined. This section had a long branch to RTE code. When RTE code was executed then a long branch to main was done. Alright, how does it work now with SYS/BIOS? I don't see any codestart section definition but I see it linked in cmd file (I guess it is within SYS/BIOS but I want to make sure).

    2. Following your answer, I have taken a look at some examples from C2000Ware driverlib. For example, the SCI echoback. I can see how, at the beginning next functions are called:

    //
    // Configure PLL, disable WD, enable peripheral clocks.
    //
    Device_init();
    
    //
    // Disable pin locks and enable internal pullups.
    //
    Device_initGPIO();

    Must them be called in a SYS/BIOS project if I want to use driverlib? I have seen that in SYS/BIOS projects next function is called:

    BIOS_start();    /* does not return */

    Best regards,

    Adria

  • 1. When you use the "Enable boot from FLASH" option in the SYS/BIOS Boot module, SYS/BIOS will provide an equivalent to CodeStartBranch.asm. If you look at the files generated by SYS/BIOS, you'll see it generates (in the examples its in Debug/configPkg/) an additional .cmd file that adds a section at the flash entry point.

    2. You can call Device_init() and Device_initGPIO()  in your application. BIOS won't set up your peripheral clocks or GPIOs for you, so they're still necessary. There are some functionalities in the SYS/BIOS Boot module that can initialize the PLL and Flash that overlap with the some of the configurations in Device_init(), so you'll need to make sure you don't have conflicting configurations. I'd recommend disabling them in your cfg file and letting Device_init() do it, but you could also do it the other way around if you prefer--enable them in the .cfg file and remove the related code from the Device_init().

    You might find this page helpful: processors.wiki.ti.com/.../BIOS_for_the_28x

    Whitney