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.

Getting started with SYSBIOS

Other Parts Discussed in Thread: SYSBIOS, CONTROLSUITE

Greetings,

I'm working on a project and I whould like to use SYSBIOS, but I'm new to this software (and to RTOS). The project involves using a pwm output and a uart comunication. As far as I understand, this parts of the microcontroller should be driven by the hardware abstraction layer (I think the correct package is IPC).

Can somebody tellme where can I get some training material to study this items?

Thank you,

Francisco

  • Hi Francisco,

    Materials to get started with SYS/BIOS (BIOS 6) can be found at Texas Instruments processors wiki page. Here you will a section called "Get started quickly and learn as you go" section. I think this will probably give you enough training materials to start with SYS/BIOS.

    As far as SYS/BIOS' HAL (hardware abstraction layer), it handles hardware interrupts, timers, and caches for you.UART and PWM software needs to be provided separately. Which part are you considering for your project? I may be able to help you find other materials.

    The IPC package you've mentioned is actually for inter-processor communications on TI multi-core devices.

  • Hi, thanks for the answer. Actually I´m working with a F28335 microcontroller. As I understand from your answer, I can use the standar programing I'm used to, when I adress hardware peripherals (that is, inside my threads, I use standar C code).

    I may have misundestud the IPC package, since the documentation (sprugo6c.pdf) includes examples regarding uart driver instantiation.

    I'm having truble to understand when the idle task is carried out. In my code, I call for a semaphore wait with "WAIT_FOREVER" eneabled, so I understood the system should remain idle until the HWI thread triggered the semaphore. But the function that should be called during the idle loop is not called (althoug the task works fine).

  • Hi Francisco,

    IPC is intended to facilitate save communications between CPU cores and hardware peripherals so therefore IPC provides a set of I/O interfaces (IDriver, Streams, etc...). Using these interfaces, you could create a UART driver with the IDriver interface. However, since you are dealing with a single core processor, there probably isn't much value in using IPC due to the complexity involved.

    The ControlSUITE offers a variety of drivers for the F2833x, so it may be a good place to start. There is nothing from stopping you to use a dedicated task to access a particular peripheral's registers.

    The idle loop in BIOS is a special type of task. It's the task that will be run by SYS/BIOS when there is no other "productive" user code to be executed. With that said, there are a few restrictions on what you can put in the idle loop. One restriction is that you can't call any function that may cause the idle loop to block (e.g no Sempahore_pend(), Gate_enter(), etc..).

  • Thanks for your answer,

    The actual problem with the idle functions was that I was not eneabling the execution of that thread from the Task block in the XDCTools enviroment. It works now. Now I'm working with some direct programing regarding the hrdware peripherals and making life easier with BIOS for task coordination.

    Thankyou very much.