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

ek74

Свой
  • Постов

    81
  • Зарегистрирован

  • Посещение

Весь контент ek74


  1. Старт STM32

    Ну например тут: GNU Tools for ARM Embedded Processors. Качаешь исходники компилятора. В дереве исходников находишь такой файл \src\newlib\newlib\libc\sys\arm\crt0.S, который и содержит реализацию _start.
  2. Старт STM32

    Из вполне доступного, можно это почитать: GCC: статические конструкторы
  3. Загляни по ссылке https://github.com/libopencm3/libopencm3. Там справа есть кнопочка "Download ZIP"
  4. Если писать на Си и есть поддержка стандарта c99 (для GCC включаем -std=c99), то можно так #include <stdio.h> float matrix1[3][4] = { { 1.0f, 2.0f, 3.0f, 4.0f }, { 5.0f, 6.0f, 7.0f, 8.0f }, { 9.0f, 10.0f, 11.0f, 12.0f } }; float matrix2[4][2] = { { 1.0f, 2.0f }, { 3.0f, 4.0f }, { 5.0f, 6.0f }, { 7.0f, 8.0f } }; void matrix_out(int n, int m, float matrix[n][m]) { printf("Матрица[%d][%d]:\n", n, m); for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) printf("\t%f", matrix[i][j]); putchar('\n'); } } int main() { matrix_out(3, 4, matrix1); matrix_out(4, 2, matrix2); return 0; }
  5. STM32L151 OPAMP1 ключ SanB

    Тактирование совмещено с тактированием компараторов. RCC_APB1PeriphClockCmd(RCC_APB1Periph_COMP, ENABLE); Не во всех процах есть модуль OPAMP, его нет в STM32L15x6/8/B. А в Medium+ и High density devices - присутствует.
  6. // Connect EXTI line 0 to PA.0 SYSCFG->EXTICR[EXTI_PinSource0 >> 0x02] = (SYSCFG->EXTICR[EXTI_PinSource0 >> 0x02] & ~(0x0F << ((EXTI_PinSource0 & 0x03) * 4))) | (EXTI_PortSourceGPIOA << ((EXTI_PinSource0 & 0x03) * 4));
  7. #if defined (__VFP_FP__) && !defined(__SOFTFP__) // Используем аппаратную плавучку #else // Используем софтовую плавучку #endif
  8. Я то же собирал из репозитория, проблем не возникло. Вот лог прошивки STM32L151RBT6 Open On-Chip Debugger 0.6.0-dev-ga21affa-dirty (2012-06-22-11:08) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/doxygen/bugs.html Info : only one transport option; autoselect 'jtag' 400 kHz adapter_nsrst_delay: 100 jtag_ntrst_delay: 100 cortex_m3 reset_config sysresetreq Info : device: 4 "2232C" Info : deviceID: 364511235 Info : SerialNumber: FTP6QG5WA Info : Description: Olimex OpenOCD JTAG A Info : clock speed 400 kHz Info : JTAG tap: cpld.tap tap/device found: 0x020a50dd (mfg: 0x06e, part: 0x20a5, ver: 0x0) Info : JTAG tap: slave.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4) Info : JTAG tap: slave.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0) Info : JTAG tap: STM32L151RBT6.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4) Info : JTAG tap: STM32L151RBT6.bs tap/device found: 0x06416041 (mfg: 0x020, part: 0x6416, ver: 0x0) Info : STM32L151RBT6.cpu: hardware has 6 breakpoints, 4 watchpoints Info : JTAG tap: cpld.tap tap/device found: 0x020a50dd (mfg: 0x06e, part: 0x20a5, ver: 0x0) Info : JTAG tap: slave.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4) Info : JTAG tap: slave.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0) Info : JTAG tap: STM32L151RBT6.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4) Info : JTAG tap: STM32L151RBT6.bs tap/device found: 0x06416041 (mfg: 0x020, part: 0x6416, ver: 0x0) target state: halted target halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0x080009cc msp: 0x20004000 Info : flash size = 128kbytes erased sectors 0 through 31 on flash bank 0 in 8.578125s wrote 7224 bytes from file ../../build/mcu_master/exe/us_classic_master.elf in 0.843750s (8.361 KiB/s) Info : JTAG tap: cpld.tap tap/device found: 0x020a50dd (mfg: 0x06e, part: 0x20a5, ver: 0x0) Info : JTAG tap: slave.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4) Info : JTAG tap: slave.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0) Info : JTAG tap: STM32L151RBT6.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4) Info : JTAG tap: STM32L151RBT6.bs tap/device found: 0x06416041 (mfg: 0x020, part: 0x6416, ver: 0x0) shutdown command invoked Для этого, я использую по-секторное стирание. flash erase_sector 0 0 31 Вообщем полёт нормальный, с учетом того, что у меня в JTAG chain сидят ещё STM32F405RGT6 и MAX5M240ZT100ISN. Всё прошиваеться.
  9. [The Definitive Guide to the ARM Cortex-M3, Second Edition, Page 114] The preempt priority level defines whether an interrupt can take place when the processor is already running another interrupt handler. The subpriority level value is used only when two exceptions with the same preempt priority level occurred at the same time. In this case, the exception with higher subpriority (lower value) will be handled first. В принципе, да. И не забыть установить приоритет для SysTick.
  10. Используйте NVIC_EncodePriority(...). Например: /* 2 bits for pre-emption priority and 2 bits for subpriority */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /* Set USART1 interrupt preemption priority to 1 */ NVIC_SetPriority(USART1_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 1, 0)); /* Set SysTick interrupt preemption priority to 3 */ NVIC_SetPriority(SysTick_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 3, 0));
  11. Правка личных тем и сообщений
  12. __attribute__ ((optimize("Os"))) Работает с начиная с версии GCC 4.4.
  13. Linux for cortex

    Скорей всего там будет вот это NicheLite™ TCP/IP stack for STM32 А на счёт остального - полностью согласен.
  14. Linux for cortex

    Это не совсем так. Выдержка Полностью читаем топик на форуме st - uClinux on STM32
  15. Всем доброй ночи. Посмотрел описания на SBC Тион Про 270 от ЗАО "Завод Электрооборудования". На первый взгяд для моих задач подходит. Поделитесь, пожалуйста, впечатлениями, кто пользовался.
  16. Я это прекрасно осознаю, благо изменять придется не много (только работу с uart). А вот за это - спасибо. Просмотрел, не заметил я этот документ у TI :unsure: Может быть это будет следуюший шаг :rolleyes: Всем откликнувшимся - большое спасибо.
  17. Замена msp430f149 на msp430f241x

    Имется древний проект на 149. Сейчас возникла необходимость реанимировать его с большим расширением функциональности. Но в 60 Кб уже не уладываемся. На сайте TI нашел msp430f241x (msp430f2416, msp430f2417, msp430f2418, msp430f2419), бегло просмотрел описания на них. На первый взгляд распиновки и работа с периферией и низ совпадает со 149. Собственно вопрос (может кто уже делал подобное): могу ли я тупо запаять 241x вместо 149, ну и соответственно перекомпилировать программу без изменения в работе с железом?
  18. А если Вы пишите на C++, и у Вас есть глобальные статические экземпляры некоторых классов (конструкторы таких объектов вызываются ДО main). И самое главное - эти объекты должны работать с железом. В этом случаи инициализация периферии в main будет как на бане гудок.
  19. Проверил. Действительно это есть, НО только если включить английский интерфейс. В русском - этого пункта нет. Обнаружил следующую вещь, которая зависит от выбранного языка: Русский: Мой Профиль · Новые сообщения · Мой помощник · · 0 новых писем Английский: My Controls · View New Posts · My Assistant · My Friends · 0 New Messages
  20. А у меня этого нет даже на главной странице. Кроме того, пропал расширенный поиск (это там где можно было выбирать в каком разделе ищем). Еще обнаружил, что на странице информации о пользователе – полный бардак. Скриншот добавить не могу, т.к. пропала возможность прицепить к сообщению файл. PS: Пользуюсь Оперой
  21. STM32 C/C++ build environment using CodeSourcery Sourcery G++ Там есть всё как настроить CodeSourcery GCC для STM32 (включая пример для отладочной платы Olimex STM32-H103) с использованием STM32F101xx and STM32F103xx firmware library by STMicroelectronics
  22. Согласен есть ошибка со вторым каналом TIM3, но мне кажется (на железе нет возможности проверить) это не тот случай. Насколько я понимаю, ошибка проявляется при совместном использовании I2C1 и TIM3_CH2:2.4.8 I2C1 and TIM3_CH2 remapped Conditions ● I2C1 and TIM3 are clocked. ● I/O port pin PB5 is configured as an alternate function output. В приведённом примере I2C1 не используется. А для того, что бы работал remap необходимо включить тактирование AFIO, о чём собственно я и указал в предыдущем посте. Если я не прав то, пожалуйста, поправьте.
  23. Включи тактирование AFIO. Замени строку /* GPIOA and GPIOB clock enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); на /* GPIOA, GPIOB and AFIO clocks enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
  24. Да. Есть ещё варианты: - GNU ARM toolchain - CodeSourcery GNU Toolchain for ARM Processors - WinARM - Сборка от klen`а
  25. Стоит задача подключить LCD-модуль BP320240E-20b (производитель BOLYMIN) через RS-232 к MCU. Документация от производителя очень скудная, описание протокола обмена по RS-232 отсутствует. Может кто-нибудь использовал в своих разработках такие модули?
×
×
  • Создать...