STM32G4. Документация на русском языке
Попробовал STM32G4 Nucleo-64 boards (MB1367). Скорее игрушка, чтобы посмотреть примеры. Писал, писал и просто кончилась память. Однако, наиграться вдоволь точно есть чем!
Для более-менее серьезного проекта я бы рекомендовал G473CEU.
G473CEU- влюбиться, да запросто. Во всяком случае напрочь отшибает желание взять в руки какой-нибудь STM32F0 или F1.
Сразу хочу сказать, что все сказанное в статье: «CCM (core coupled memory) data RAM. Документация на русском языке» — работает из коробки.
Хотя IAR Embedded Workbench for ARM 9.10.1 с этой серией преподносит некоторые «уроки» оптимизации.
Я особо не раскачивал ситуацию, но при размещении кода функции в CCMSRAM
с оптимизацией по памяти конструкция
for (uint8_t i = 0; i < 2; i++ )
{
for (uint8_t j = i + 1; j < 2; j++)
{
asm("nop");
}
}
внутренний цикл отрабатывает дважды.
IAR почему-то ставит оптимизацию по памяти по умолчанию для STM32G4. Это, наверное из расчета на G431CBU.
Можно, конечно, все заделать volatile, но тогда зачем ставить оптимизацию?
При стандартном объявлении модификация переменных внутреннего цикла происходит
после выхода во внешний.
Однако, если объявить переменные вне функции, а еще лучше использовать глобальные,
то все работает корректно.
Чудит и CubeMX.
При переходе от одного проекта к другому в CubeMX Version 6.9.1
дернуло включить Clock Source Internal Clock в режиме PWM четвертый таймер.
В предыдущем проекте было Clock Source Disable и все работало.
Получилась «такая трава»! Функции инициализации таймеров привожу в архиве.
В остальном пока больше ничего не заметил.
Из «вкусного» на бытовом уровне, например, вывод картинок через DMA с W25Q прям на ST7735 в режиме «из периферии в периферию» мимо процессора с частотой SPI 60 МГц.
LL_DMA_ConfigAddresses (DMA1, LL_DMA_CHANNEL_6, LL_SPI_DMA_GetRegAddr(SPI1), LL_SPI_DMA_GetRegAddr(SPI2), LL_DMA_DIRECTION_MEMORY_TO_PERIPH);
Документацию выкладываю «в части касающейся», в рамках того, что пришлось разобрать самому.
(RM0440)_Analog_to_digital_converters_(ADC)_RU
(RM0440)_STM32_Digital-to-analog_converter_(DAC)_RU
(RM0440)_STM32_General_purpose_timers_(TIM2_TIM3_TIM4_TIM5)_RU
(RM0440)_System_and_memory_overview _RU
(RM0440)_Voltage_reference_buffer_(VREFBUF)_RU
С уважением Петр.
Реализуем коммерческие проекты.
Возможна работа по договору подряда.
t654rk@mail.ru
Ваши комментарии к статье: