08.06.2009, 13:59
|
#791
|
Гражданин KAZUS.RU
Регистрация: 21.02.2005
Сообщений: 685
Сказал спасибо: 14
Сказали Спасибо 84 раз(а) в 44 сообщении(ях)
|
Aleksey_Sechov прикрепи свой проект для анализа. Мой слишком громоздкий с кучей внешних модулей. Боюсь не собрать, да и людей запутаю.
__________________
Нет ничего проще сложного и сложнее простого.
|
|
|
|
08.06.2009, 14:10
|
#792
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Сообщение от Aleksey_Sechov
|
Тень, вы имеете ввиду отключить оптимизацию исходного кода в самом компиляторе, т.е. в среде где програ писалась?
|
Да.
|
|
|
|
08.06.2009, 14:46
|
#793
|
Прохожий
Регистрация: 07.06.2009
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Моя проблема решилась!!! Всё дело было в одной функции которая у меня в программе была объявленна, но не использовалась (использовал раньше для отладки). Причём когда компилировал проект ошибок небыло, только предупреждение; и программа прекрастно работала, пошаговая отладка по исходному коду тоже работала на ура ![Прикольно](images/smilies/icon_wink3.gif) но вот только до этой функции которая не использовалась.
|
|
|
|
08.06.2009, 18:11
|
#794
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
to ТЕНЬ
Здесь два примера
1) для 16f887
2) для 18f4520
Доступ через поинтер к данным в ROM .
Методом #const =ROM.
Читаем null terminated строку , строка правильная - считывает то же правильно , для pic18 не проходит проверка на 0 .
С примером для pic16 вообще глухо . Раньше было что поинтер указывал совсем не на строку -сейчас вообще какая то чушь.
Прикрепленный файл: 3381502.rar
__________________
Осторожно , злой кот
|
|
|
|
08.06.2009, 18:19
|
#795
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
dosikus спасибо!
а какой версией компилятора компилировал? или без разницы?
Нашел уже. CCS PCH C Compiler, Version 4.084. В других (предыдущих/следующих) версиях то же самое?
|
|
|
|
08.06.2009, 18:55
|
#796
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от TEHb
|
dosikus спасибо!
а какой версией компилятора компилировал? или без разницы?
Нашел уже. CCS PCH C Compiler, Version 4.084. В других (предыдущих/следующих) версиях то же самое?
|
В 4.88 то же самое , в ранних не знаю.
Но судя по их форуму с pointer to ROM одни глюки.
Если посмотреть дизасм , то очень прикольная проверка выявляется .
Код:
|
60: char c;
61: char i=0;
0056 6A29 CLRF 0x29, ACCESS
62: while (c=*t++)
63: {
0058 C027 MOVFF 0x27, 0x3
005C 5026 MOVF 0x26, W, ACCESS
005E 2A26 INCF 0x26, F, ACCESS
0060 B4D8 BTFSC 0xfd8, 0x2, ACCESS
0062 2A27 INCF 0x27, F, ACCESS
0064 6E2A MOVWF 0x2a, ACCESS
0066 C003 MOVFF 0x3, 0x2b
006A 6AF8 CLRF 0xff8, ACCESS
006C C003 MOVFF 0x3, 0xff7
0070 6EF6 MOVWF 0xff6, ACCESS
0072 6AEA CLRF 0xfea, ACCESS
0074 0E28 MOVLW 0x28
0076 6EE9 MOVWF 0xfe9, ACCESS
0078 6A2D CLRF 0x2d, ACCESS
007A 0E01 MOVLW 0x1
007C 6E2C MOVWF 0x2c, ACCESS
007E D7DB BRA 0x36 ‹---- Вызов процедуры табличного чтения
0080 0828 SUBLW 0x28 ‹----------- !!!!! В 0х28 результат, в W всегда 1 в итоге ххх :)
0082 E007 BZ 0x92
64: buf[i++]=c;
0084 5029 MOVF 0x29, W, ACCESS
0086 2A29 INCF 0x29, F, ACCESS
0088 0F08 ADDLW 0x8
008A 6EE9 MOVWF 0xfe9, ACCESS
008C C028 MOVFF 0x28, 0xfef
65: }
0090 D7E3 BRA 0x58
66:
67: }
0092 0C00 RETLW 0 |
Это уже другой исходник - адреса с предыдущим ( что у тебя) могут не совпадать.
__________________
Осторожно , злой кот
|
|
|
|
08.06.2009, 19:03
|
#797
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Сообщение от dosikus
|
Но судя по их форуму с pointer to ROM одни глюки.
|
То есть они знают про эти баги? Тогда не уверен, что мы сможем повлиять на них...
|
|
|
|
08.06.2009, 19:09
|
#798
|
Прохожий
Регистрация: 07.06.2009
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Luzkov моя проблема решилась, посмотри у себя, может та жа шляпа, если же нет тогда вообще весело...
|
|
|
|
08.06.2009, 19:15
|
#799
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Я видел что PCM programmerсоветует использовать
#device PASS_STRINGS=IN_RAM
см: http://www.ccsinfo.com/forum/viewtop...=34682&start=4
Что действительно работает и с 16 и 18 .
Но вот почему не сделать бы как в других компилях с
const *ptr
И интересно - они это знают и не могут сделать или не знают ?
Меня то они однозначно слушать не будут...
__________________
Осторожно , злой кот
|
|
|
|
09.06.2009, 03:54
|
#800
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
to TEHb
Рад приветствовать на просторах Казуса! С возвращением!
Ну и маленький "подарочек" по этому поводу. Баг в модели Microcip TC74 с адресами - смотри вложение. Можешь проверить по даташиту. Тестовая прога в CVAVR 1.25.9 Библиотеку CVAVR для TC74 пока не прилагаю, еще не проверил все функции, добью - пришлю. Ну и второе несоответствие с даташитом - при температурах выше 127 дает отрицательную ( по даташиту должно даже при 130 показывать 127). Надо либо урезать верхний предел в существующей, что очень просто, либо конкретно править программную модель. Кстати и в DS1621 на верхнем пределе тоже перебор в отрицалку.
Для тех, кто не в Лабцентре: вынимаем TC74 на поляну -щелкаем по нему правой лапкой животного - Make Device =› Next=›Next до вкладки (см. ниже) - правим в соответствии с вложением адреса и мэйкаем (некстим)до упора с заменой существующей. Да, чуть не забыл можно еще MAX заменить со 130 на 127, чтобы потом по забывчивости не гадать почему температура отрицательная.
ГЫ По названию архива можно догадаться кому оно предназначалось.
-- Прилагается рисунок: --
Прикрепленный файл: 9872782.rar
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:21.
|
|