перепрограммировать плату Искра от амперки
- Войдите на сайт для отправки комментариев
Ср, 15/08/2018 - 13:28
Задам вопрос тут в свете недавнего срача, ибо нашел несколько противоречивых описаний.
Можно ли перепрограммировать плату Искра от амперки, удалив из неё интерпретатор JS для дальнейшей работы через Keil?
На самой амперке вразумительного ответа не дали, есть типа "можно", но также видел неудачные попытки перешить через ST-Link, после которых плата превратилась в кирпичик. Даже был задан вопрос про level-2 защиту, но также без ответов.
В общем, лежит плата, боюсь угробить .. всё-таки ребенкин приз за 3-е место. Можно ли её реанимировать для программирования на нормальном С(++), есть у кого-то успешный опыт?
Архат, а чего бы ребёнку JS не изучить? Подумайте. Только не на уровне if/for - он там ничем от других не отличается, а серьёзно. Там, например, ООП в таком объёме, что никаким С++ с Явами и во сне не приснится (если у них, конечно, нормальный, по стандарту сделанный JS). Это реально очень продвинутый язык и для глубокого понимания ООП - великолепная песочница!
А зачем ребенку учить 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 в свое время: академичен, полон, крут .. но в жизнь не пошел как раз по этим причинам.
Это не для холивара. Это поясние, "сухой остаток" срача на амперке: проверено и выяснено с цифирьками. Если хотите повозражать - создайте отдельную тему во флудилке, плиз. Не тут.
Тут надеюсь, что кто-нибудь поможет, ибо перешивать на свой страх и риск .. опасливо. Все таки приз. (* уж лучше тогда повесить на стенку или запродать кому, купив то, что полезней нашему победителю .. может Вам, Евгений, возьмете? *)
Так может Вам её запродать? :)
Вот так и норовят что-нибудь впарить! Нет, надо создавать раздел "барахолка".
Заскока Ви ее хочете таки запродать? У сына спрошу, мошт для его роботов надо.
"Искра JS" цена на амперке 1590руб. Плата новая, в коробочке, не юзалась. Сколько скинуть, чтобы и Вам не больно по карману било (а вдруг там реально JS не выпиливается) и чтобы нашему призеру что-то взамен купить?
Использовать её под JS .. ну не знаю, она по ТТХ будет медленней НАНО - однозначно, а выводов у неё не намного больше... это я к тому, чтобы потом претензий "впалил фигню" не было. :)
Я сначала у сына спрошу, мне то самому JS нафиг не упал, а ему для ёботов мошт пригодица. Если ннада, завтра будем торговаца.
можно попробовать , у вас есть 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.
Не, "можно попробовать" меня не устраивает, слишком велик риск пожечь нафиг (примеры уже читал).
Посмотрел разводку платы, вроде бы разьем SWD есть. Не нашел на нем TDI (PA15), похоже эта нога не разведена. Есть ещё разьем BOOT0 отдельно.
Получается, если подключиться по SWD можно понять залочен flash или нет, без "порчи камня", так? Это уже радует. ST-Link конечно же отсутствует, но это не беда..
Да не спалите вы, главное питание от st-link'a не подавайте. А соеднить только земли и сигналы.
Еще есть вариант подсоедениться по тому же интерфейсу(SWD) при помощи программатора j-link* используя утилиту j-flash или j-flash lite.
*Довольно дорогая прибулда от производителя Segger, но на али экспресс есть китайские клоны.
Boot0 это такой пин который позволяет ввести контроллер в режим загрузчика(DFU - download firmware update) , который зашит самим призводителем(у пользователя нет к нему доступа). По идее он вообще перешивает весь контроллер.
Но там могут быть ньюансы(нужно читать reference manual на камень) , например если его настроили так что бы он шил только пользовательскую область и не трогал загрузчик Искры(интерпретатор JS)
Ок. Поищу в округе ST-link и попробую. Сначала доберусь домой и осмотрю плату внимательно. Там по их схеме есть разрезаемые перемычки у SWD-разьема за каким-то лешим.
Из описаний амперки, вроде как получается что JS-программки заливаются и исполняются в SRAM, а не FLASH. Как понимаю, как раз из-за этого (эмуляция) опция compiled дает только 8% оригинальной производительности камня.
Если приедешь затра днем на м. Кр. Пр., я .тебе ST-Link дам погонять.
У меня такой, но без шнура, потерялса где-то
У пользователя есть доступ к DFU, более того, этот режим активно используется например для известной платы STM32F103 BluePill.
Именно через DFU в нее зашивают загрузчик для ардуино. А так же можно шить и другие прошивки. Я одну свою плату через DFU перешил в клон ST Link, который распознается как ст-линк фирменным софтом и даже обновляет прошивку через сайт ST
Еще раньше по наводке a5021 перешил другую BluePill в программатор BlackMagicProbe - см в Гугле
У пользователя есть доступ к DFU, более того, этот режим активно используется например для известной платы STM32F103 BluePill.
Именно через DFU в нее зашивают загрузчик для ардуино. А так же можно шить и другие прошивки. Я одну свою плату через DFU перешил в клон ST Link, который распознается как ст-линк фирменным софтом и даже обновляет прошивку через сайт ST
Еще раньше по наводке a5021 перешил другую BluePill в программатор BlackMagicProbe - см в Гугле
я имел ввиду что пользователь не может модифицировать встроенный загрузчик , но через него можно прошивать контроллер без программаторов .(какой тогда смысл иметь загрузчик но не иметь к нему доступа?)
Архат, я сейчас уже пашол калдырить, на форуме седня не появлюсь. Если надо - напишешь, в 9 утра в этой теме свой телефон напишу, да словимся.
Из описаний амперки, вроде как получается что JS-программки заливаются и исполняются в SRAM, а не FLASH. Как понимаю, как раз из-за этого (эмуляция) опция compiled дает только 8% оригинальной производительности камня.
вы ошибаетесь ,что бы ввести в режим загрузчика , нужно на плате амперки замкнуть boot0 (boot0 = 1) -> значит пин boot1 = 0 ,а пока boot0 =0 ,то boot1 вообще не играет роли.
инаге получаеться плата стираеться после каждого сброса ? сомнительное удовольствие
Пасибки всем.
Дед, да как раз завтра в районе обеда буду на м. Кр.Пр-кт. Кинь с утра свое мыло мне на почту arhat109 собака mail.ru (она тут много раз прописана), ответом кину телефон. Не гарантирую, что к 9 утра встану. :)
mixail844, я имел ввиду что там прошит Espruino Js-интерпретатор, который играет в т.ч. и роль загрузчика. Это из примеров типа
file = load_file(тра-ляля); eval(file);
прямо на JS. Запуск на исполнение через eval() возможен только из SRAM. Отсюда и додумал, что "загрузка" идет не в нашем, классическом понимании, а тем же самым интерпретатором как чтение потока с USB в SRAM. И то что находится в блоке "compiled" тупо точно также исполняется интерпретатором JS просто "покомандно" (вызывается какой-нить gcc, бинарник от которого прошивается в блок и потом исполняется покомандно интерпретатором). Иначе у меня нет идей где теряется 90+ процентов производительности с этой опцией. Исходники Espruino интерпретатора не смотрел, поэтому только гадаю..
P.S. Осмотрел плату, никаких перемычек не нашел, к разьему идут нормальные провода "как обычно".
получится завести под кеил (или что либо другое) если...
1) PA14(swclk) и PA13(swdio) разведены на плате.
2)BOOT 0 притянут к земле.
далее
подключаете st-link(j-link), читаете чип. если нужно сохранить дамп - сохраняете.
затираете чип.
увалить заводской загрузчик... я даж не знаю что нужно сделсть с чипом. на ум приходит только стена->чип->гвоздь->молоток.
и вообще ,если страшно , то лучше не братся. если страшно но хочется.... сдуйте чип, запаяйте пустой и играйтесь.
Что такое уровень защиты чипа level2? Сейчас ссылок не помню, но в одной из них вопрос про это был задан, но остался без ответа. Что блокирует этот уровень защиты в STM?
а вот это я не доглядел.
копипаст с радиокота
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. прокрайней мере кнопка снять защиту есть. после снятия защиты чип затирается
Да, уже тоже накопал про level2 это: http://forum.easyelectronics.ru/viewtopic.php?f=35&t=34750&sid=9d29e2bda... .. круто тут отжигают. Но, теоретически вроде как и level2 доунгрейдить тоже возможно .. но вот за это - не возьмусь точно.
Нашел ещё один топик на амперке совершенно случайно. http://forum.amperka.ru/threads/%D0%9F%D0%B5%D1%80%D0%B5%D0%BF%D1%80%D0%... В общем, похоже нет там никакого level2 и прошивки на С(++) заливаются через SWD интерфейс запросто.
Завтра, если получится, заберу у деда приблуду и буду разбираться. Похоже тему можно закрывать, но надо дожать вопрос практикой.
Отпишись патом, о лизурьтатах.
Конечно, но это не быстро.. в наличии только выходные и те сейчас "подготовка к школе", пардон, беготня по магазинам. :(
Про быстро речи не было. Как сможешь, так и отпишись
Приветствую, подскажите получилось прошить камень на iskra js? Тоже ищу вариант репрога, для работы на C++