Перейти к содержанию
    

1 черт, навскидку не смог заставить его работать. В какой папке надо быть, чтоб сработал make -n?

1. make должен быть у Вас в путях

2. запускать там, где находится Makefile

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это вы не соглашались что через регистры было бы быстрее:)?

Ну так это я раз делаю, а в регистры писать постоянно надо :biggrin:

 

Ну конечно, я было подумал, что все соберется)

Я же правильно понимаю, что вот это

#define IRQ_HANDLERS \
    [NVIC_NVIC_WWDG_IRQ] = nvic_wwdg_isr, \
    [NVIC_PVD_IRQ] = pvd_isr, \
    [NVIC_TAMP_STAMP_IRQ] = tamp_stamp_isr, \

инициализация массива с явным указанием индексов?

 

Не могу найти определения этих индексов.

По идее, где-то должен быть файл примерно такого содержания:

#define NVIC_NVIC_WWDG_IRQ 0
#define NVIC_PVD_IRQ 1

Но я его не вижу. Опять генерация скриптом? Так я даже в скриптах подобного текста не вижу.

--

upd: нагуглил файл, зовется nvic_f4.h

Но в репе его опять нет.

 

Не, ну после таких либ я уже не так плохо отношусь к желанию писать в регистры :biggrin: :biggrin: :biggrin:

 

Еще вопрос:

#pragma weak dma2d_isr = blocking_handler

где dma2d_isr потом используется в качестве адреса для заполнения таблицы векторов, а blocking_handler - void функция - это спецификация си или опять какой то прибамбас GCC? Ибо IAR ругается на неопределенный dma2d_isr, а я бы сделал так:

__weak dma2d_isr(void) { blocking_handler();};

хотя, конечно, этот вариант красивее, но не компилится

Изменено пользователем drozel

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще вопрос:

#pragma weak dma2d_isr = blocking_handler

где dma2d_isr потом используется в качестве адреса для заполнения таблицы векторов, а blocking_handler - void функция - это спецификация си или опять какой то прибамбас GCC? Ибо IAR ругается на неопределенный dma2d_isr

 

Это gcc'шная штука: https://gcc.gnu.org/onlinedocs/gcc/Weak-Pragmas.html

Удобно, но, к сожалению, не совместимо со стандартными компиляторами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не совместимо со стандартными компиляторами.

Единственный стандартный компилятор — gcc, остальное — говно стороннее!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это gcc'шная штука:

Как ни странно, удалось заставить работать, помогли в соседнем топике

__weak void dma2d_isr(void);
#pragma weak dma2d_isr = blocking_handler

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, к чему относится дефайн __ARM_ARCH_7M__?

Вроде написано CM3 or CM4, т.е. для STM32F407 надо дефайнить?

/* Those are defined only on CM3 or CM4 */
#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Единственный стандартный компилятор — gcc, остальное — говно стороннее!

 

Ой, ой, ой :biggrin: Для меня, например, IAR - стандартный компилятор, а gcc - видел я в одном месте...Сколько времени убил на портирование gccшной писанины на иар...

Давайте оставим личные религиозные высказывания такого рода при себе :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ой, ой, ой :biggrin: Для меня, например, IAR - стандартный компилятор

Ві наверное очень богатій человек...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ві наверное очень богатій человек...

 

К сожалению нет, а может, к счастью :biggrin: Но инструмент должен быть удобный, а это и есть инструмент для программиста.

 

Сначала пользовал с таблЭтками, потом купили на фирму.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сначала пользовал с таблЭтками, потом купили на фирму.

ну, они для этого утечки и делают, чтобы люди учились работать на их инструментах. тоже понять можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для меня, например, IAR - стандартный компилятор, а gcc - видел я в одном месте...

Ох уж эти вендузятники...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ох уж эти вендузятники...

Да, да! Именно :biggrin: Работать надо, используя те программы, которые характеризуются удобством, а не бесплатностью :rolleyes:

 

ЗЫ. Сори за оффтоп.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, к чему относится дефайн __ARM_ARCH_7M__?

Вроде написано CM3 or CM4, т.е. для STM32F407 надо дефайнить?

Его не надо определять. Надо определить -mcpu (и -mfpu). В зависимости от них компилятор сам выведет __ARM_ARCH_xxx.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Его не надо определять. Надо определить -mcpu (и -mfpu). В зависимости от них компилятор сам выведет __ARM_ARCH_xxx.

Это определяется директивами препроцессора или опять фишка GCC? (У меня тоже IAR=) =

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эти определения специфичны для gcc. У IAR, вероятно, есть свои ключи для определения архитектуры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...