Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 27.02.2013, 13:42  
Spider55
Частый гость
 
Регистрация: 08.10.2009
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
Spider55 на пути к лучшему
Вопрос Re: FAQ по STM8

Подскажите пожалуйста, как так прошить STM8L151, чтобы не потерять заводской bootloader?
Сейчас после включения питания, в течении 1 секунды я могу "войти" в bootloader, но как только я зашиваю в чип прошивку, повторно войти в бутлоадер уже не удаётся. Если верить TN0189 то надо записать в Option Bytes значение 0x55AA. В "чистом" чипе было только 0xAA, я дописал туда 0х55. Попробовал записать моргалку светодиодом, и всё. Бутлоадера не стало. Стираем чип через SWIM и снова всё работает.
Можно как-то исключить в будущем это?
Реклама:
Spider55 вне форума  
Непрочитано 27.02.2013, 15:07  
kittec
Гражданин KAZUS.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: FAQ по STM8

Spider55 , почитайте тут http://we.easyelectronics.ru/STM8/8l...l-nachalo.html.
kittec вне форума  
Непрочитано 03.03.2013, 12:40  
operator
Частый гость
 
Регистрация: 15.11.2009
Сообщений: 28
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
operator на пути к лучшему
Вопрос Re: FAQ по STM8

Hi all!
Проблема заключается в том, что компилятор космик устанавливает бит который не нужно устанавлитвать.
Пример программы:
#include ‹STM8S105C6.h›
#define TEST 2
main()
{
PB_DDR = 255;//здесь порт настраивается на выход
PB_CR1 = 255;
PB_ODR = (TEST‹‹1);// Мы устанавливает "1" на вывод 2 порта В
//И она уставливается
PB_ODR = (TEST‹‹0);//Мы устанавливает "0" на вывод 2 порта В
//И он устанавливается. А вот тут самое интересное. Которое заключеется в том, что на выводе 1, который в
//этой программе не задействован, устанавливается "1"
while (1)
{
_asm("nop");//А тут просто брейкпойнт
}
}

На что отладчик в окне дизассемблер заявляет:
0x80ce ‹main› 0x35FF5007 MOV 0x5007,#0xff MOV _PB_DDR,#0xff
main.c:6 PB_CR1 = 255;
0x80d2 ‹main+4› 0x35FF5008 MOV 0x5008,#0xff MOV _PB_CR1,#0xff
main.c:7 PB_ODR = (TEST‹‹1);
0x80d6 ‹main+8› 0x35045005 MOV 0x5005,#0x04 MOV _PB_ODR,#0x04
main.c:8 PB_ODR = (TEST‹‹0);
0x80da ‹main+12› 0x35025005 MOV 0x5005,#0x02 MOV _PB_ODR,#0x02
main.c:12 _asm("nop");
0x80de ‹main+16› 0x9D NOP NOP
0x80df ‹main+17› 0x20FD JRT 0x80de JRT 0x80de
rupt_vector.c:17 return;

То есть компилятор самовольно устанавил бит (номер 2) в регистре периферии (PB_ODR).
Это баг компилятора? Или я неправильно понял ситуацию и что-то не так сделал?
И можно ли какими-то путями (например, опциями компилятора) гарантировано исключить подобные ситуации?
operator вне форума  
Непрочитано 04.03.2013, 09:15  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: FAQ по STM8

PB_ODR = (TEST‹‹1);// Мы устанавливает "1" на вывод 2 порта В
2‹‹1=4
PB_ODR = (TEST‹‹0);//Мы устанавливает "0" на вывод 2 порта В
2‹‹0=2
Может так:
PB_ODR |= (1‹‹2);// Мы устанавливает "1" на вывод 2 порта В
PB_ODR &= ~(1‹‹2);//Мы устанавливает "0" на вывод 2 порта В
oleg110592 вне форума  
Сказали "Спасибо" oleg110592
operator (05.03.2013)
Непрочитано 04.03.2013, 20:28  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от operator Посмотреть сообщение
PB_ODR = (TEST‹‹0);//Мы устанавливает "0" на вывод 2 порта В
Это ошибка. Попробуйте такой код:
Код:
#define Pin5    5
#define Pin7    7

        printf("Pin %d mask-0 is: %d\n",Pin5,(Pin5‹‹0));
        printf("Pin %d mask-0 is: %d\n",Pin7,(Pin7‹‹0));
        printf("Pin %d mask-1 is: %d=n",Pin5,(Pin5‹‹1));
        printf("Pin %d mask-1 is: %d\n",Pin7,(Pin7‹‹1));
и посмотрите, каков результат в двоичном представлении.

Ох, уж эти, компиляторы!
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Сказали "Спасибо" tempora
operator (05.03.2013)
Непрочитано 05.03.2013, 18:17  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от operator Посмотреть сообщение
Hi all! Проблема ...
Ну как, задышал компилятор?
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 05.03.2013, 18:45  
operator
Частый гость
 
Регистрация: 15.11.2009
Сообщений: 28
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
operator на пути к лучшему
По умолчанию Re: FAQ по STM8

Да задышал вроде.
Сейчас пытаюсь аппартный SPI запустить.
operator вне форума  
Непрочитано 05.03.2013, 20:25  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от operator Посмотреть сообщение
Сейчас пытаюсь аппартный SPI запустить.
Куда ? В космос ?
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 16.03.2013, 18:41  
woroba
Гражданин KAZUS.RU
 
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
woroba на пути к лучшему
По умолчанию Re: FAQ по STM8

На рутрекере появился IAR for STM8 V1.40.1
и его похоже научили работать с битами.
__________________
Не ошибается лишь тот, кто ни чего не делает!

Последний раз редактировалось woroba; 16.03.2013 в 18:50.
woroba вне форума  
Сказали "Спасибо" woroba
Easyrider83 (16.03.2013)
Непрочитано 16.03.2013, 19:47  
s64
Временная регистрация
 
Регистрация: 08.02.2010
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 14 раз(а) в 12 сообщении(ях)
s64 на пути к лучшему
По умолчанию Re: FAQ по STM8

зато разучились показывать навигацию по проекту - в правом верхнем углу
есть значек показать все функции пректа - там пусто. И еще одна полезность пропала, раньше можно было щелкнуть правой кнопкой мыши по функции и перейти к ее определению - теперь то же нет.
s64 вне форума  
 

Закладки

Метки
arm, cortex, stm32, stm8
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импульсная зарядка для авто-аккумуляторов (новодел) Falconist Источники питания и свет 1915 14.03.2024 19:56
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
STM8(S/L), первые впечатления kison STM8 1423 19.05.2018 19:23
Вопросы и замечания по топику - FAQ по PROTEUS avr123-nm-ru Proteus 291 05.06.2015 20:49
FAQ Импульсный трансформатор alberio Источники питания и свет 87 13.11.2012 18:07


Часовой пояс GMT +4, время: 10:36.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot