разобрался полностью.
старый проект который компилировался имел строчку в Makefile:
LDLIBS = -nostdlib -Wl,--start-group -lcirom -lhal -lmain -lnet80211 -lwpa -llwip -lpp -lphy -lmgcc -lwps -lcrypto -ldriver -Wl,--end-group -Wl,-Map,Project.map -Wl,--gc-sections
и весь код uart компилировался в обход содержимого uart.c и uart.h . я убрал -ldriver и тупо скопипастил uart.c и uart.h из оф. sdk за исключением одной строки (чтобы знать что скомпилислось из моих скопипащеных файлов)
о и ЧУДО! всё заработало! сейчас попробую сделать твой
Артемий, буфер и наконецто сделать парсер команд.