Control an UART protocol with FreeRTOS or Interrupts
You did not specify your timing tolerances (eg. jitter - does it have to be 1s or 1ms). If it is 1s, then it can easily be done "no matter what" (unless something is very badly coded...) both bare-metal and with an RTOS. Is the RTOS really necessary? You don't use RTOS just to make something "faster", but to make management of many parallel and interdependent tasks easier.

Some ideas:


Within RTOS task: load UART data register, poll transmit complete flag, if not done call vTaskDelay (or other delay function in your RTOS). Primitive and does not guarantee timings.
RTOS task loads TX buffer, starts UART TX interrupt, there is an interrupt for every byte, the task waits for a flag or conditional variable that will be set by the last transmit complete interrupt. There is an interrupt for every byte. Interrupts with higher priorities can affect the timings.
RTOS task loads TX buffer, configures DMA to transmit all data, the task waits for a flag or conditional variable that will be set by DMA transfer complete interrupt. There is a single interrupt for the whole transfer. Very little factors can affect the timings (basically only other DMA transfers - this can be dealt with DMA priorities or round-robin DMA scheduling).
Design everything as a time-triggered system. This gives you 100% reliable timings (well... 99.99something%) at the cost of lower peak performance (ie. your fast CPU will do very little most of the time to have reserves for worst-case execution time). There is a great free book Patterns for Time-Triggered Embedded Systems on this topic. This method will give you the lowest jitter possible.