Jump to content

    

ek74

Свой
  • Content Count

    81
  • Joined

  • Last visited

Community Reputation

0 Обычный

About ek74

  • Rank
    Частый гость
  • Birthday 10/12/1974

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

2525 profile views
  1. Ну например тут: GNU Tools for ARM Embedded Processors. Качаешь исходники компилятора. В дереве исходников находишь такой файл \src\newlib\newlib\libc\sys\arm\crt0.S, который и содержит реализацию _start.
  2. Из вполне доступного, можно это почитать: 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. Тактирование совмещено с тактированием компараторов. 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 от ЗАО "Завод Электрооборудования". На первый взгяд для моих задач подходит. Поделитесь, пожалуйста, впечатлениями, кто пользовался.