Например TDA7294

Форум РадиоКот • Просмотр темы - STM32F103C8 перенос таблицы прерываний
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 17, 2024 02:59:26

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 62 ]    , , 3,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Пн окт 29, 2018 15:12:42 
Первый раз сказал Мяу!

Зарегистрирован: Вт окт 23, 2018 09:10:53
Сообщений: 20
Рейтинг сообщения: 0
Что находится в STM32F103C8 по адресу 0x3FF0?
Флеш начинается с 0x08000000.

на 0х08000000 вообще ничего нет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Пн окт 29, 2018 15:16:56 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Тогда привет тебе от бутлоадера)

Добавлено after 2 minutes 21 second:
Заливай бутлоадер, и снова делай дамп тогда


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Пн окт 29, 2018 15:20:57 
Первый раз сказал Мяу!

Зарегистрирован: Вт окт 23, 2018 09:10:53
Сообщений: 20
Рейтинг сообщения: 0
Тогда привет тебе от бутлоадера)

Добавлено after 2 minutes 21 second:
Заливай бутлоадер, и снова делай дамп тогда

я протупил, в программаторе просто не пишется 0х800, но подразумевается.
Пишется с 0х8004000, все ок
Приложу хекс файл еще http://rgho.st/8NNVJfX5K


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Пн окт 29, 2018 15:50:34 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Написал два скетча, пробуй.

https://yadi.sk/d/R_o1KuuOAoNSaQ
https://yadi.sk/d/fHssRYf43igznw

1. Грузи сперва бутлоадер с вытиранием всего флэша
2. Грузи основную прогу с вытиранием только секторов загрузки (по картинке 5)

3. Подключай к USART-USB PA2 - TX (параметры связи 115к, 8 , 1, нет)

4. При включении МК вылетит сообщение "Hello, this is main programm!" - это значит, что МК прыгнул в основную прогу
5. Замкни PB9 на GND, держи замкнутым и тыцни на ресет, должно вылететь "Programming mode. Erease firmware? Y/N"

Ждём результатов.

P.S. Проверил у себя в железе.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Вт окт 30, 2018 07:39:33 
Первый раз сказал Мяу!

Зарегистрирован: Вт окт 23, 2018 09:10:53
Сообщений: 20
Рейтинг сообщения: 0
Написал два скетча, пробуй.

https://yadi.sk/d/R_o1KuuOAoNSaQ
https://yadi.sk/d/fHssRYf43igznw

1. Грузи сперва бутлоадер с вытиранием всего флэша
2. Грузи основную прогу с вытиранием только секторов загрузки (по картинке 5)

3. Подключай к USART-USB PA2 - TX (параметры связи 115к, 8 , 1, нет)

4. При включении МК вылетит сообщение "Hello, this is main programm!" - это значит, что МК прыгнул в основную прогу
5. Замкни PB9 на GND, держи замкнутым и тыцни на ресет, должно вылететь "Programming mode. Erease firmware? Y/N"

Ждём результатов.

P.S. Проверил у себя в железе.

Вообщем то работает, только сообщение о том что мы в главной программе не вылетает.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Вт окт 30, 2018 07:43:32 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
А что из этого тогда работает?

Добавлено after 2 minutes 3 seconds:
Хочу видеть полный дамп двух последних залитых прошивок с адреса 0x8000000 и схему подключения boot0, boot1.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Вт окт 30, 2018 07:43:36 
Первый раз сказал Мяу!

Зарегистрирован: Вт окт 23, 2018 09:10:53
Сообщений: 20
Рейтинг сообщения: 0
А что из этого тогда работает?

1,2 и 5 пункты. При замыкании PB9 выдает на экран сообщение которые вы написали.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Вт окт 30, 2018 07:47:13 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Используется плата - самопал или вот это? Но сперва хочу полный дамп, ибо вчера всё проверил - рабочие прошивки.
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Вт окт 30, 2018 07:55:24 
Первый раз сказал Мяу!

Зарегистрирован: Вт окт 23, 2018 09:10:53
Сообщений: 20
Рейтинг сообщения: 0
http://rgho.st/7rXr4J8XT вот такая плата, МК stm32f103c8, то же самое что вы прислали


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Вт окт 30, 2018 08:03:43 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Можно в моём проекте поменять ещё девайс на stm32f103c8, у меня под cb скомпилен, но это скорее всего не поможет, у них отличия, насколько помню, только в объёме флэша. Надо дампы сравнивать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Вт окт 30, 2018 09:40:50 
Первый раз сказал Мяу!

Зарегистрирован: Вт окт 23, 2018 09:10:53
Сообщений: 20
Рейтинг сообщения: 0
Можно в моём проекте поменять ещё девайс на stm32f103c8, у меня под cb скомпилен, но это скорее всего не поможет, у них отличия, насколько помню, только в объёме флэша. Надо дампы сравнивать.

Проект который вы скинули работает, проблема была с ST-Link, но понимаете я делал подобный проект сам и переносил его на другой адрес, он работал, но когда я добавлял прерывание, оно не срабатывало при переносе, главная проблема в этом. Вы мне прислали проект, где нет прерывания.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Вт окт 30, 2018 14:34:54 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Вечером скину с прерыванием, не перенёс этот проект вчера на ЯД.

Добавлено after 1 minute 13 seconds:
А вообще, попробуй добавить прерывание прямо в мой проект)

Например, по тому же приёму байта в прерывании от ЮСАРТ отсылай его назад

Добавлено after 4 hours 47 minutes 5 seconds:
Обновил файлы основной программы по ссылке на Я.Диске, добавил прерывание от ЮСАРТА2 на приём, данные возвращаются корректно => таблица прерываний на месте. Всё работает. Проверяй у себя, потом дальше будем разбираться.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Ср окт 31, 2018 08:29:20 
Первый раз сказал Мяу!

Зарегистрирован: Вт окт 23, 2018 09:10:53
Сообщений: 20
Рейтинг сообщения: 0
Вечером скину с прерыванием, не перенёс этот проект вчера на ЯД.

Добавлено after 1 minute 13 seconds:
А вообще, попробуй добавить прерывание прямо в мой проект)

Например, по тому же приёму байта в прерывании от ЮСАРТ отсылай его назад

Добавлено after 4 hours 47 minutes 5 seconds:
Обновил файлы основной программы по ссылке на Я.Диске, добавил прерывание от ЮСАРТА2 на приём, данные возвращаются корректно => таблица прерываний на месте. Всё работает. Проверяй у себя, потом дальше будем разбираться.

Да все работает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Ср окт 31, 2018 08:31:12 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 1
С EXTI разберёшься или нужна помощь?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Ср окт 31, 2018 08:35:16 
Первый раз сказал Мяу!

Зарегистрирован: Вт окт 23, 2018 09:10:53
Сообщений: 20
Рейтинг сообщения: 0
С EXTI разберёшься или нужна помощь?

Пока сам попробую, если что то не получиться, обращусь к вам, спасибо за помощь)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Пн окт 28, 2019 20:52:37 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 24, 2015 11:04:20
Сообщений: 37
Рейтинг сообщения: 0
Да все работает.
Так в чем же была ошибка, вы поняли в чем разница между тем что вы делали изначально и рабочим вариантом? Просто у меня похожая ситуация, вроде перемусолено все сто раз, все сделал как "те парни из интернета", но прыгнуть из одного проекта в другой не могу....

Два пустых проекта уже создал один светодиодом дрыгает, второй просто вызывает первый, все настроил а вызова нет, прыжок в никуда... Собственно вот оба проекта: https://yadi.sk/d/yNoaSm-SbkeSAA они под Atollic TrueSTUDIO. Шью каждый отдельно они каждый занимает по сектору.

В проекте который должен вызвать другой проект все настройки умолчальные, в майне код:
Код:
#define APPLICATION_ADDRESS    0x08004000
uint32_t app_jump_address;
typedef void(*pFunction)(void);
pFunction Jump_To_Application;
__disable_irq();
app_jump_address = *( uint32_t*) (APPLICATION_ADDRESS + 4);
Jump_To_Application = (pFunction)app_jump_address;
/* Initialize user application's Stack Pointer */
__set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS);
Jump_To_Application();
У второго настройки изменены, в system_stm32f4xx.c:
#define VECT_TAB_OFFSET 0x4000 /*!< Vector Table base offset field.
This value must be a multiple of 0x200. */


stm32_flash.ld:
/* Specify the memory areas */
MEMORY
{
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 192K
CCMRAM (rw) : ORIGIN = 0x10000000, LENGTH = 64K
FLASH (rx) : ORIGIN = 0x8004000, LENGTH = 2032K
}


Вроде все указал ничего не забыл, а нет, не работает...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Вт окт 29, 2019 11:49:56 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 24, 2015 11:04:20
Сообщений: 37
Рейтинг сообщения: 1
Решение нашел. Проблема была в том что перед прыжком на новый код прерывания я запрещал, а после не разрешал, ну вот не думал я что код который фактически с нуля инициализирует все переменные и периферию требует этого... Ошибся..

Спойлер
Код:
/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.c
  * @brief          : Main program body
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
  * All rights reserved.</center></h2>
  *
  * This software component is licensed by ST under BSD 3-Clause license,
  * the "License"; You may not use this file except in compliance with the
  * License. You may obtain a copy of the License at:
  *                        opensource.org/licenses/BSD-3-Clause
  *
  ******************************************************************************
  */
/* USER CODE END Header */

/* Includes ----------*/
#include "main.h"

/* Private includes ----------*/
/* USER CODE BEGIN Includes */

/* USER CODE END Includes */

/* Private typedef ----------*/
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ----------*/
/* USER CODE BEGIN PD */

/* USER CODE END PD */

/* Private macro ----------*/
/* USER CODE BEGIN PM */


/* USER CODE END PM */

/* Private variables ----------*/

/* USER CODE BEGIN PV */

/* USER CODE END PV */

/* Private function prototypes ----------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code ----------*/
/* USER CODE BEGIN 0 */

/* USER CODE END 0 */

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* USER CODE BEGIN 1 */

  __enable_irq();

  /* USER CODE END 1 */
 

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */

   
   HAL_Delay(50);
   HAL_GPIO_TogglePin(LD4_GPIO_Port, LD4_Pin);
   //HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin);


  }
  /* USER CODE END 3 */
}

/**
  * @brief System Clock Configuration
  * @retval None
  */
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /** Configure the main internal regulator output voltage
  */
  __HAL_RCC_PWR_CLK_ENABLE();
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
  /** Initializes the CPU, AHB and APB busses clocks
  */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
  RCC_OscInitStruct.PLL.PLLM = 8;
  RCC_OscInitStruct.PLL.PLLN = 50;
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
  RCC_OscInitStruct.PLL.PLLQ = 7;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }
  /** Initializes the CPU, AHB and APB busses clocks
  */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV8;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV4;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
  {
    Error_Handler();
  }
}

/**
  * @brief GPIO Initialization Function
  * @param None
  * @retval None
  */
static void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOG_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);


  /*Configure GPIO pins : LD3_Pin LD4_Pin */
  GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);



}

/* USER CODE BEGIN 4 */


/* USER CODE END 4 */

/**
  * @brief  This function is executed in case of error occurrence.
  * @retval None
  */
void Error_Handler(void)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */

  /* USER CODE END Error_Handler_Debug */
}

#ifdef  USE_FULL_ASSERT
/**
  * @brief  Reports the name of the source file and the source line number
  *         where the assert_param error has occurred.
  * @param  file: pointer to the source file name
  * @param  line: assert_param error line source number
  * @retval None
  */
void assert_failed(uint8_t *file, uint32_t line)
{
  /* USER CODE BEGIN 6 */
  /* User can add his own implementation to report the file name and line number,
     tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  /* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/


Просто в начале майна добавил разрешение:
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */

__enable_irq();

/* USER CODE END 1 */


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Сб дек 25, 2021 14:26:00 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 8
Зарегистрирован: Вт июн 03, 2008 01:39:47
Сообщений: 140
Рейтинг сообщения: 0
Решение нашел

Спасибо! Допустил ту же ошибку. Даже не подумал бы на глобальный запрет прерываний.
Особенно вводит в ступор то, что действие ассемблерной вставки __enable_irq(); и __disable_irq(); никак не видно из отладчика.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Сб дек 25, 2021 16:13:09 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 0
Особенно вводит в ступор то, что действие ассемблерной вставки __enable_irq(); и __disable_irq(); никак не видно из отладчика.
Не знаю про какой отладчик речь, но в IAR-овском прекрасно видно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103C8 перенос таблицы прерываний
СообщениеДобавлено: Сб дек 25, 2021 19:29:57 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Особенно если знать где смотреть :)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 62 ]    , , 3,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y