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

Прошивка STM32F105RBT6 не стартует без отладчика.

11 часов назад, Donker сказал:

вы наверно путаете, на BOOT0 / BOOT1 должен быть низкий уровень а не высокий!

Я ж откуда знаю куда вам надо, если низкий тогда проверить что напряжение  на выводах не достигает 0.28*(3.3-2)+0.8 =1,164 В.

9 часов назад, Donker сказал:

Соединение BOOT0 с землёй даже вообще без резистора проблему не решает.

Т.е. вы напряжение на выводах не проверяли?

 

О!, до меня только что дошло что вы наверное пытаетесь код из RAM запустить? Тогда, как советуют, еще смотрите в ваш map-файл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

HardEgor

Я проверял уровень на выводе BOOT0 он там действительно низкий.

Спойлер

stm32boot.jpg

 

Нет я не пытаюсь запустить код из RAM, это самый обычный проект.

 

 

Выкинул из проекта всё лишнее, вот что осталось:

 

//*******************************************************************************


#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
//*******************************************************************************
GPIO_InitTypeDef  GPIO_InitStructure; //структурная переменная
//*******************************************************************************
int main(void)
{
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
volatile int i;
//******************************************************************************************************************************
{ //настройка портов    
//--------------------------------------------------------------------------------------------------------------------------
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);   //включаем тактирование

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_5;  //светодиоды D1, D2, D3
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //обычный выход
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
//--------------------------------------------------------------------------------------------------------------------------
}
while (1)
  {   
//---------------------------------------------------------------------------------        
    GPIO_SetBits(GPIOB, GPIO_Pin_0); //высокий уровень
  for(i=0;i<0x5AE8BA;i++); //delay
    GPIO_ResetBits(GPIOB, GPIO_Pin_0); //низкий уровень

    GPIO_SetBits(GPIOB, GPIO_Pin_1);    
  for(i=0;i<0x5AE8BA;i++); //delay
  GPIO_ResetBits(GPIOB, GPIO_Pin_1);
            
  GPIO_SetBits(GPIOB, GPIO_Pin_5);
  for(i=0;i<0x5AE8BA;i++); //delay
    GPIO_ResetBits(GPIOB, GPIO_Pin_5);
//---------------------------------------------------------------------------------        
  }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
}

проект целиком: https://yadi.sk/d/nN9qjF5aeXpbpg

проблема осталась - включение уровня оптимизации "O0" (фактически отключенная оптимизация) вместо "Oz image size" (которая по умолчанию)
в компиляторе v6 делает невозможной запуск прошивки из флэша кроме как из под отладчика.


(зажигаем три светодиода по кругу на 2 сек.)

 

проект целиком: https://yadi.sk/d/nN9qjF5aeXpbpg

проблема осталась - включение уровня оптимизации "O0" (фактически отключенная оптимизация) вместо "Oz image size" (которая по умолчанию)
в компиляторе v6 делает невозможной запуск прошивки из флэша кроме как из под отладчика.
Изменено пользователем Donker

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, x893 said:

Сначала изучаем эту картинку

Ну я вот изучил. BOOT0 в нуле (так нам обещает Donker), main flash memory, как и должно быть.

Настройки JLink'а тоже стандартно-обыкновенные.

Мысль не раскроете? Для средних умов, таксказать.

 

PS Donker, может, камень сдох? Не пробовали какой-нибудь другой экземпляр?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

35 minutes ago, esaulenka said:

Ну я вот изучил. BOOT0 в нуле (так нам обещает Donker), main flash memory, как и должно быть.

Настройки JLink'а тоже стандартно-обыкновенные.

Мысль не раскроете? Для средних умов, таксказать.

 

PS Donker, может, камень сдох? Не пробовали какой-нибудь другой экземпляр?

Не пойму, что именно раскрывать.

Все на картинке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как именно ресет организован?

Что на нем стоит снаружи? Микросхема какая, или кондер,подтяжка,  или ничего?

Был случай. Я ставлю на ресет MCP120, выход с открытым стоком. Но как-то раз они у меня закончились, но была куча MCP100 с push-pull выходом.

Ну думаю, какая разница. Поставил. Эх и наловился глюков. Совершенно непонятно стартовало. То в Hardfault вываливалось, то не запускался PLL.

Потом доперло,  что на pullup перетягивает внутренний ресет. Осцилл это подтвердил.

Т.е. надо ставить или с открытым стоком, или просто кондер 0.1 мкф на GND.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Схема в архиве с проектом.

Просто кнопка на землю и всё, выводы 5 и 6 разъёма J9 пока никуда не подключены.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Единственно что мне непонятно, почему программа пытается исполнятся из RAM?

И зачем в имени файла .cpp ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проект будет в дальнейшем использовать куски кода C++ а не чистый C, пока это простой тестовый проект, они там не встречаются. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошил STM32F105RB.hex из проекта в STM32F107RCT6 - на PB0, PB1, PB5 есть меандр. Это тот, что не запускается? BOOT через светодиоды нельзя сажать, может 0 не увидеть. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тот hex что в проекте, это рабочий вариант т.к. скомпилирован с уровнем оптимизации по умолчанию.

Я приложил hex скомпилипованный без оптимизации, вот с ним должны быть проблема.

STM32F105RB.hex

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...