Jump to content

    

ek74

Свой
  • Content Count

    81
  • Joined

  • Last visited

Community Reputation

0 Обычный

About ek74

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

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    г. Саратов

Recent Profile Visitors

2487 profile views
  1. Старт STM32

    Цитата(Immortal_Buka @ May 6 2015, 10:26) Код#define __START _start bl    __START А где можно посмотреть реализацию этой функции? Ну например тут: 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. Цитата(MrYuran @ May 13 2013, 11:35) Осталось сделать то же самое, но статически. Если писать на Си и есть поддержка стандарта c99 (для GCC включаем -std=c99), то можно так CODE#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

    Цитата(MiklPolikov @ Jan 17 2013, 08:25) Как вообще включить OPAMP ? Тактирование совмещено с тактированием компараторов. КодRCC_APB1PeriphClockCmd(RCC_APB1Periph_COMP, ENABLE); Цитата(MiklPolikov @ Jan 16 2013, 06:42) В моём процессоре нет выхода OPAMP1_VINM Не во всех процах есть модуль OPAMP, его нет в STM32L15x6/8/B. А в Medium+ и High density devices - присутствует.
  6. STM32L152 внешние прерывания

    Цитата(Метценгерштейн @ Jan 11 2013, 02:09) где указать для этого проца, что EXTI0 будет именно на порт А? Код// 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. Цитата(dimay192 @ Jul 2 2012, 10:15) Свежая! Возможно даже слишком свежая - из гит-репозитория собирал! Я то же собирал из репозитория, проблем не возникло. Вот лог прошивки STM32L151RBT6 CODE 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 Цитата(dimay192 @ Jul 2 2012, 07:23) Второй вопрос возник из-за того, что для stm32f1 есть отдельный набор команд (stm32f1x unlock 0, stm32f1x mass_erase 0,...), а для stm32lx подобного нет.Для этого, я использую по-секторное стирание. Кодflash erase_sector 0 0 31 Вообщем полёт нормальный, с учетом того, что у меня в JTAG chain сидят ещё STM32F405RGT6 и MAX5M240ZT100ISN. Всё прошиваеться.
  9. Цитата(Nikitoc @ May 18 2011, 14:40) Т.е. preemption priority для всех одинаковый, а subpriority разные? А зачем тогда нужны эти subpriority если на выполнение прерываний они не влияют?[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. Цитата(Nikitoc @ May 18 2011, 14:40) Это корректно?В принципе, да. И не забыть установить приоритет для SysTick.
  10. Цитата(Nikitoc @ May 18 2011, 01:19) Ну а выставляю соответственно: КодNVIC_SetPriority(SysTick_IRQn, 3); Используйте 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. Цитата(belen @ Apr 28 2011, 16:13) Странно, но у меня нет возможности редактировать свои сообщения. Не понял, что, для этого нужны особые привилегии? Правка личных тем и сообщений
  12. Цитата(gotty @ Apr 24 2011, 12:05) http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html http://gcc.gnu.org/onlinedocs/gcc/Function...on-Pragmas.html Цитата(belen @ Apr 25 2011, 13:05) Я работаю с GCC уже не первый год и знаю какие флаги изменяют режим оптимизации, но режим оптимизации прменяется ко всему файлу(ам). __attribute__ ((optimize("Os"))) Цитатаoptimize The optimize attribute is used to specify that a function is to be compiled with different optimization options than specified on the command line. Arguments can either be numbers or strings. Numbers are assumed to be an optimization level. Strings that begin with O are assumed to be an optimization option, while other options are assumed to be used with a -f prefix. You can also use the `#pragma GCC optimize' pragma to set the optimization options that affect more than one function. See Function Specific Option Pragmas, for details about the `#pragma GCC optimize' pragma. This can be used for instance to have frequently executed functions compiled with more aggressive optimization options that produce faster and larger code, while other functions can be called with less aggressive options. Работает с начиная с версии GCC 4.4.
  13. Linux for cortex

    Цитата(AlexandrY @ Aug 9 2009, 22:02) Боюсь в обещанном порте вместо нормального стека TCP/IP будет тот самый печально известный LwIP. Скорей всего там будет вот это NicheLite™ TCP/IP stack for STM32 А на счёт остального - полностью согласен.
  14. Linux for cortex

    Цитата(HARMHARM @ Aug 7 2009, 18:06) Не думаю, что даже ucLinux будут портировать. Это не совсем так. ВыдержкаЦитатаµClinux is running on STM32, we will publish soon (During Summer 2009 ) all the sources and the final Application Note on our web site www.st.com/stm32 Полностью читаем топик на форуме st - uClinux on STM32
  15. Всем доброй ночи. Посмотрел описания на SBC Тион Про 270 от ЗАО "Завод Электрооборудования". На первый взгяд для моих задач подходит. Поделитесь, пожалуйста, впечатлениями, кто пользовался.