реклама на сайте
подробности

 
 
> помогите с printf
kovz
сообщение May 22 2009, 12:54
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079



Здаствуйте уважаемые форумчане!
Помогите разобраться с printf, a точнее с printf_P. На колько я понял из документации разница между ними только в области хранения строки формата вывода: в первом случае это DATA MEMORY, во втором CODE.
Пример простейшей программки в IARAVR5.20

Код
#include <pgmspace.h>

__flash char const __flash * test[]={
    "Hellow World!",
    "With fucking printf_P"
  };

void main(void)
{
  printf_P("%s %s",test[0],test[1]);
  for(;;);
}


компилирую с опцией --string_literals_in_flash.
проц мега 164, Normal Dlib, изменение prinf_formatter не могают.
в результате выводится только пробел.
при копании в исходниках библиотек обнаружил, что после того как распарсится первых два символа строки формата вывода(%s), правильно определяется адресс первого символа строки "Hellow World!"(в CODE MEMORY), но на вывод идёт то, что по тому же адресу в DATA памяти.
Помогите пожалуйста кто сталкивался, как красиво выводить строки лежащие во флеше, в моём случае это уарт, про переопределение __write знаю, и к этой проблеме оно отношения не имеет, помоему.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 18:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01335 секунд с 7
ELECTRONIX ©2004-2016