перепрограммировать плату Искра от амперки

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Задам вопрос тут в свете недавнего срача, ибо нашел несколько противоречивых описаний.

Можно ли перепрограммировать плату Искра от амперки, удалив из неё интерпретатор JS для дальнейшей работы через Keil?

На самой амперке вразумительного ответа не дали, есть типа "можно", но также видел неудачные попытки перешить через ST-Link, после которых плата превратилась в кирпичик. Даже был задан вопрос про level-2 защиту, но также без ответов.

В общем, лежит плата, боюсь угробить .. всё-таки ребенкин приз за 3-е место. Можно ли её реанимировать для программирования на нормальном С(++), есть у кого-то успешный опыт?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Архат, а чего бы ребёнку JS не изучить? Подумайте. Только не на уровне if/for - он там ничем от других не отличается, а серьёзно. Там, например, ООП в таком объёме, что никаким С++ с Явами и во сне не приснится (если у них, конечно, нормальный, по стандарту сделанный JS). Это реально очень продвинутый язык и для глубокого понимания ООП - великолепная песочница!

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

А зачем ребенку учить JS, если он ещё только осваивает С(++)? Какой смысл морочить голову ребенку более сложным ЯВУ, который превращает эту плату (168Мгц 1 такт= 1команда, с float + DSP!!) в 4-х килогерцовый калькулятор? Остаточная производительность 0.007% от оригинала (и это при условии что нет ни одного лишнего пробела, с ними всё ещё хуже!) .. я пока ещё "в своем уме". :)

Там же без ГОТОВЫХ библиотек ничегошеньки сделать нельзя из-за такой потери производительности .. чему учить? Возьми тут, добавь отсюда и вот оно пашет? Он это на Лего EV3 уже давно прошел..

P.S. первый и последний ответ на оффтоп. Далее буду вырезать, все что не связано с вопросом молча.

P.P.S. JavaScript - конечно же очень сильный и крутой язык и именно поэтому, порог (полноценного) вхождения в него выше чем в тот же С++, это с одной стороны. А с другой стороны - вся сила этого ЯВУ - в интерпретации конструкций на лету. То есть, ни для какого "боевого" применения в микроконтроллерах он не приспособлен никак. И добавленные опции "compiled" и пр. помогают не значительно (остаточное КПД 8-9% от оригинала, т.е. меньше 16Мгц НАНО). И чтобы добиться хоть какой-то "производительности" надо иметь обертки на готовыми .. упс, С(++) библиотеками. То есть СНАЧАЛА необходимо освоить С++, а уже потом что-то пытаться сделать на JS.

JS хорош в веб-программировании, но и то, только для создания "толстых клиентов", да и то .. в последнее время развивается webassembler и похоже вытеснит JS и отсюда полностью. В общем-то он как Алгол-68 в свое время: академичен, полон, крут .. но в жизнь не пошел как раз по этим причинам.

Это не для холивара. Это поясние, "сухой остаток" срача на амперке: проверено и выяснено с цифирьками. Если хотите повозражать - создайте отдельную тему во флудилке, плиз. Не тут.

Тут надеюсь, что кто-нибудь поможет, ибо перешивать на свой страх и риск .. опасливо. Все таки приз. (* уж лучше тогда повесить на стенку или запродать кому, купив то, что полезней нашему победителю .. может Вам, Евгений, возьмете? *)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Arhat109-2 пишет:
я пока ещё "в своем уме". :)
Я так и понял :)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Так может Вам её запродать? :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вот так и норовят что-нибудь впарить! Нет, надо создавать раздел "барахолка".

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Заскока Ви ее хочете таки запродать?  У сына спрошу, мошт для его роботов надо. 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

"Искра JS" цена на амперке 1590руб. Плата новая, в коробочке, не юзалась. Сколько скинуть, чтобы и Вам не больно по карману било (а вдруг там реально JS не выпиливается) и чтобы нашему призеру что-то взамен купить?

Использовать её под JS .. ну не знаю, она по ТТХ будет медленней НАНО - однозначно, а выводов у неё не намного больше... это я к тому, чтобы потом претензий "впалил фигню" не было. :)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Я сначала у сына спрошу, мне то самому JS нафиг не упал, а ему для ёботов мошт пригодица.  Если ннада, завтра будем торговаца. 

mixail844
Offline
Зарегистрирован: 30.04.2012

можно попробовать , у вас есть st-link v2? очень желательно с последней прошивкой 

для начала : скачать с сайта st stm32cubeprog: 

https://www.st.com/en/development-tools/stm32cubeprog.html  и подсоедениться при помощи st-link v2 по интерфейсу swd

вобщем,общая картина такая : 

1.считать option bytes 

2.посмотреть если flash залочен (если они на плате оставили штырки для разьема swd,то скорее всего нет)

3.исходя из 2-го пункта - в том же stm32CubeProg можно стереть всю память(предварительно сохранив дамп) и использовать камень как полноценный контроллер на cortex m4 . программируя через swd.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Не, "можно попробовать" меня не устраивает, слишком велик риск пожечь нафиг (примеры уже читал).

Посмотрел разводку платы, вроде бы разьем SWD есть. Не нашел на нем TDI (PA15), похоже эта нога не разведена. Есть ещё разьем BOOT0 отдельно.

Получается, если подключиться по SWD можно понять залочен flash или нет, без "порчи камня", так? Это уже радует. ST-Link конечно же отсутствует, но это не беда..

mixail844
Offline
Зарегистрирован: 30.04.2012

Да не спалите вы, главное питание от st-link'a не подавайте. А соеднить только земли и сигналы.
Еще есть вариант подсоедениться по тому же интерфейсу(SWD) при помощи программатора j-link* используя утилиту j-flash или j-flash lite.
*Довольно дорогая прибулда от производителя Segger, но на али экспресс есть китайские клоны.

mixail844
Offline
Зарегистрирован: 30.04.2012

Boot0 это такой пин который позволяет ввести контроллер в режим загрузчика(DFU - download firmware update) , который зашит самим призводителем(у пользователя нет к нему доступа). По идее он вообще перешивает весь контроллер.
Но там могут быть ньюансы(нужно читать reference manual на камень) , например если его настроили так что бы он шил только пользовательскую область и не трогал загрузчик Искры(интерпретатор JS)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ок. Поищу в округе ST-link и попробую. Сначала доберусь домой и осмотрю плату внимательно. Там по их схеме есть разрезаемые перемычки у SWD-разьема за каким-то лешим.

Из описаний амперки, вроде как получается что JS-программки заливаются и исполняются в SRAM, а не FLASH. Как понимаю, как раз из-за этого (эмуляция) опция compiled дает только 8% оригинальной производительности камня.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Если приедешь затра днем на м. Кр. Пр., я .тебе ST-Link дам погонять. 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

У меня такой, но без шнура, потерялса где-то

b707
Offline
Зарегистрирован: 26.05.2017

mixail844 пишет:
Boot0 это такой пин который позволяет ввести контроллер в режим загрузчика(DFU - download firmware update) , который зашит самим призводителем(у пользователя нет к нему доступа). По идее он вообще перешивает весь контроллер.

У пользователя есть доступ к DFU, более того, этот режим активно используется например для известной платы STM32F103 BluePill.

Именно через DFU в нее зашивают загрузчик для ардуино. А так же можно шить и другие прошивки. Я одну свою плату через DFU перешил в клон ST Link, который распознается как ст-линк фирменным софтом и даже обновляет прошивку через сайт ST

Еще раньше по наводке a5021 перешил другую BluePill в программатор BlackMagicProbe - см в Гугле

mixail844
Offline
Зарегистрирован: 30.04.2012

b707 пишет:

mixail844 пишет:
Boot0 это такой пин который позволяет ввести контроллер в режим загрузчика(DFU - download firmware update) , который зашит самим призводителем(у пользователя нет к нему доступа). По идее он вообще перешивает весь контроллер.

У пользователя есть доступ к DFU, более того, этот режим активно используется например для известной платы STM32F103 BluePill.

Именно через DFU в нее зашивают загрузчик для ардуино. А так же можно шить и другие прошивки. Я одну свою плату через DFU перешил в клон ST Link, который распознается как ст-линк фирменным софтом и даже обновляет прошивку через сайт ST

Еще раньше по наводке a5021 перешил другую BluePill в программатор BlackMagicProbe - см в Гугле

я имел ввиду что пользователь не может модифицировать встроенный загрузчик , но через него можно прошивать контроллер без программаторов .(какой тогда смысл иметь загрузчик но не иметь к нему доступа?)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Архат, я сейчас уже пашол калдырить, на форуме седня не появлюсь. Если надо - напишешь, в 9 утра в этой теме свой телефон напишу, да словимся.

mixail844
Offline
Зарегистрирован: 30.04.2012

Arhat109-2 пишет:

Из описаний амперки, вроде как получается что JS-программки заливаются и исполняются в SRAM, а не FLASH. Как понимаю, как раз из-за этого (эмуляция) опция compiled дает только 8% оригинальной производительности камня.

вы ошибаетесь ,что бы ввести в режим загрузчика , нужно на плате амперки замкнуть boot0 (boot0 = 1) -> значит пин boot1 = 0 ,а пока boot0 =0 ,то boot1 вообще не играет роли.

инаге получаеться плата стираеться после каждого сброса ? сомнительное удовольствие

 

 

 

 

 

 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Пасибки всем.

Дед, да как раз завтра в районе обеда буду на м. Кр.Пр-кт. Кинь с утра свое мыло мне на почту arhat109 собака mail.ru (она тут много раз прописана), ответом кину телефон. Не гарантирую, что к 9 утра встану. :)

mixail844, я имел ввиду что там прошит Espruino Js-интерпретатор, который играет в т.ч. и роль загрузчика. Это из примеров типа

file = load_file(тра-ляля); eval(file);

прямо на JS. Запуск на исполнение через eval() возможен только из SRAM. Отсюда и додумал, что "загрузка" идет не в нашем, классическом понимании, а тем же самым интерпретатором как чтение потока с USB в SRAM. И то что находится в блоке "compiled" тупо точно также исполняется интерпретатором JS просто "покомандно" (вызывается какой-нить gcc, бинарник от которого прошивается в блок и потом исполняется покомандно интерпретатором). Иначе у меня нет идей где теряется 90+ процентов производительности с этой опцией. Исходники Espruino интерпретатора не смотрел, поэтому только гадаю..

P.S. Осмотрел плату, никаких перемычек не нашел, к разьему идут нормальные провода "как обычно".

hrum4ik
Offline
Зарегистрирован: 30.07.2017

 получится завести под кеил (или что либо другое) если...

1) PA14(swclk) и PA13(swdio)  разведены на плате.

2)BOOT 0 притянут к земле.

далее

подключаете st-link(j-link), читаете чип. если нужно сохранить дамп - сохраняете.

затираете чип.

увалить заводской загрузчик... я даж не знаю что нужно сделсть с чипом. на ум приходит только стена->чип->гвоздь->молоток.

и вообще ,если страшно , то лучше не братся. если страшно но хочется.... сдуйте чип, запаяйте пустой и играйтесь. 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Что такое уровень защиты чипа level2? Сейчас ссылок не помню, но в одной из них вопрос про это был задан, но остался без ответа. Что блокирует этот уровень защиты в STM?

hrum4ik
Offline
Зарегистрирован: 30.07.2017

а вот это я не доглядел.

копипаст с радиокота

The read protection Level 2 is activated by writing 0xCC to the RDP option byte. When

the read protection Level 2 is set:

– All protections provided by Level 1 are active.

– Booting from RAM or system memory bootloader is no more allowed.

– JTAG, SWV (single-wire viewer), ETM, and boundary scan are disabled.

– User option bytes can no longer be changed.

– When booting from Flash memory, accesses (read, erase and program) to Flash

memory and backup SRAM from user code are allowed.

Memory read protection Level 2 is an irreversible operation. When Level 2 is activated,

the level of protection cannot be decreased to Level 0 or Level 1.



Note: The JTAG port is permanently disabled when Level 2 is active (acting as a JTAG fuse). As a

consequence, boundary scan cannot be performed. STMicroelectronics is not able to

perform analysis on defective parts on which the Level 2 protection has been set.

защиту можно попробыват снять через uart программой STMFlashLoader Demonstrator. прокрайней мере кнопка снять защиту есть. после снятия защиты чип затирается

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Да, уже тоже накопал про level2 это: http://forum.easyelectronics.ru/viewtopic.php?f=35&t=34750&sid=9d29e2bda... .. круто тут отжигают. Но, теоретически вроде как и level2 доунгрейдить тоже возможно .. но вот за это - не возьмусь точно.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Нашел ещё один топик на амперке совершенно случайно. http://forum.amperka.ru/threads/%D0%9F%D0%B5%D1%80%D0%B5%D0%BF%D1%80%D0%... В общем, похоже нет там никакого level2 и прошивки на С(++) заливаются через SWD интерфейс запросто.

Завтра, если получится, заберу у деда приблуду и буду разбираться. Похоже тему можно закрывать, но надо дожать вопрос практикой.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Отпишись патом, о лизурьтатах. 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Конечно, но это не быстро.. в наличии только выходные и те сейчас "подготовка к школе", пардон, беготня по магазинам. :(

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Про быстро речи не было. Как сможешь, так и отпишись

PRO_Chipovan_ECU
PRO_Chipovan_ECU аватар
Offline
Зарегистрирован: 03.10.2021

Приветствую, подскажите получилось прошить камень на iskra js? Тоже ищу вариант репрога, для работы на C++