Ребята! Прошу помощи или пояснения. Возникла необходимость добавить недостающие прерывания. (DMA2_Channel3_IRQHandler, SDIO_IRQHandler) Использую вот этот startup
Код:
;*************************************************************************************** ; Amount of memory (in bytes) allocated for Stack and Heap ; Tailor those values to your application needs ;*************************************************************************************** Stack_Size EQU 0x400 Heap_Size EQU 0x400
;******************************************************************************* ; Allocate space for the Stack ;******************************************************************************* AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack SPACE Stack_Size
;******************************************************************************* ; Allocate space for the Heap ;******************************************************************************* AREA HEAP, NOINIT, READWRITE, ALIGN=3
Heap SPACE Heap_Size
;******************************************************************************** ;* Declarations for the interrupt handlers that are used by the application. ;******************************************************************************** IMPORT __main
;****************************************************************************************** ;* NMI exception handler. - обработчик исключений ;* It simply enters an infinite loop. - это просто входит в бесконечный цикл ;****************************************************************************************** NMIException B NMIException
;****************************************************************************************** ;* Fault interrupt handler. - обработчик прерываний неисправности ;* It simply enters an infinite loop. - это просто входит в бесконечный цикл ;****************************************************************************************** HardFaultException B HardFaultException
;****************************************************************************************** ;* MemManage interrupt handler. ;* It simply enters an infinite loop. - это просто входит в бесконечный цикл ;****************************************************************************************** MemManageException B MemManageException
;****************************************************************************************** ;* Bus Fault interrupt handler. - обработчик прерываний шины ;* It simply enters an infinite loop. - это просто входит в бесконечный цикл ;****************************************************************************************** BusFaultException B BusFaultException
;****************************************************************************************** ;* UsageFault interrupt handler. ;* It simply enters an infinite loop. - это просто входит в бесконечный цикл ;****************************************************************************************** UsageFaultException B UsageFaultException
;****************************************************************************************** ;* DebugMonitor interrupt handler. ;* It simply enters an infinite loop. - это просто входит в бесконечный цикл ;****************************************************************************************** DebugMonitor B DebugMonitor
;****************************************************************************************** ;* SVCall interrupt handler. ;* It simply enters an infinite loop. - это просто входит в бесконечный цикл ;****************************************************************************************** SVCHandler B SVCHandler
;******************************************************************************************* ;* Make sure the end of this section is aligned. ;******************************************************************************************* ALIGN
;******************************************************************************************** ;* Code section for initializing the heap and stack - инициализация кучи и стека ;******************************************************************************************** AREA |.text|, CODE, READONLY
;******************************************************************************************** ;* The function expected of the C library startup ;* code for defining the stack and heap memory locations. ;******************************************************************************************** IMPORT __use_two_region_memory EXPORT __user_initial_stackheap __user_initial_stackheap LDR R0, =Heap LDR R1, =(Stack + Stack_Size) LDR R2, =(Heap + Heap_Size) LDR R3, =Stack BX LR
;****************************************************************************************** ;* Make sure the end of this section is aligned. ;****************************************************************************************** ALIGN
;******************************************************************************************* ;* End Of File ;******************************************************************************************* END
Подскажите, как правильно их сюда прописать. Или, может, другим способом их активировать.
Сами функции прерываний, откуда берется IMPORT, прописаны в файле stm32f10x_it.c. Компиляция проходит успешно. НО вот не задача. В эти дописанные прерывания контроллер не попадает. Пытался, к примеру зажечь светодиод по прерыванию таймера TIM8, не получилось. Повис. Точнее у меня заведен IWDG на 2сек. и вместо прерывания TIM8 идет перезагруз.
Подскажите, господа хорошие, что не так. Направьте на путь истинный.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Уже пробовал. И свой создавал и из ST-шных примеров подсовывал. Собственно он с библиотекой идет и при создании проекта туда подсовывается. Эти файлы совершенно разные. Контроллер с ST-м файлом вообще не стартует.
103VE это HD линейка и стартап не абыкакой а startup_stm32f10x_hd.s Он( и все остальное необходимое) лежит в паках Keil Спойлер
Код:
;******************** (C) COPYRIGHT 2011 STMicroelectronics ******************** ;* File Name : startup_stm32f10x_hd.s ;* Author : MCD Application Team ;* Version : V3.5.0 ;* Date : 11-March-2011 ;* Description : STM32F10x High Density Devices vector table for MDK-ARM ;* toolchain. ;* This module performs: ;* - Set the initial SP ;* - Set the initial PC == Reset_Handler ;* - Set the vector table entries with the exceptions ISR address ;* - Configure the clock system and also configure the external ;* SRAM mounted on STM3210E-EVAL board to be used as data ;* memory (optional, to be enabled by user) ;* - Branches to __main in the C library (which eventually ;* calls main()). ;* After Reset the CortexM3 processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. ;* <<< Use Configuration Wizard in Context Menu >>> ;******************************************************************************* ; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS ; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. ; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, ; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE ; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING ; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. ;*******************************************************************************
; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs ; <h> Stack Configuration ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ; </h>
Stack_Size EQU 0x00000400
AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size __initial_sp
;******************************************************************************* ; User Stack and Heap initialization ;******************************************************************************* IF :DEF:__MICROLIB
Да совершенно верно - китайские. Которые с платой шли. Без оси тренировался , все гуд. Причем по ST-шному алгоритму. О нем тут не раз писали. Ну а по существу. Те добавления, которые я внес, должны были помочь. Но прерывание возникает, а попадает не известно куда.
В общем РЕШЕНО это безобразие путем создания проекта с нуля ручками, а не ковыряния демо проектов. Все заработало. Хотя осталось чувство, что не разобрался я с тем файлом. Почему не видит прерывания после добавления недостающих строк, так и не знаю.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения