Пришелец
-
Постов
186 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Пришелец
-
-
с программатором всё нормально.
да все типы ведут себя так же.
В настройках С перепробовал (там три галочки есть) по всякому - не помогает
насчёт - спасибо - учту :)
скажите у Вас нет такой проблемы с той же версией иара?
статики и глобальные нормально инициализируются?
-
Опубликовано · Изменено пользователем Пришелец · Пожаловаться
ff наблюдаю при отладке когда вывожу значение переменной.
от текста программы проблема не зависит.
char b=10;
void func(void)
{
static char a=10;
char c=10;
print_dec(a);
print_dec(B);
print_dec©;
}
a и b всегда ff
c=10
хотя однозначно в файле кода для прошивки есть инициализаторы для них.
_______________
мне кажется что проблема где-то в настройках сегментов
неужели у всех нет этого глюка???
-
нет - переменные используются
__root - пробовал не помогает. :(
-
Опубликовано · Изменено пользователем Пришелец · Пожаловаться
Не инициализируются статические и глобальные переменные. (mega128 IAR 4.10b)
хотя сами переменные создаются и их инициализаторы так же создаются во FLASH.
нулями переменные инициализируются. если инициализировать другим числом то всегда FF.
Помогите пожалуйста кто знает в чём дело. :)
:maniac: Геморой - вручную инициализировать глобальные переменные и не пользоваться static
-
Вот объявление класса:
class i2c_p
{
public:
unsigned short adr;
void operator = (unsigned short a);
i2c_p operator + (unsigned short a);
i2c operator [] (unsigned short i);
operator char();
i2c operator * ();
i2c_p(unsigned short a);
};
использую его так:
i2c_p p(10),q(20);
p=q; //так компилирует
p=q+1 //а так пишет ошибку
:huh:
Error[Pe350]: more than one operator "+" matches these operands:
built-in operator "arithmetic + arithmetic"
function "i2c_p::operator+(unsigned short)"
operand types are: i2c_p __near + int
-
Кстати если убрать перегрузку плюса то он перестаёт ругаться и выдаёт сообщение о неправильном приведении типа
Сождаётся впечатление что запись
operator char();
он принимает за перегрузку плюса
-
Нет явного приведения не делается :blink:
-
Для класса перегрузил оператор + всё ок затем добавил перегрузку привидения типа к char и он стал писать такую ошибку:
Error[Pe350]: more than one operator "+" matches these operands:
built-in operator "arithmetic + arithmetic"
function "i2c_p::operator+(unsigned short)"
operand types are: i2c_p __near + int
Может кто в курсе в чём проблема? :blink:
-
lwIP без оси работает вполне, я пользую в NIOS II читсый lwIP без UCOS.
Но понятно что разруливать моменты вызова разных функций lwIP приходиться ручками, без всяких потоков.
А GNU - это механизм обмена информацией, более менее унифицированный.
Собрать под ним может любой, если руки на месте, и протестить (обратная связь с багами глубже в силу доступности). А людей имеющих IAR надой найти.
Да и кто вам мешает прикрутить GNU к IDE?
IAR то работает тоже через командные строки, но просто они сделали интерфейс который это скрывает.
Так что если есть желание, то в путь, но скорее всего это уже сделано, надо только поискать :)
Снова возвращаюсь к теме.
Прикрутить можно наверное но мне было бы понятно если бы компилятор запускался из под Windows. Но чтобы его использовать под Windows нужно запускать эмулятор unix - cigwin.
Можно ли прикрутить GNU :maniac: к IDE если GNU под unix а IDE под Windows?
-
Назрел следующий вопрос:
А какой компилятор эффективнее для ARM GCC или IAR? :rolleyes:
-
Неужели ни у кого не было похожих проблем??? :huh:
-
Спасибо one_man_show и Major
Теперь сомнения рассеялись :)
остаюсь в своём любимом IARe
Но наверное придётся поставить CrossWork
посмотреть что это такое (вдруг понравится)
-
Наверное дело в том что не тот xcl файл в опциях linkera
(не под ту память)
надо или другой файл указать или изменить адреса кода программы в xcl файле
-
т.е. с uCOS
можно работать в IARE если под него подправить синтаксис?
тогда почему все пользуются GNU ведь мне показалось что это такой геморой
- cygwin, командная строка :blink:
-
да да конечно (спасибо за поправку подредактировал)
lwIP
и ещё вопрос в догонку
почему многие исходные тектсы например uCOS
принципиально предназначны под GNU компиляторы?
почему нельзя это скомпилировать например в IARe?
(какой-то синтаксис С или какая-то особая компоновка или ещё что ...?)
-
Есть желание использовать lwIP для LPC2214 :) и CS8900 :)
а так же писать в IARE без RTOS
Кто-нибудь подскажет это реально.
Потенциальные проблемы. :smile3009: ...?
или может есть альтернатива lwIP ???
-
всё проблема решилась -
код компилировался для внутр флэш а галочка Flash program не была поставлена.
-
Пытаюсь в OCD командере запрограммировать LPC 2214
формат elf для работы во внутреннем ОЗУ
Начинает писаться но потом выдаёт ошибку unknow fault , Error during download
PC устанавливается на нужный адрес 40000000
потом пишет cabel disconnect т.е. видимо процессор совсем зависает :cranky:
такое же и с внешней RAM
Всем кто ответит заранее большое спасибо!
-
Отладочная плата LPC-E2214
IAR-4.20 eval
в плате записана тестовая программа (не понятно где во внутр памяти или во внешней BOOT1/0 не влияют она всегда выполняется)
в иаре скомпилировал код. Запускаю DEBUG (macraigor wigler)
он показывает окошко DOWNLOADING (как будто что-то записывает)
но запускается вновь тестовая программа (которая была в плате)
ещё иар выдаёт сообщение
Sat Feb 19 21:05:24 2005: JTAG API v48.7, Wiggler v1.41, ARM ID: 4F1F0F0F
Sat Feb 19 21:05:25 2005: 302 bytes downloaded (0.56 Kbytes/sec)
Sat Feb 19 21:05:25 2005: Loaded debugee: I:\ARM_study\lpc-e22xx_test\Release\Exe\H2214_Board_Test.d79
Sat Feb 19 21:05:25 2005: Target reset
Sat Feb 19 21:05:25 2005: Driver does not support code coverage.
Наверное я что-то недогоняю.
-
Да уж компаунд ковырять не улыбается :)
Заказали отладочную плату с LPC-2214
УРА! :w00t:
Спасибо всем кто откликнулся.
А вообще за 100$ оказывается можно купить недурную готовую платформу. :excl:
-
А интересно какая максимальная частота для slave. :rolleyes:
Наверное Fmax_osc/2
Максимальная частота тактового генератора /2.
Или нет?
-
Спасибо всем.
Глюк остался и с выделенной кучей.
А насчёт размеров стеков полностью согласен. Лучше заранее определить под них заведомо много памяти.
Несколько раз натыкался из-за этого на появляющиеся с ростом кода непонятные глюки :smile3046:
-
или обрыв в кабеле программатора, на глаз незаметный
несколько раз было такое вроде кабель ещё нормальный но в месте пайки к разъёму видимо микротрещина
Перепаял разъём всё заработало.
-
В настройках проекта иара есть выделение памяти под heap
она используется для динамического выделения памяти - new alloc и т д
В проекти динамическое выделение памяти не используется поставил размер 0.
Сначала вроде программа работает нормально, но иногда появляются странные трудноотлаживаемые глюки. :(
Поставил размер кучи 0х30 вроде нормально работает :)
Может это ещё на что-то влияет?..
Проблема со статическими переменными в IAR 4/10
в AVR
Опубликовано · Пожаловаться
там где объявляется переменная никаих команд нет.
!!! только смещение адреса почему-то не изменяется в NEAR_ID или я чего-то не понимаю?