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

 
 
 
Reply to this topicStart new topic
> Проблемы при вызове printf_P (mega128, IAR 3.20d), глючит...
_NB
сообщение Jul 14 2008, 13:01
Сообщение #1


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

Группа: Свой
Сообщений: 92
Регистрация: 22-06-05
Из: Украина, г.Боярка
Пользователь №: 6 238



Есть проэкт, в котором используется вызов 'printf_P'.
Зашиваю. Если включен режим совместимости с M103 - все работает.
Если его отключить - глючит при вызове 'printf_P' (глючит по разному - иногда рестарт, иногда что-то деляет, но не то что требуется).
Подскажите, куда копать (или где читать).
Go to the top of the page
 
+Quote Post
west329_
сообщение Jul 14 2008, 16:23
Сообщение #2


Местный
***

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



Попробуй запустить в дебагере и посмотреть может стек срывается, или увеличить его в 2 раза больше может здесь проблема.
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Jul 14 2008, 17:26
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(_NB @ Jul 14 2008, 17:01) *
Если его отключить - глючит при вызове 'printf_P' (глючит по разному - иногда рестарт, иногда что-то деляет, но не то что требуется).

Про макрос PSTR случайно не забыли? 05.gif
Go to the top of the page
 
+Quote Post
_NB
сообщение Jul 14 2008, 17:33
Сообщение #4


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

Группа: Свой
Сообщений: 92
Регистрация: 22-06-05
Из: Украина, г.Боярка
Пользователь №: 6 238



Цитата(west329_ @ Jul 14 2008, 19:23) *
Попробуй запустить в дебагере и посмотреть может стек срывается,

Аппаратного отладчика у меня нет, так что посмотреть немогу.
Цитата
или увеличить его в 2 раза больше может здесь проблема.

Размером стека я уже игрался - не помогает.
При большом желании я бы мог уйти от использования printf_P, но меня смущает то, что работоспособность программы зависит от одного единственного fuse-бита совместимоcти с M103. Хотелось бы докопатся до причины - може еще что-то не так работает.

Цитата(Aesthete Animus @ Jul 14 2008, 20:26) *
Про макрос PSTR случайно не забыли? 05.gif

А можно по подробнее пожалуйста об этом ?

Сообщение отредактировал _NB - Jul 14 2008, 17:35
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Jul 14 2008, 17:33
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(_NB @ Jul 14 2008, 21:31) *
А можно по-подробнее об этом ?

Эээ... нельзя... Ступил - не глянул сразу какой у Вас кмопилятор... laughing.gif В gcc он заставляет компилятор помещать строку в флешь.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 14 2008, 17:56
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(_NB @ Jul 14 2008, 16:01) *
Зашиваю. Если включен режим совместимости с M103 - все работает.
А какой при этом проц (и файл .xcl) указан компилятору? В зависимости от этого бита изменяется положение ОЗУ в кристалле, и если линкеру указаны не те адреса - может быть все, что угодно. Сгенерите .map, посмотрите карту памяти - что куда у вас попадает.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
_NB
сообщение Jul 14 2008, 18:07
Сообщение #7


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

Группа: Свой
Сообщений: 92
Регистрация: 22-06-05
Из: Украина, г.Боярка
Пользователь №: 6 238



Цитата(Сергей Борщ @ Jul 14 2008, 20:56) *
А какой при этом проц (и файл .xcl) указан компилятору?

Проц указан m128, и xcl-файл тоже для него.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 14 2008, 18:16
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(_NB @ Jul 14 2008, 20:33) *
Размером стека я уже игрался - не помогает.
Недостаточно информации. Сколько используется на момент вызова printf_P, сколько вы выделили всего, сколько используют прерывания? Возможно, вы добавляли недостаточно.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
_NB
сообщение Jul 14 2008, 18:32
Сообщение #9


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

Группа: Свой
Сообщений: 92
Регистрация: 22-06-05
Из: Украина, г.Боярка
Пользователь №: 6 238



Цитата(Сергей Борщ @ Jul 14 2008, 21:16) *
Недостаточно информации. Сколько используется на момент вызова printf_P,

Не знаю - нечем посмотреть.
Цитата
сколько вы выделили всего

Выделил 0x80.
Цитата
сколько используют прерывания?

Нет прерываний (в поисках глюка я все что можно было заремить - я уже заремил).
Цитата
Возможно, вы добавляли недостаточно.

Врядли (но я еще поиграюсь). Но для меня не понятно, почему в другом режиме все ОК.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 14 2008, 20:27
Сообщение #10


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(_NB @ Jul 14 2008, 21:32) *
Выделил 0x80.

Для проектов на базе m128 с использованием printf это смешная цифра.
Отводите под стек хотя бы 1KB.

Цитата
но меня смущает то, что работоспособность программы зависит от одного единственного fuse-бита совместимоcти с M103. Хотелось бы докопатся до причины - може еще что-то не так работает.

А что тут удивительного? m103 - это другой МК. Программа скомпилированная под m103 не должна работать на m128, если M103C не зашит.
Go to the top of the page
 
+Quote Post
_NB
сообщение Jul 15 2008, 05:44
Сообщение #11


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

Группа: Свой
Сообщений: 92
Регистрация: 22-06-05
Из: Украина, г.Боярка
Пользователь №: 6 238



Цитата(defunct @ Jul 14 2008, 23:27) *
Отводите под стек хотя бы 1KB.

А во это реально помогло - большое спасибо.

Цитата
А что тут удивительного? m103 - это другой МК. Программа скомпилированная под m103 не должна работать на m128, если M103C не зашит.

Программа изначально компилировалясь под m128, но работала только в режиме совместимости с M103.
Теперь работает в любом режиме.
Go to the top of the page
 
+Quote Post

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

 


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


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