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

 
 
> Процедура вывода отладочной информации, (из FLASH)
west329_
сообщение Aug 13 2008, 08:22
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Хочу немного упростит процедуру вывода отладочной информации.

По класической схеме да и в моей программе отладочные строки типа "Ошибка", "Время вышло" описываются вначале программы с префиксом __flash вот так

Код
__flash unsigned char PPPerr1[14] = {"\x0D\x0A CRC Error\x0D\x0A"};



потом в самой программе я вызываю функцию вывода отладочной строки через указатель на первый символ этой строки
Код
#ifdef debugPPP
  PrintSTRfronFLASH( &PPPerr1[0], 14, DEBUG);     //CRC Error
#endif


все работает нормально но когда объемы исходного кода большие приходится каждый раз переходить в начало страницы и обявлять новые строки

Код
__flash unsigned char PPPerr...
__flash unsigned char PPPerr..
__flash unsigned char PPPerr..
__flash unsigned char PPPerr...



Возможно ли непостредственно в процедуре вызова обявлять выводимую строку ???
что подобное этому

Код
PrintSTRfronFLASHa( "\x0d Hello WORLD" , DEBUG);



У меня такое работает только если строка находится в SRAM, как только добавляю префикс
Код
__flash
пишет ошибку

Код
Error[Pe167]: argument of type "char *" is incompatible with  E:\RADIO\IAR4.21A\avr\tutor\Xbox4\main.c 87
parameter of type "unsigned char __flash *"



вот мои процедуры для
Код
void main(void);
void PrintDebug(unsigned char __flash stringD[25]);




void PrintDebug(unsigned char __flash stringD[25])
{
unsigned temp = 0;
  for(temp = 0; stringD[temp] != 0; temp += 1)
    putchar(stringD[temp], DEBUG);

}

void main(void)
{
PrintDebug("\x0d Hello WORLD");
while(1);
}


если такое возможно.
компилято IAR 4.20 for AVR

Сообщение отредактировал west329_ - Aug 13 2008, 08:26
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:08
Рейтинг@Mail.ru


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