-
- Цитата: "...Программное разрешение или запрещение прерываний может
осуществляться с помощью инструкций CPSIE I и CPSID I. В CMSIS
предусмотрены следующие встроенные функции, генерирующие эти
инструкции: Chum_A(561 знак., 05.02.2024 09:00)
- Все не два. Это понятно. Вопрос в том почему армовцы сделали
"прерывание" перечислимым типом и не предусмотрели возможность
включения/выключения нескольких прерываний. Наверняка в этом должен
быть какой-то смысл. - IBAH(05.02.2024 14:48)
- Смысл в том что вектора инициализируют по одному. ASDFS(125 знак., 05.02.2024 15:16)
- У меня вот такое обычная практика. Аж четыре ассемблерных
инструкции можно было бы скипнуть. Но лень. :))) VladislavS.(2 знак., 05.02.2024 16:32, картинка, картинка)
- И никаких инициализаций приоритетов или сброса флагов! ASDFS(54 знак., 05.02.2024 16:40)
- Приоритеты по умолчанию в этом приложении устраивают. Флаги все
сброшены при инициализации железа вне main. - VladislavS.(05.02.2024 16:54)
- Так и хочется выдать про крестик и трусы. ASDFS(129 знак., 05.02.2024 17:05)
- О каких правилах речь? - VladislavS.(05.02.2024 17:20)
- Ну например про тот же CMSIS ASDFS(170 знак., 05.02.2024 17:31)
- Открываю CMSIS 6.0, конкретно core_cm3.h, в котором определены
функции NVIC Cortex-M3. И не нахожу там ни структур, ни функций для
работы с ними. VladislavS.(1 знак., 05.02.2024 18:06, ссылка)
- буквы в этом файле после строчки 1424 не то? - Vit(09.02.2024 12:51)
- Нет, где там передача в функцию структуры с параметрами? - VladislavS.(09.02.2024 17:31)
- То есть хочешь сказать что API для конфигурирования периферии это
не CMSIS? ASDFS(50 знак., 05.02.2024 18:14)
- О какой периферии в моём коде речь? - VladislavS.(05.02.2024 18:24)
- Ну вот к примеру как выглядит конфигурирование канала прерываний ASDFS(632 знак., 05.02.2024 18:28)
- HAL? Каким боком он к CMSIS? - VladislavS.(05.02.2024 18:33)
- CMSIS это и есть вариант HAL. - ASDFS(05.02.2024 18:36)
- Нет. CMSIS это библиотека от ARM для процессорных ядер ARM. Когда
она только появилась, у ARM была затея сделать на его базе
единственно верный HAL. Но практически никто из вендоров это дело
не поддержал - как же учинить vendor lock, если код можно будет
легко перенести на процессоры других вендоров? Кроме того, как
выяснилось, не так уж и легко сделать универсальный API для всего
существующего зоопарка. Получаются либо "Hello world", либо всякие
убогие кадавры с LightElf(59 знак., 05.02.2024 19:34, ссылка)
- Вот да, vendor lock. Капиталисты проклятые! - ASDFS(05.02.2024 19:34)
- Вы привели функцию из библиотеки одного из вендоров. Я такими не
пользуюсь, только CMSIS от ARM для ядра процессора. - VladislavS.(05.02.2024 18:44)
- Значит ARM стандартизировала API HAL ядра но не API HAL вендоров? ASDFS(57 знак., 05.02.2024 18:54)
- Немного не так. В CMSIS есть шаблон согласно которому вендору
рекомендовано делать описание периферии в заголовочных файлах и
стартап. Библиотеки (набор функций) для работы с периферией это уже
вольное творчество индусов. У всем известной фирмы даже несколько
разных библиотек для одного контроллера есть. - VladislavS.(05.02.2024 19:32)
- И вот кто им мешал стандартизовать до конца? ASDFS(136 знак., 05.02.2024 19:32)
- Немного не так. В CMSIS есть шаблон согласно которому вендору
рекомендовано делать описание периферии в заголовочных файлах и
стартап. Библиотеки (набор функций) для работы с периферией это уже
вольное творчество индусов. У всем известной фирмы даже несколько
разных библиотек для одного контроллера есть. - VladislavS.(05.02.2024 19:32)
- Значит ARM стандартизировала API HAL ядра но не API HAL вендоров? ASDFS(57 знак., 05.02.2024 18:54)
- Нет. CMSIS это библиотека от ARM для процессорных ядер ARM. Когда
она только появилась, у ARM была затея сделать на его базе
единственно верный HAL. Но практически никто из вендоров это дело
не поддержал - как же учинить vendor lock, если код можно будет
легко перенести на процессоры других вендоров? Кроме того, как
выяснилось, не так уж и легко сделать универсальный API для всего
существующего зоопарка. Получаются либо "Hello world", либо всякие
убогие кадавры с LightElf(59 знак., 05.02.2024 19:34, ссылка)
- CMSIS это и есть вариант HAL. - ASDFS(05.02.2024 18:36)
- HAL? Каким боком он к CMSIS? - VladislavS.(05.02.2024 18:33)
- Ну вот к примеру как выглядит конфигурирование канала прерываний ASDFS(632 знак., 05.02.2024 18:28)
- О какой периферии в моём коде речь? - VladislavS.(05.02.2024 18:24)
- буквы в этом файле после строчки 1424 не то? - Vit(09.02.2024 12:51)
- Открываю CMSIS 6.0, конкретно core_cm3.h, в котором определены
функции NVIC Cortex-M3. И не нахожу там ни структур, ни функций для
работы с ними. VladislavS.(1 знак., 05.02.2024 18:06, ссылка)
- Ну например про тот же CMSIS ASDFS(170 знак., 05.02.2024 17:31)
- О каких правилах речь? - VladislavS.(05.02.2024 17:20)
- Так и хочется выдать про крестик и трусы. ASDFS(129 знак., 05.02.2024 17:05)
- Приоритеты по умолчанию в этом приложении устраивают. Флаги все
сброшены при инициализации железа вне main. - VladislavS.(05.02.2024 16:54)
- И никаких инициализаций приоритетов или сброса флагов! ASDFS(54 знак., 05.02.2024 16:40)
- У меня вот такое обычная практика. Аж четыре ассемблерных
инструкции можно было бы скипнуть. Но лень. :))) VladislavS.(2 знак., 05.02.2024 16:32, картинка, картинка)
- Смысл в том что вектора инициализируют по одному. ASDFS(125 знак., 05.02.2024 15:16)
- Все не два. Это понятно. Вопрос в том почему армовцы сделали
"прерывание" перечислимым типом и не предусмотрели возможность
включения/выключения нескольких прерываний. Наверняка в этом должен
быть какой-то смысл. - IBAH(05.02.2024 14:48)
- Конечно, пиши в NVIC->ICER любую константу с установленными соответствующими битами. ASDFS(100 знак., 04.02.2024 14:38)
- Контроллер прерываний вообще умеет запрещать/разрешать несколько
прерываний сразу? - IBAH(04.02.2024 14:30)
- Его не волнует, сколько ты их разрешаешь или запрещаешь за раз. Его
волнует, что у него содержится в его регистрах. - il-2(04.02.2024 17:18)
- Нихуя не понял, но очень интересно - IBAH(04.02.2024 22:40)
- Если кратко, то запрещать одной командой несколько прерываний сразу
можно, хоть 32 за раз. - AlexBi(04.02.2024 22:53)
- Спасибо. Именно это я и хотел услышать. - IBAH(05.02.2024 14:49)
- Если кратко, то запрещать одной командой несколько прерываний сразу
можно, хоть 32 за раз. - AlexBi(04.02.2024 22:53)
- Нихуя не понял, но очень интересно - IBAH(04.02.2024 22:40)
- Его не волнует, сколько ты их разрешаешь или запрещаешь за раз. Его
волнует, что у него содержится в его регистрах. - il-2(04.02.2024 17:18)
- Цитата: "...Программное разрешение или запрещение прерываний может
осуществляться с помощью инструкций CPSIE I и CPSID I. В CMSIS
предусмотрены следующие встроенные функции, генерирующие эти
инструкции: Chum_A(561 знак., 05.02.2024 09:00)