STM HAL как библиотека (используя IDE 1.6.9)

Rogerclark
Sun 19 июня 2016 г., 21:55
Просто мысль...

Но, глядя на то, как arduino.org, используйте HAL в то же время, что и Libmaple для Star Otto..

Интересно, может ли можно сделать HAL в библиотеку.

Затем это может позволить людям использовать функции HAL для расширенных периферийных устройств или просто для повторного использования выхода из кода, которые пользователи HAL используют HAL.

Недостатком этого будет размер HAL и, конечно, его использование RAM (хотя я не знаю, сколько из них он будет потреблять)

Конечно, может быть какой -то, если основная несовместимость, которая вообще исключает это.
Но это может быть задействовано

Martinayotte
Sun 19 июня 2016 г., 11:03 вечера
Да, это стоит изучить, особенно на более высоком F4/F7 ...

Rogerclark
Sun 19 июня 2016 г., 11:13 вечера
ХОРОШО

Я посмотрю, что Ардуино.org вставьте свою папку HAL.

Насколько я могу судить, они просто вызывают hal_init () в ядре, а затем, кажется, делают вызовы HAL в различных частях кода, в частности SPI и проволоки

Сжимать
Пн 20 июня 2016 г., 10:17
Я думаю, что это возможно и, кроме того, это правильный способ использовать HAL.
Я проводил много дней, изучая исходный код MBED, который основан на HAL ST. MBED имеет три слоя, на нижнем слое, где находятся аппаратные функции, которые прямо используют библиотеку HAL/CMSIS, в среднем слое есть A API низкого уровня, который распространен во всех вариантах, и поверх них классы API MBED, что похоже на ARDUINO API.
Я думаю, что использование HAL с таким же образом, как MBED, является правильным способом сделать ядро, и почему нет, чтобы использовать некоторые из низкоуровневых кодов MBBE, чтобы скрыть различия разных вариантов. Я не готов показать или предложить что -то, но я думаю об этом в последнее время...

Rogerclark
Пн 20 июня 2016 г., 10:54
ХОРОШО

Я посмотрел на то, что они сделали для звездного Отто, и похоже, что они только что удалили один слой каталогов и объединили CMSIS и каталоги HAL в одну папку под названием HAL

Я не думаю, что это способ поддержать больше вариантов процессора. Но, вероятно, это способ поддержать сложные периферийные устройства.

У меня нет времени, чтобы посмотреть на это сегодня, но я посмотрю, смогу ли я что -нибудь взломать через день или два. (Если никто не победит меня ;-)

Сжимать
Пн 20 июня 2016 г., 11:03
Да, каталоги CMSIS/HAL могут быть вместе (источник и заголовки все вместе).
Я предпочитаю держать их в отдельных каталогах (источники и заголовки вместе), например:
/* * Roger Clark. * Note. The config parameter is not currently used. This is a work in progress. * Code needs to be written to set the config of the hardware serial control register in question. * */

Rogerclark
Пн 20 июня 2016 г., 11:26
Я не знаю, почему arduino.CC объединил их вместе.

Мы можем также попытаться заставить их работать в их первоначальных местах e.глин. Sub Polder CMSIS и т. Д., И комбинируйте только если есть проблемы с отдельными папками

Mrburnette
Пн 20 июня 2016 г. 12:38
Rogerclark написал: <...>
Интересно, может ли можно сделать HAL в библиотеку.
<...>

Rogerclark
Пн 20 июня 2016 г. 22:05
Привет, Рэй,

Не беспокойся...

Кажется, у меня не будет много времени, чтобы потратить на что -либо в данный момент.

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

Я просто думал, что опубликую это как мыслительный пузырь и сначала получу немного отзывов

Rogerclark
Вт 21 июня 2016 г. 12:18
Хорошо..

Я добился некоторого успеха с этим

Этот код теперь работает и моргает светодиод на моем Maple Mini
#ifndef USART_RX_BUF_SIZE #define USART_RX_BUF_SIZE 64 #endif /** USART device type */ typedef struct usart_dev { usart_reg_map *regs; /**< Register map */ ring_buffer *rb; /**< RX ring buffer */ uint32 max_baud; /**< @brief Deprecated. * Maximum baud rate. */ uint8 rx_buf[USART_RX_BUF_SIZE]; /**< @brief Deprecated. * Actual RX buffer used by rb. * This field will be removed in * a future release. */ rcc_clk_id clk_id; /**< RCC clock information */ nvic_irq_num irq_num; /**< USART NVIC interrupt */ } usart_dev;

Саймонф
Вт 21 июня 2016 г. 12:43
Rogerclark написал:Хорошо..

Я добился некоторого успеха с этим

Этот код теперь работает и моргает светодиод на моем Maple Mini

Rogerclark
Вт 21 июня 2016 г. 1:42
Я собирался опубликовать молнию библиотеки, но он слишком большой, чтобы прикрепить (почти 1 МБ), и я не хочу менять настройки форумов

Итак, мне пришлось подтолкнуть это к ветви разработки репо.

Примечание.

Не все в коде HAL в настоящее время включено.

Я только что использовал файл HAL Conf из Core HAL MX, который выглядит так

//void pwm_start(PinName pin, uint32_t clock_freq, uint32_t period, uint32_t value, uint8_t do_init) // set pwm frequency to 60.0 khz at 50% duty cycle on PA_6 pwm_start(PA_6, F_CPU, 1200, 600, 1);

Rogerclark
Вт 21 июня 2016 г., 6:03
Обновлять.

Я реэкспортировал файлы из куба, после сначала включив все возможные интерфейсы, чтобы все доступные файлы HAL были экспортированы кубом.

Однако мне пришлось впоследствии отключить автобус CAN, так как это мешает USB.

Я ищу больше примеров использования HAL, но большая часть кода, который я могу найти в Интернете Некоторые функции совершенно разные или отсутствуют

Насколько я могу судить, Cube должен поставляться с примерами, но я не вижу никакого способа экспортировать примеры, и я не вижу никаких примеров в установленных файлах куба (как часть Windows Exe Suite файлов)

Weiming
Вт 21 июня 2016 г., 6:09
Что не так с примером HAL

C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 708: 44: Ошибка: ожидается ')' до '*' token
#define gpioa ((gpio_typedef *) gpioa_base)

Rogerclark
Вт 21 июня 2016 г., 7:01
Можешь попробовать еще раз сейчас

Я обновил файлы, используя новые из куба, но похоже, что куб сгенерировал нагрузку новых файлов, а также просто заменив старые, а новые не получили обязательства по GIT

Итак, я переиздал, и, надеюсь, сейчас пример работает

Пса.
Какую доску вы выбрали ?


Редактировать.

Я сделал еще один чистый экспорт (из куба), так как я думал, что, возможно, у меня были несколько старых файлов из предыдущего экспорта, которые больше не использовались.
Но, похоже, нет избыточных файлов, только 3 файла, которые имели небольшие изменения.
Итак, я совершил эти изменения,

Weiming
Ср 22 июня 2016 г. 1:09
Все же ошибка
Я проверил это с помощью STM32F103RBT6

Arduino: 1.6.5 (Windows 8.1), 板 : ”Generic STM32F103R Series, STM32F103RB (20K ОЗУ. 128K Flash), сериал "

В файле, включенном из C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f1xx.H: 149: 0,
от c: \ users \ pan \ documents \ arduino \ arpware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f1xx_hal_def.H: 48,
от c: \ users \ pan \ documents \ arduino \ arpware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f1xx_hal_rcc.H: 47,
от c: \ users \ pan \ documents \ arduino \ arpware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f1xx_hal_conf.H: 218,
от c: \ users \ pan \ documents \ arduino \ arpware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f1xx_hal.H: 48,
от c: \ users \ pan \ documents \ arduino \ arpware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/hal.H: 6,
от hal_gpio.Ино: 1:
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 713: 44: Ошибка: ожидается ')' до '*' token
#define gpioa ((gpio_typedef *) gpioa_base)
^
C: \ users \ pan \ documents \ arduino \ arphieware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/gpio.h: 62: 31: Примечание: в расширении макроп "gpioa '
extern struct gpio_dev* const gpioa;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 713: 44: Ошибка: ожидается ')' до '*' token
#define gpioa ((gpio_typedef *) gpioa_base)
^
C: \ users \ pan \ documents \ arduino \ arphieware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/gpio.h: 62: 31: Примечание: в расширении макроп "gpioa '
extern struct gpio_dev* const gpioa;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 713: 44: ошибка: ожидаемый инициализатор до '*' token
#define gpioa ((gpio_typedef *) gpioa_base)
^
C: \ users \ pan \ documents \ arduino \ arphieware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/gpio.h: 62: 31: Примечание: в расширении макроп "gpioa '
extern struct gpio_dev* const gpioa;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 714: 44: Ошибка: ожидается ')' до '*' token
#define gpiob ((gpio_typedef *) gpiob_base)
^
C: \ users \ pan \ documents \ arduino \ arphieware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/gpio.h: 64: 31: Примечание: в расширении макроп "gpiob '
extern struct gpio_dev* const gpiob;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 714: 44: Ошибка: ожидается ')' до '*' token
#define gpiob ((gpio_typedef *) gpiob_base)
^
C: \ users \ pan \ documents \ arduino \ arphieware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/gpio.h: 64: 31: Примечание: в расширении макроп "gpiob '
extern struct gpio_dev* const gpiob;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 714: 44: ошибка: ожидаемый инициализатор до '*' token
#define gpiob ((gpio_typedef *) gpiob_base)
^
C: \ users \ pan \ documents \ arduino \ arphieware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/gpio.h: 64: 31: Примечание: в расширении макроп "gpiob '
extern struct gpio_dev* const gpiob;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 715: 44: Ошибка: ожидается ')' до '*' token
#define gpioc ((gpio_typedef *) gpioc_base)
^
C: \ users \ pan \ documents \ arduino \ arphieware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/gpio.h: 66: 31: Примечание: в расширении макроп "gpioc '
extern struct gpio_dev* const gpioc;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 715: 44: Ошибка: ожидается ')' до '*' token
#define gpioc ((gpio_typedef *) gpioc_base)
^
C: \ users \ pan \ documents \ arduino \ arphieware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/gpio.h: 66: 31: Примечание: в расширении макроп "gpioc '
extern struct gpio_dev* const gpioc;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 715: 44: ошибка: ожидаемый инициализатор до '*' token
#define gpioc ((gpio_typedef *) gpioc_base)
^
C: \ users \ pan \ documents \ arduino \ arphieware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/gpio.h: 66: 31: Примечание: в расширении макроп "gpioc '
extern struct gpio_dev* const gpioc;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 716: 44: Ошибка: ожидается ')' до '*' token
#define gpiod ((gpio_typedef *) gpiod_base)
^
C: \ users \ pan \ documents \ arduino \ arphieware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/gpio.h: 68: 31: Примечание: в расширении макро -gpiod '
extern struct gpio_dev* const gpiod;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 716: 44: Ошибка: ожидается ')' до '*' token
#define gpiod ((gpio_typedef *) gpiod_base)
^
C: \ users \ pan \ documents \ arduino \ arphieware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/gpio.h: 68: 31: Примечание: в расширении макро -gpiod '
extern struct gpio_dev* const gpiod;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 716: 44: ошибка: ожидаемый инициализатор до '*' token
#define gpiod ((gpio_typedef *) gpiod_base)
^
C: \ users \ pan \ documents \ arduino \ arphieware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/gpio.h: 68: 31: Примечание: в расширении макро -gpiod '
extern struct gpio_dev* const gpiod;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 718: 43: Ошибка: ожидается ')' до '*' token
#define adc1 ((adc_typedef *) adc1_base)
^
C: \ users \ pan \ documents \ arduino \ arpware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/adc.h: 46: 30: Примечание: в расширении макроа «ADC1 '
extern const struct adc_dev *adc1;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 718: 43: Ошибка: ожидается ')' до '*' token
#define adc1 ((adc_typedef *) adc1_base)
^
C: \ users \ pan \ documents \ arduino \ arpware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/adc.h: 46: 30: Примечание: в расширении макроа «ADC1 '
extern const struct adc_dev *adc1;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 718: 43: ошибка: ожидаемый инициализатор до '*' token
#define adc1 ((adc_typedef *) adc1_base)
^
C: \ users \ pan \ documents \ arduino \ arpware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/adc.h: 46: 30: Примечание: в расширении макроа «ADC1 '
extern const struct adc_dev *adc1;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 719: 43: Ошибка: ожидается ')' до '*' token
#define adc2 ((adc_typedef *) adc2_base)
^
C: \ users \ pan \ documents \ arduino \ arpware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/adc.h: 48: 30: Примечание: в расширении макроа «ADC2 '
extern const struct adc_dev *adc2;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 719: 43: Ошибка: ожидается ')' до '*' token
#define adc2 ((adc_typedef *) adc2_base)
^
C: \ users \ pan \ documents \ arduino \ arpware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/adc.h: 48: 30: Примечание: в расширении макроа «ADC2 '
extern const struct adc_dev *adc2;
^
C: \ users \ pan \ documents \ arduino \ ardware \ arduino_stm32 \ stm32f1 \ libraries \ hal \ src/stm32f103xb.H: 719: 43: ошибка: ожидаемый инициализатор до '*' token
#define adc2 ((adc_typedef *) adc2_base)
^
C: \ users \ pan \ documents \ arduino \ arpware \ arduino_stm32 \ stm32f1 \ system/libmaple/stm32f1/include/series/adc.h: 48: 30: Примечание: в расширении макроа «ADC2 '
extern const struct adc_dev *adc2;
^

Rogerclark
Ср 22 июня 2016 г. 1:22
Какую доску и вариант вы выбрали.

Я бегу IDE 1.6.9 и выбрал «STM32F103R Series» в качестве доски и попробовал все варианты, и все они собраны для меня.

Я думаю, что проблема может заключаться в том, что филиал развития может не работать с 1.6.5 (Сью в изменения в платформу.текст)


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

Интересно, не было ли что -то важное .Правила Gitignore

Я думаю, у меня все еще есть 1.6.5 на одной из моих старых машин, я попробую потянуть репо на эту машину и попробую еще раз.

Rogerclark
Ср 22 июня 2016 г. 1:37
Я только что проверил на своем 1.6.5 Машина, и она получает аналогичные ошибки

Я собираюсь попробовать использовать файлы из моего 1.6.9 Машина на 1.6.5 Машина (так как я не могу запустить оба идентификатора на одной и той же машине, что и все в цех)
Чтобы увидеть, является ли проблема IDE файлов.

Я вернусь к вам, когда выясню, что происходит, я.e Почему это работает на моем 1.6.9 Машина

Редактировать.
Просто попробовал копировать файлы, и они, кажется, не компилируются, так что это похоже на разницу между 1.6.5 и 1.6.9

Мне нужно получить 1.6.9 на ноутбук и попробуйте загрузить файлы из GIT на эту машину и попытаться определить, является ли это версия IDE, которая вызывает это

Rogerclark
Ср 22 июня 2016 г. 2:21 утра
Похоже, это проблема с IDE 1.6.5

Я только что вытащил последнюю версию филиала разработки (используя GIT) на свой ноутбук, который имеет IDE 1.6.9 на нем, и он собирает ОК.


Можете ли вы попробовать обновление до IDE 1.6.9 ??

Weiming
Ср 22 июня 2016 г., 5:24
в Ардуино 1.6.9
Пример HAL пример теста OK!!!

Rogerclark
Ср 22 июня 2016 г., 6:13
ХОРОШО

Я не уверен, что изменилось между 1.6.5 и 1.6.9, но я не думаю, что это важно

Однако я только что понял, что моя библиотека HAL на самом деле не вызывает HAL_INIT (), поскольку я не строил глобальный экземпляр библиотеки (который обычно выполняется в заголовке)

Я попытался позвонить в Hal_init () в эскизе, но похоже, что он облажается временем системы, и все идет очень медленно.

Я думаю, что это почти наверняка, потому что я не обращал внимания, когда экспортировал файлы из куба, и конфигурации часов неверны. - Я просто пытался заставить куб экспортировать в качестве файлов для как можно большего количества периферийных устройств, и не рассмотрел рассмотрение страницы конфигурации часов ;-(

Но я думаю, что, возможно, мы не можем назвать hal_init (), так как это может перенастроить множество вещей, которые нуждается в Libmaple.

Так что, возможно, это лучше всего, если я прокомментирую призыв к hal_init () в конструкторе класса, так что нет никаких шансов, что кто -то может создать класс самостоятельно и поэтому запустить hal_init (), не осознавая, что происходит, что происходит


Я думаю, пока не нашел еще несколько примеров.глин. DMA и DAC, что мы не узнаем, какие биты hal_init () должны быть запускаются

Rogerclark
Ср 22 июня 2016 г. 10:47
КСТАТИ. Если кто -нибудь знает, где я могу скачать примеры STM HAL, могут ли они опубликовать ссылку, так как я связываюсь с и вокруг сайта ST, и не могу найти, как загрузить примеры для серии F1

Я пытался собрать некоторые более старые примеры, но часто примеры, не являющиеся HAL, не компилируются, так как имена функций и структуры данных, похоже, изменились

Mrburnette
Ср 22 июня 2016 г., 11:51
Rogerclark написал:КСТАТИ. Если кто -нибудь знает, где я могу скачать примеры HAL STM,

Rogerclark
Ср 22 июня 2016 г. 12:09
Спасибо, Рэй

Я только что скачал

Интересно, что zip -файл содержит полную копию HAL и CMSIS, поэтому я подозреваю, что это может быть проще использовать этот HAL, а не для экспорта из куба, так как вам нужно отметить флажок, чтобы сделать куб Экспортируйте все его файлы (для поддержки всех внутренних устройств F103 E.глин. GPIO, таймер, CAN, USB и т. Д

Мне становится слишком поздно, чтобы попробовать примеры сегодня вечером, так как уже за 10 часов вечера, но завтра у меня должно быть время, чтобы попробовать некоторые из них.

Вассилис
Ср 22 июня 2016 г. 12:10
@Роджер
Если вы уже установили STM32Cubemx на Windows, перейдите к //pinMode(PA6, PWM); //void pwm_start(PinName pin, uint32_t clock_freq, uint32_t period, uint32_t value, uint8_t do_init) // set pwm frequency to 60.0 khz at 50% duty cycle on PA_6 //void pwm_start(PA_6, F_CPU, 1200, 600, 1); pwm_start(PA_6, F_CPU, 1200, 600, 1); void setup() { pinMode(PA6, PWM); }

Rogerclark
Ср 22 июня 2016 г. 12:15
Спасибо Вассилис

Похоже, эти файлы такие же, как и загрузка, которую я только что сделал по ссылке Рэя

Вассилис
Ср 22 июня 2016 12:22
Каждый репозиторий был загружен с Cubemx уже установлен там. Вам не нужно скачать его отдельно.
Более того, каждый раз, когда вы делаете «проверку на обновления» от Cubemx, вы получаете новые обновленные библиотеки/примеры/проекты в этой папке.

Rogerclark
Ср 22 июня 2016 г., 21:20
Спасибо Вассилис

Возможно, используя их, частично скрытые, файлы - лучший способ обновить варианты HAL MX.
Потому что это просто HAL и CMSIS, а не обновленная версия Main.C и т.д

Недавно я обнаружил, что в новой версии куба возникла проблемы с экспортом, так как файл проекта должен был быть «мигрирован», но миграция, похоже, не работает правильно :-(

Листья
SAT 25 июня 2016 г. 2:09
Я всегда выбираю файлы из каталога Cube, а не использую функцию экспорта из Cubemx - и экспортированный файл также не соответствует моей среде проектирования (я использую Eclipse с плагином ARM с измененным кодом запуска и линкером ^.^). И более удобно видеть исходные коды, скорее, позволить «Exe» сделать какую -то таинственную работу для вас - я признаю, что подозрительно относится к библиотекам поставщиков и поставщику предоставленных файлов EXE (для дизайна).

Что касается их использования в библиотеках Arduino, мне интересно, насколько хорошо работают эти библиотеки HAL - я не нашел много примеров в Интернете, кроме тех, которые поставляются с пакетом Cube. Для некоторых других поставщиков (например, Microchip) - я знаю, что их периферийная библиотека довольно плохая и наверняка не очень хорошо протестирована - и вы всегда должны писать свои собственные! И @Ray упомянут в других темах, они не хотят делать эти библиотеки лучше по причине.

Листья
Сб 25 июня 2016 г. 2:27 утра
О, и, между прочим, вот другой вопрос, который у меня есть, и я хотел бы, чтобы вы, ребята, о мнениях:

Я считаю, что CMSIS определенно является способом, так как это спецификация рук, а не ST или любые другие поставщики. Итак, я как бы доверял, что.
Но почему Хэл? - Можем ли мы расширить Libmaple с личными кодами, которые могут быть более заслуживающими доверия, чем библиотеки поставщиков :)
Я думаю, что поддержание обновлений с помощью HAL и попытки исправить их ошибки могут так же, как и разработка пользовательских кодов для новых периферийных устройств и чипов.

Mrburnette
SAT 25 июня 2016 г. 3:33
Leavesw написал:
<...>Можем ли мы расширить Libmaple с личными кодами, которые могут быть более заслуживающими доверия, чем библиотеки поставщиков :)
Я думаю, что поддержание обновлений с помощью HAL и попытки исправить их ошибки могут так же, как и разработка пользовательских кодов для новых периферийных устройств и чипов.

Rogerclark
SAT 25 июня 2016 г., 3:57
#4 были бы люди с сломанным оборудованием (покупая только одну доску, и не имея возможности определить, является ли это проблемой HW или S/W - без большого расследования)


Re: Почему Хэл

Мне было просто любопытно, могу ли я легко добавить HAL в качестве библиотеки, так как я думал, что это может быть более простой способ добавить такие функции, как SDIO.
Но. На данный момент я не уверен, что это практично.

Направление к ядро ​​на основе CMSIS / HAL - это отдельная поток, которая обсуждалась в нескольких других темах.

Weiming
Пн 27 июня 2016 г. 12:50 утра
любой прогресс

Rogerclark
Пн 27 июня 2016 г. 12:58 утра
У меня не было времени, чтобы выяснить, почему обратный вызов от примера таймера сбивает код.

Мне пришлось установить атоллический Truestudio для запуска примера таймера в отладчике, чтобы подтвердить, что он работает (и это делает), но у меня не было времени, чтобы поместить точки останова в коде и посмотреть, как вызываются функции прерывания.