STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Re: STM32 новичку в ARM что к чему

Сообщение Andrew Martin »

Падает у меня objdump на эльфе от вашего исходника. Какие-то приколы с binutils.
Нужно искать иной дизасм, пробовал тем онлайн-дизасмом что показал выше - всё нормально.

Не будет толку от objdump :(

Нашел ADS 1.2, там должен быть ARM AXD debugger. Завтра может быть попробую.
Реклама
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

Re: STM32 новичку в ARM что к чему

Сообщение Alexey_N »

Andrew Martin писал(а):Не будет толку от objdump
Может ему ключи надо какие указать ... странно конечно все это. А онлайн дизасмом да, у меня тоже все норм.
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Реклама
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Re: STM32 новичку в ARM что к чему

Сообщение Andrew Martin »

Alexey_N писал(а): Может ему ключи надо какие указать ... странно конечно все это. А онлайн дизасмом да, у меня тоже все норм.
Кишки ему наружу вывернуть Олькой и посмотреть где непроходимость (или несварение) :)

Либо найти авторов и послать им багрепорт, пусть сами мучаются, отчего это их детище отказывается кушать вполне кошерный эльф :kill:

UPD: Отрапортовал баг, закинул эльф и описание.
Аватара пользователя
Kife)
Открыл глаза
Сообщения: 59
Зарегистрирован: Пн мар 02, 2009 13:52:44
Откуда: Киев
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Kife) »

Здравствуйте.
Пытаюсь прошить STM32F030P4 по SWD. Но не могу найти в чем проблема. Не могу прошить МК, работаю в Keil 5. МК читается и определяется софтинами STM32 ST-LINK Utility и CoFlash без проблем.
Если у кого-то была подобная проблема - отпишитесь.
Спасибо.
Если руки золотые, то неважно откуда они растут...
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

Re: STM32 новичку в ARM что к чему

Сообщение Alexey_N »

Чем же теперь дизассемблить fasm'овскией elf?

2 Kife)
Что значит "не могу прошить"? Подробнее.
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Реклама
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Re: STM32 новичку в ARM что к чему

Сообщение Andrew Martin »

Alexey_N писал(а):Чем же теперь дизассемблить fasm'овскией elf?
Обмануть Keil, подсунув ему свой *.axf. Правда он привык к отладочной информации в формате DWARF-3, но у них совместимость сверху вниз.

Или ждать, пока binutils не поправят, но судя по всему ждать долго - багов море, а фиксить желающих мало.

Кстати, ARM AXD debugger из ARM ADS 1.2 читает fasm'овские эльфы нормально (как и Протеус). Поэтому вероятно проблема всё-таки в binutils.

Когда было нечего делать, смастерил это. Оно только под STM32F0, но умеет симулировать ядро и отлаживать на уровне исходников. Математику на нём гоняю :tea: Впрочем, ничего другого в моей тумбочке не будет, как минимум в ближайший год :(
Реклама
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

Re: STM32 новичку в ARM что к чему

Сообщение Alexey_N »

Andrew Martin писал(а):ARM AXD debugger из ARM ADS 1.2
А вот этот где можно найти?
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
cahek80
Держит паяльник хвостом
Сообщения: 903
Зарегистрирован: Сб сен 11, 2010 17:32:42

Re: STM32 новичку в ARM что к чему

Сообщение cahek80 »

Kife) писал(а):Здравствуйте.
Пытаюсь прошить STM32F030P4 по SWD. Но не могу найти в чем проблема. Не могу прошить МК, работаю в Keil 5.
У меня в свое время не шился, нашел в инете где-то совет подключить вывод SDA через резистор. ставил 180 ом, после чего контроллер шился. а так хз.
Не нужно дергать спящего тигра за усы! Не высыпается 3-ий день!
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: STM32 новичку в ARM что к чему

Сообщение КРАМ »

Kife) писал(а):Здравствуйте.
Пытаюсь прошить STM32F030P4 по SWD. Но не могу найти в чем проблема. Не могу прошить МК
Стесняюсь спросить...
А BOOT0, надеюсь, Вы к земле притянули? :roll:
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Re: STM32 новичку в ARM что к чему

Сообщение Andrew Martin »

Alexey_N писал(а):
Andrew Martin писал(а):ARM AXD debugger из ARM ADS 1.2
А вот этот где можно найти?
Гугль в помощь. :) Учтите, он для взрослых процессоров ARM, не для МК, поэтому толку от него мало. Так, глянуть в дизассемблере эльф, и всё :(
Аватара пользователя
Kife)
Открыл глаза
Сообщения: 59
Зарегистрирован: Пн мар 02, 2009 13:52:44
Откуда: Киев
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Kife) »

КРАМ писал(а):А BOOT0, надеюсь, Вы к земле притянули? :roll:
Конечно же подтянул. И Reset к питанию, через 10к.

Alexey_N, вот если подробнее:
Изображение
То есть, камень определяется, стирается, но не позволяет записать. Как видно, верификация не проходит.

Резистор 210 Ом в цепь SWDIO результата не дал..
Если руки золотые, то неважно откуда они растут...
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

Re: STM32 новичку в ARM что к чему

Сообщение Alexey_N »

Kife) писал(а):Пытаюсь прошить STM32F030P4 по SWD
А через что прошиваете? ST-Link?
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Аватара пользователя
Kife)
Открыл глаза
Сообщения: 59
Зарегистрирован: Пн мар 02, 2009 13:52:44
Откуда: Киев
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Kife) »

Alexey_N писал(а):А через что прошиваете? ST-Link?
Да, первой версии. Тот что на борту отладочной планы stm32vldiscovery.
подключение - 3 провода. SWDIO, SWCLK и GND.
Если руки золотые, то неважно откуда они растут...
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

Re: STM32 новичку в ARM что к чему

Сообщение Alexey_N »

А питание? Может заниженное ...
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: STM32 новичку в ARM что к чему

Сообщение pokk »

Добрый день, не как не могу понять почему виснет I2C в stm32f103, запускается работает работает потом бац зависло.
Спойлер

Код: Выделить всё

//========================
PT_THREAD(Send_data_fsm(struct pt *pt,unsigned char data1,unsigned char data2)){
static unsigned char data[2];
	//---------------------------------------------------------------------------
    if(pt->lc!=0){ //Не первый запуск
          if(GetTimers(I2C_TimeOut)>TIMEOUT_I2C){
              Send_MSG(MSG_I2C_REBOOT);
              ResetTimers(I2C_TimeOut);
          }
    }
	//---------------------------------------------------------------------------
	PT_BEGIN(pt);
    ResetTimers(I2C_TimeOut);
	data[0]=data1;
	data[1]=data2;
    /* initiate start sequence */
	while(TakeMutex(I2C_MUTEX)){PT_YIELD(pt);}
    I2C_GenerateSTART(I2C2, ENABLE);
    /* check start bit flag */
    while(!I2C_GetFlagStatus(I2C2, I2C_FLAG_SB)){PT_YIELD(pt);};
    /*send write command to chip*/
    I2C_Send7bitAddress(I2C2, I2C_ADDR_LCD_KEY_LED, I2C_Direction_Transmitter);
    /*check master is now in Tx mode*/
	//--------------------------------------------------------------------------
    while(!I2C_CheckEvent(I2C2, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)){};  //Spead=400KHz delay=1000 clock   Spead=1KHz delay=65000 clock
    /*mode register address*/
    I2C_SendData(I2C2, data[0]);
	//--------------------------------------------------------------------------
    /*wait for byte send to complete*/
    while(!I2C_CheckEvent(I2C2, I2C_EVENT_MASTER_BYTE_TRANSMITTED)){PT_YIELD(pt);};  //3600 Speed=100Khz
    /*clear bits*/
    I2C_SendData(I2C2, data[1]);
	//--------------------------------------------------------------------------
    /*wait for byte send to complete*/
    while(!I2C_CheckEvent(I2C2, I2C_EVENT_MASTER_BYTE_TRANSMITTED)){PT_YIELD(pt);};
	//--------------------------------------------------------------------------
    /*generate stop*/
    I2C_GenerateSTOP(I2C2, ENABLE);
	while(I2C_GetFlagStatus(I2C2, I2C_FLAG_STOPF)){PT_YIELD(pt);};
	GiveMutex(I2C_MUTEX);
	PT_END(pt);
}
//========================
Виснет на проверке:

Код: Выделить всё

while(!I2C_CheckEvent(I2C2, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)){};  //Spead=400KHz delay=1000 clock   
I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED содержит флаги( BUSY, MSL, ADDR, TXE, TRA)
Более глубокое копание показало что всё дело в флаге ADDR.
Изменение куска кода на

Код: Выделить всё

	I2C2->CR1 |= I2C_CR1_START;
         while (!(I2C2->SR1 & I2C_SR1_SB)){};
         (void) I2C2->SR1;
	I2C2->CR1|=I2C_CR1_ACK;
         I2C2->DR = I2C_ADDR_LCD_KEY_LED;
         while (!(I2C2->SR1 & I2C_SR1_ADDR)){};
         (void) I2C2->SR1;
         (void) I2C2->SR2;
Нечего не дало всё так же может пару тысяч раз отправить байт потом повиснуть на проверке I2C_SR1_ADDR.

Код: Выделить всё

         while (!(I2C2->SR1 & I2C_SR1_ADDR)){};
При пошаговой отладке в IAR заметил что до while (!(I2C2->SR1 & I2C_SR1_ADDR)){}; флаг ADDR взводится, но как только начинаешь проверку он сбрасывается и соответственно там всё виснет.
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение rus084 »

что если использовать 2 канала ацп , вывод одного канала назначить на аналоговый вход а другого назначить на выход пуш-пулл?
Меня зовут Димон .
Изображение
Изображение
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

Re: STM32 новичку в ARM что к чему

Сообщение Alexey_N »

Andrew Martin писал(а):UPD: Отрапортовал баг, закинул эльф и описание.
А можно ссылку, хотелось бы отслеживать это дело :roll:

upd. Что интересно, arm-non-eabi-readelf.exe из того же пакета, что и objdump и objcopy, успешно читает этот файл.
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: STM32 новичку в ARM что к чему

Сообщение arkhnchul »

pokk писал(а):При пошаговой отладке в IAR заметил что до while (!(I2C2->SR1 & I2C_SR1_ADDR)){}; флаг ADDR взводится, но как только начинаешь проверку он сбрасывается и соответственно там всё виснет.
он жеж сбрасывается при чтении, не?
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Re: STM32 новичку в ARM что к чему

Сообщение Andrew Martin »

Alexey_N писал(а): А можно ссылку, хотелось бы отслеживать это дело :roll:

upd. Что интересно, arm-non-eabi-readelf.exe из того же пакета, что и objdump и objcopy, успешно читает этот файл.
Вот.

Этот факт и наводит на мысль, что виноваты как раз objdump/objcopy. Возможно у них общие какие-то части кода, отсюда и наследственность багов.

Впрочем, для open source проекта обилие багов простительно :)

UPD: Пришло письмо от разработчиков binutils: виноват всё-таки fasmarm - налажал в хидере одной из секций. Закинул баг на форум fasmarm, ждём...
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

Re: STM32 новичку в ARM что к чему

Сообщение Alexey_N »

О как, fasm значит.
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Ответить

Вернуться в «ARM»