Muchísimas gracias.
Solucionado. Así si me compila.
Llegué a probar al poner:
void texto(const char *cadena){}.
Pero sin suerte. Veo que estuve cerca

Media tarde dándole vueltas y lo más que conseguí es que si le quitaba el puntero a la función dejándolo solo :
void texto(char cadena){}
Así si que me compilaba pero el problema es que a la variable se le asignaba el primer carácter de la cadena en vez de la dirección de memoria, como cabía esperar.
He ido directamente al archivo hex para ver si me generaba la cadena y donde. Comprobé que efectivamente la generaba y anote la dirección de memoria de donde la había generado.
Luego probé al crear otro puntero dentro de la propia función que apuntase al argumento pero me devolvía una dirección de memoria distinta a la del primer elemento de la cadena.
Desesperado estaba ya.
Muchas gracias de nuevo.