Так то оно так, но вы хотите, чтобы у вопрошавшего порвался мозг от многочисленных связей между функциями?

Тем более, что судя по всему, у него и так уже он закипел

Там, в его случае - графический дисплей. А в графическом дисплее координаты вывода не задаются однозначно строкой. И если иметь дело с пропорциональными шрифтами (у которых разная ширина символа - ifr и Жшы - разной ширины), не получается подравнять вывод "пробелами" и не получается точно угадать занимаемую строкой ширину. Посему, "печатающая" функция должна хорошо взаимодействовать с модулем растровой графики.
Вдобавок, у ARM-ов встроенные "печатающие" функции тянут за собой капец как много всякого хлама от Newlib, и прежде чем взять стандартную printf, двадцать раз подумаешь - а нужно ли тебе вообще это, чтобы напечатать банальное "Напряжение: 12,4 В, Ток: 7,6 А". Это всё можно сделать самописным методом.
[uquote="Zhuk72",url="/forum/viewtopic.php?p=3129847#p3129847"]Текст (массив символов) по умолчанию считается signed?[/uquote]
Он считается как
const char, а вот как распознается
char без явного указания знака (signed или unsigned) - это уже определяется на уровне принятых компилятором условностей. В вашем случае,
char считается как
signed char, то есть, знаковым однобайтным. Точно так же как и
int без явного указания считается
signed int.
Чтобы предупреждений в вашем случае не возникало, нужно принудительно привести тип у вашей строки к запрашиваемому функцией типу. Т.е.,
(unsigned char*)"Hello world"