реклама на сайте
подробности

 
 
> Скрытый баг, О вреде копипасты
Genadi Zawidowsk...
сообщение Jul 3 2013, 06:24
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Столкнулся я с тем, что проект, ранее работавший на STM32F101, STM32F105 перестал работать на STM32F103 (буквочки не важны).
Вернее, проект работал, но "отваливался" дебаг порт SWD - помогала только загрузка через замыкание BOOT0. Радостно потирая руки, начал писать демонстрацию бага...
Внимательное чтение документации выявило причину.
Пока - код-загадка, который после программирования в STM32F103RC делал его "невидимым" для J-FLASH.

CODE
#include "stm32f10x.h"

#define STACK_SIZE 0x600

static __attribute__ ((aligned(8), section(".noinit"))) uint32_t pdwStack [STACK_SIZE] ;

typedef void IntFunc(void);
typedef IntFunc * IntFuncP;

static IntFunc ResetException;


static
__attribute__((used, section(".vectors"))) IntFuncP exception_table [256] = {

(IntFuncP) (& pdwStack [STACK_SIZE]),
ResetException,
};


static void ResetException(void)
{
/* Используется только SWD */
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;
AFIO->MAPR = (AFIO->MAPR & ~ AFIO_MAPR_SWJ_CFG) | AFIO_MAPR_SWJ_CFG_JTAGDISABLE; // PA15, BP3 & PB4 pins free for use.

/* ... много кода */
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;
AFIO->MAPR |= AFIO_MAPR_SPI1_REMAP;
/* ... инициализация SPI1 */

/* ... много кода */
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; /* I/O port B clock enable */
// Set PB3 as output
GPIOB->CRL = GPIO_CRL_CNF3_0;


/* ... много кода */
for (;;)
;
}



ps: вот тут
мучаются с похожей проблемой, но не нашли решения...


Сообщение отредактировал Genadi Zawidowski - Jul 3 2013, 07:01
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Genadi Zawidowski   Скрытый баг   Jul 3 2013, 06:24
- - SSerge   Цитата(Genadi Zawidowski @ Jul 3 2013, 13...   Jul 3 2013, 07:45
|- - demiurg_spb   Цитата(SSerge @ Jul 3 2013, 11:45) P.S. Х...   Jul 3 2013, 08:18
|- - Tahoe   Цитата(demiurg_spb @ Jul 3 2013, 12:18) В...   Jul 3 2013, 13:21
- - Genadi Zawidowski   Я решил просто - свой функцией, которая подставляе...   Jul 3 2013, 19:04
|- - Tahoe   Цитата(Genadi Zawidowski @ Jul 3 2013, 23...   Jul 4 2013, 08:26
|- - _Pasha   Цитата(Tahoe @ Jul 4 2013, 11:26) Так про...   Jul 4 2013, 08:43
|- - Genadi Zawidowski   Цитата(_Pasha @ Jul 4 2013, 12:43) Reus...   Jul 4 2013, 10:43
|- - Tahoe   Цитата(_Pasha @ Jul 4 2013, 12:43) Reus...   Jul 4 2013, 11:05
|- - _Pasha   Цитата(Tahoe @ Jul 4 2013, 14:05) Хотя Па...   Jul 4 2013, 13:37
|- - Tahoe   Цитата(_Pasha @ Jul 4 2013, 17:37) Чушь к...   Jul 4 2013, 14:12
|- - _Pasha   Цитата(Tahoe @ Jul 4 2013, 17:12) Или one...   Jul 7 2013, 06:04
- - Genadi Zawidowski   ЦитатаP.S. Хорошие грабли, я по ним уже ходил Но п...   Jul 3 2013, 20:20
|- - toweroff   Цитата(Genadi Zawidowski @ Jul 4 2013, 00...   Jul 3 2013, 22:17
- - _Pasha   Цитата(demiurg_spb @ Jul 3 2013, 11:18) В...   Jul 4 2013, 06:48
- - Fujitser   Быдлокод и возможность reuse - это совершенно орто...   Jul 7 2013, 05:23
- - Tahoe   Цитата(Fujitser @ Jul 7 2013, 09:23) Быдл...   Jul 7 2013, 22:38
- - Fujitser   Цитата(Tahoe @ Jul 8 2013, 04:38) Возможн...   Jul 8 2013, 13:31
- - Tahoe   Цитата(Fujitser @ Jul 8 2013, 17:31) Да, ...   Jul 8 2013, 16:48


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 10:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016