Изучение уязвимостей электронных систем.
 
key programming immo tools emergency start device программаторы ключа заводилки Кодграббер штатных охранных систем, toyota, lexus, subaru.

Вернуться   Изучение уязвимостей электронных систем > Программирование микроконтроллеров > ARM

Ответ
 
Опции темы
Старый 16.12.2014, 01:11   #1
AliStark
Модератор
 
Аватар для AliStark
 
Регистрация: 16.08.2014
Адрес: Красное море
Сообщений: 255
Поблагодарил: 23
Поблагодарили 139 раз в 93 сообщениях
AliStark имеет захватывающую ауруAliStark имеет захватывающую ауруAliStark имеет захватывающую ауру
Восклицание иниц код, или Ебемся с кубом-MX_STM32F4

[Ссылки могут видеть только зарегистрированные пользователи. ]

Что такое CUBE_MX от ST.COM (есть ролик на ютубе, но всеж советую почитать, особенно конец!!!
а то можно попасть на дискаверю и на новый камень)

CubeMX
это такая роскошная байда
для генерации начального инициализационного кода
почти тоже самое что и код генератор во всеми любимым, румынским IDE-CAVR
от Паши Хайдука (интересно хоть кто нить ему денег дал ?
типа выбираешь целевой кристалл и погнал мышкой расставлять порты на IN / OUT,
настраиваете таймера и получаете сразу начальный код
с шапкой в 2 листа
и уже готовым шаблоном типа
while(1)
{ебаш свой коД херэ}

или в случае при работе все прги от переполнения таймеров
сразу имеете
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here

// Я всегда предпочитал писать именно на таймерах, т.к. циклы подвешивают все дело
//на время выполнения, особенно если на while(с невыполнимым уловим) ! for() он
хотя бы заканчивается рано или поздно
//а тут (сост таймера) в каждый цикл (сопоставимо с MIPS, в зависимости от тактовой частоты)
//можно указывать что делать с ногами, проверять состояние (кнопки, вход с RF),
//или присваивать состояния портов
//Особенно удобно для тех, кто тащиться с кодграберов и келога, см AN745, она как раз
//выполнена на 4 состояниях, подвешенных на [TIM0_OVF]
}
(За куб>)
Проще говоря не нужно сидеть часами в даташите, дрочить регисты, по 5-10 регистров
чтоб настроить ту или иную ногу так как т хочешь!
А тут у нас далеко не Mega8 тут ног то более!!! Да и режимов работы у них от 5 и более!
а спец порты spi, usb, ADC, переназначаемые это полный пиздец !

Короче ручной инициализации портов и периферии(ног) без код гена,
тупо регистрами из PDFки СТОИТ только разок поучиться, попробовать!
Cкажем по урокам с ЮТУБА "Уроки STM32F4" (классный препод кстати!, тока дефайны у него какие то кривые )
что бы иметь базовые знания! пригодятся, и ПОТОМ более удобные методики как инициализация код генератором
пойдут на ура, да и в случае чего не будете впадать в жутки ступор, когда код ген что то не сможет сделать
или мысли о том - а откуда взялся этот начальный код на 2 страницы ?? а может удалить это хлам.... )
Ну и визуал код ген саму прогу за тебя не напишет !

//************************************************** ********************
Совсем забыл сказать !
генератор нач кода от st.com CubeMX
просто мега визуальный! указываешь нужный камень, у нас это будет STM32F4VGT6
и видим КАРТИНКУ нашего микроконтроллера, как на даташите !
щелкаете мышкой на ногу и указываете нужный вам режим работы,
к примеру если на ногу будет привязан светодиод, RF - передатчик
, то нога будет GPIO_Output, а если кнопка или всем любимый RFReciver433MHZ ))
то щелкаем на ногу и в выпавшем меню GPIO_Input (Как у AVR были PORT и PIN)

Итак за сам кубMX называется он так stm32cubemx.zip
лежит на ST.COM понятое дело. Качайте, ставьте!
Только желательно не в ебаный C:\Program Files
а куда нить по ближе к WorkSpace , типа где вся ваша работа по микроконтроллерам,
и где компилер Keil , IAR , Где Папка ST.
Обязательно заведите себе такую (ST), причем в корне отдельного лог-диска
//************************************************** ***********************

Ну а так как раскуривать ARMы ямен красен будем с STM32F4-DISCOVERY
на который имеем 100ногий проц, а конкретно STM32F4VGT6
И с код генератором CubeMX появляться 1ый подводный камень, а скорее бочка с тротилом
А именно :
щелкаете по КУБУ и понятное дело ставите STM32F407VGT6, начинаете настраивать ноги как
левой пятке вздумаеться, НО !!!

Плата дискавери это уже готовый девайс !
микроконтроллер УЖЕ ПРИПАЯН ПО ОПРЕДЕЛЕННОЙ СХЕМЕ некоторые ноги
в которой (схеме) ВЫПОЛНЯЮТ СТРОГО ОПРЕДЕЛЕННУЮ ФУНКЦИЮ !!!
И менять их ни в коем случае нельзя ! иначе будет джихад

К примеру - вы имеет желание настроить все ноги (выведены на 2 косы)
настроить на выход, чтобы навешать на плату внешних исполнителей, типа
светодиодов, биперов, передатчиков для глушилки ...
И казалось бы щелкай мышкой на все ноги и настраивай их на GPIO_OUT

И ПИЗДЕЦ !!! Вы останетесь без SWD, JTAG, RESET да и вообще без какой либо возможности
программировать проц после исполнения такого иниц-кода - проц просто не будет воспринимать
сигналы программирования! амба! пиздец! шайтан!
! а ведь иенно по SWD это программатор, он же отладчик, работает DISCOVERY

Это самое страшное,
Но есть и куча других ньансов типа онбоард периферии, такой как звуковуха, сенсор движения
внешние кварцы, 4 светодиода, кнопка (уж точно должна быть настроена на вход)
//************************************************** *****************************
Так как же не обломаться по полной ?
Да просто ! качайте доку на вашу дискаверю файл DM00037368.pdf документ UM1467 USER MANUAL,

[Ссылки могут видеть только зарегистрированные пользователи. ]
это на 407VGT6
Она другую будет так же, тока с вашим процем
ключ "Discovery kit for STM32Fxxxx lines"
именно эту !!! (есть еще похожая Getting started )
(чтоб как на картинке в аттаче, внизу поста)

Далее открываете и желательно распечатывайте
Нам же понадобяться таблицы 4.12 Extension connectors
В которой четко и ясно расписано на какая нога должна быть настроена ИМЕННО ТАК
А какие ноги пустые и творить с ними можно что угодно !


типа : PA13 JTMS-SWDIO 72 - - - - - SWDIO - - - - - 4 - 42
- значит щелкнуть в КУБЕ по PA13 нужно именно в режим SYS_JTMS-SWDIO и уже точно не GPIO_OUT
например ! )

или скажем по таблице из док на дискавери
PA3 пустой (на плате выеден на левую косу) вот тут множите щелкнуть как вам удобно
на вход выход, ADC там аж 15 !!! вариантов 8-))))

Короче сначала настраиваем проц под дискавери (по таблице 4.12 Extension connectors)
настраиваем осталные ноги как взбредет в бошку и только тогда
>сгенерить код>куда>какой IDE компилер, IARам, MDK

и получим готовый стартовый проет вида
d:\ST\_DISCOVERY_LIB_\407\111\Inc\stm32f4xx_hal_co nf.h
d:\ST\_DISCOVERY_LIB_\407\111\Inc\stm32f4xx_it.h
d:\ST\_DISCOVERY_LIB_\407\111\Src\main.c
d:\ST\_DISCOVERY_LIB_\407\111\Src\stm32f4xx_hal_ms p.c
d:\ST\_DISCOVERY_LIB_\407\111\Src\stm32f4xx_it.c
d:\ST\_DISCOVERY_LIB_\407\111\111.ioc

Вот так, даже MAIN.C готовый !
а в нем всякая всячина и
/* Infinite loop */
while (1)
{
// Ну хуля тут скалишь ?!
}

И в добрый путь, во имя зла и 159/158 стати

Миниатюры
IMG_20141215_221316.jpg  


Если вас провцируют на НЕ содержательный разговор, сообщениями
НЕ несущими смысловой нагрузки, КОРМЯ провокационной

- НЕ ОТВЕЧАЙТЕ !, пишите нам !
тыкнуть "БАН" проще чем чистить грязь !


Хочется срача ? / Инет принимаете за реальную жизнь ?
- соц сети ваш выбор !
AliStark вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

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

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



Текущее время: 16:00. Часовой пояс GMT +4.


Перевод: zCarot