|
Странное поведение 5.10 при компиляции в C++ |
|
|
|
Sep 14 2007, 14:39
|

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

|
Цитата(alexander55 @ Sep 14 2007, 14:59)  Привожу текст для RAM (под Flash аналогично) . .... Какие есть мысли. Текст видать кто-то покоцал. А мысль одна: переводя слова zltigo extern "C" __arm __irq void IRQ_ISR_Handler() { ...... } А чтобы компилилось в обоих режимах - Код #include <yvals.h> _EXTERN_C __arm __irq void IRQ_ISR_Handler() { ...... } _END_EXTERN_C насчет yvals.h - возможно в 5.10 он имеет другое название, но в предыдущих он подключается автоматически через любой из библиотечных заголовочных файлов (через тот же stdint.h)
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Sep 17 2007, 05:58
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(zltigo @ Sep 17 2007, 09:37)  Полная ерунда. Можете хоть горшком называть - что-то походя еще подправили. Я также считал, а сейчас во всем уже сомневаюсь. Сейчас проверил. Название важно для startup, для С может даже не совпадать со startup овским. Там важен даже регистр, т.е. IRQ_Handler проходит, а irq_handler нет.
Сообщение отредактировал alexander55 - Sep 17 2007, 06:12
|
|
|
|
|
Sep 17 2007, 06:45
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(alexander55 @ Sep 17 2007, 09:28)  Там важен даже регистр, т.е. IRQ_Handler проходит, а irq_handler нет." Удивительно-то как! Оказывается в 'C' важен регистр, удивление мое не знает границ  Цитата Кажется нашел, ответы на стр.31-32 DevelopmentGuide.pdf. Как ни странно, совпало с моими субъективными ощущениями. Повторяю, мне неведомо, что Вы там шаманите, какой startup редактируете, какой ассемблируете и какой в конце концов линкуете, и уж что такое в DevelopmentGuide.pdf страшное могли вычитать, но имя функции обработчика прерывания может быть любым.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 18 2007, 08:23
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(zltigo @ Sep 17 2007, 11:10)  Все, больше слов нет  . Срочно покупайте бубен, для дальнейшей "программерской деятельности" он Вам очень поможет. Купил бубен и продолжил исследование. Для меня истина дороже. В результате шаманской деятельности все выяснил. При компиляции в EC++ и EEC++ пропадает (бесследно) __vector_0x14: DC32 0 ; RESERVED При компиляции в C все ОК. Выключены все оптимизации. Выход, как всегда, есть. Но интересны соображения уважаемых коллег.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|