IAR компилятор, обработчик прерывания

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн авг 19, 2013 13:50:49

Сообщение Open »

Здравствуйте! Начинаю писать под Stm32Fxx, используя IAR.
void EXTI0_IRQHandler (void) {}
Подскажите пожалуйста как компилятор понимает, что описанная выше функция(из предыдущей темы), является обработчиком прерывания и ссылку на нее надо поместить в таблицу векторов. И если это зашито у него в кишках то как узнать, что надо написать, например, для обработчик прерывания USB FS?
PS. Ручками в таблицу векторов писать как то криво. тем более с моделью вызова аппаратного прерывания толком не ознакомлен(как корректно из прерывания выходить).
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула

Сообщение Neekeetos »

Open писал(а):Здравствуйте! Начинаю писать под Stm32Fxx, используя IAR.
void EXTI0_IRQHandler (void) {}
Подскажите пожалуйста как компилятор понимает, что описанная выше функция(из предыдущей темы), является обработчиком прерывания и ссылку на нее надо поместить в таблицу векторов. И если это зашито у него в кишках то как узнать, что надо написать, например, для обработчик прерывания USB FS?
Все обработчики прерываний уже заранее определены, для иар это файлик вида startup_stm32f(ххх).s , какой именно зависит от выбранного мк. Поэтому надо просто найти данный файл, посмотреть имя обработчика, соответствующего usb, и написать свой вместо дефолтного.
Информация по RLC mini находится >тут<
Контактная информация:
Реклама
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

Neekeetos писал(а):Все обработчики прерываний уже заранее определены, для иар это файлик вида startup_stm32f(ххх).s , какой именно зависит от выбранного мк. Поэтому надо просто найти данный файл, посмотреть имя обработчика, соответствующего usb, и написать свой вместо дефолтного.
Всё написано до нас. Для работы с USB есть usb stack от ST. Достаточно правильно имплементировать его в свою задачу.
А для ТС отдельная рекомендация. Подтянуться по тем вопросам, в незнании которых он сам признался в начальном посте. Мнекаэтся, рановато без этих знаний браться за usb-решения.
С уважением,
Виктор.
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн авг 19, 2013 13:50:49

Сообщение Open »

Большое спасибо! Все срослось!
Естественно написано! Но читать то мы пока не научились :) как по мне так проще на жестком асме писать, или плис программировать, чем думать что и как компилятор имплементит. Но это все до поры до времени, пока инструмент не освоишь (в си я соответственно тоже новичок и все эти *.s и что с ними и как вытворяет компилятор для меня пока темный лес :) ).
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 394
Зарегистрирован: Сб апр 28, 2012 16:04:14

Сообщение sx386 »

Библиотеки типа stdperiph приводят к тому, что программист не понимает сути процесса.
Программист, начиная изучать по примерам не изучает сам принцип работы, струкрур данных и т.д.
Хотя не спорю, в ней есть хорошие и нужные функции.
Но как можно было додуматься переименовывать названия регистров ? А главное зачем ?
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Сообщение Myp3ik »

sx386, вы вообще во внуть этих функций заглядывали ?
Иван Сусанин - первый полупроводник :solder:
Реклама
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

sx386 писал(а):Библиотеки типа stdperiph приводят к тому, что программист не понимает сути процесса.
Программист, начиная изучать по примерам не изучает сам принцип работы, струкрур данных и т.д.
Хотя не спорю, в ней есть хорошие и нужные функции.
Но как можно было додуматься переименовывать названия регистров ? А главное зачем ?
Для программиста "суть процесса" - написание программы. Он не сталевар. Принцип работы ЧЕГО должен изучать программист? Компилятора? У них у всех одинаковый принцип - строки программы превратить в код, понятный выбранному процессору или МК.
Правильный программист, приступая к написанию программ уже ОБЯЗАН знать и понимать и типы данных, и понятия структур, объединений, перечислителей и многое другое. Если он только начинает это изучать - ему до программиста...
О библиотеках много было перетерто. До их применения нужно дорасти. Умение писать программы без обращения к либам подразумевается по умолчанию. А вот время написания самой программы, скорейший выход готового продукта - тут без либ ну никак. Ваше обвинение в "непонимании сути процесса" разбивается об один вопрос - "а вы четко понимаете и представляете себе, ЧТО делается при исполнении функции printf из известной либы clib stdlib?" Тем не менее все ее используют, благо ресурсы современных средств позволяют и не такие функции вызывать.
С уважением,
Виктор.
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

Open писал(а):Большое спасибо! Все срослось!
Естественно написано! Но читать то мы пока не научились :) как по мне так проще на жестком асме писать, или плис программировать, чем думать что и как компилятор имплементит. Но это все до поры до времени, пока инструмент не освоишь (в си я соответственно тоже новичок и все эти *.s и что с ними и как вытворяет компилятор для меня пока темный лес :) ).
Ню-ню... Видали мы таких лихачей, прыгающих на АСМ 32-битного ядра с атмела или пика. :) Да и то, смотря с какого пика. В настоящее время на АСМах можно ваять лишь отдельные вставки, да и то, процедура эта для современных на порядо сложнее, по сравнению с теми же аврами. Впрочем, время и покажет и научит.
С уважением,
Виктор.
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн авг 19, 2013 13:50:49

Сообщение Open »

С Уважением, уважаемый ut1wpr. Когда то давно, когда еще интересно было... К Специалисту(может кто еще помнит железяку на КР580... ) писался самопальный асм с линковщиком+оболочка аля турбовижен (с мышкой и ctrl+c/ctrlv естественно), подключалась внешняя память ибо 64 кб(озу+врам+озу) как то маловато и линковалось с касеты... Джедайство было то еще. А сейчас... 1 дешевый кристалл и вся периферия к нему... какое тут лихачество... кури мануалы и делов.

и кстати
ut1wpr писал(а):на АСМах можно ваять лишь отдельные вставки
руки видимо скоро рудиментом станут.
Прошу прощения, что ведусь :(
Ответить

Вернуться в «ARM»