Ви не увійшли.
Сторінки 1

Знайшов дещо цікаве. Виявляється, для деяких чіпів є емулятори. І в platformio декларується можливість використання:
https://docs.platformio.org/en/latest/plus/debug-tools/simavr.html
У когось вийшло? Бо запустити руками емулятор в одній консолі, gdb в іншій - воно працює, але трохи по красноглазому 
Неактивний

У когось вийшло?
Колись трошки грався з самим simavr (не в рамках platformio). Ну, воно працює, вивод на UART показує в консолі, gdb чіпляється як до будь-якої іншої remote target. Але для моніторингу периферії потрібно додавати код в саму фірмварь.
Неактивний

https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json же ж. Без ніяких хитрощів.
Є підозра що емулятор цього не покаже. Якщо косячаться логічні рівні на виході - значить там всередині щось комутується неправильно. Може чіпи палені. До речі, в якійсь з ревізій цих tiny85 щось було з eeprom, саме з записом в 0 адресу, і були рекомендації від аксакалів починати запис з 10.. Можливо, автор цього коду щось таке чув, і в нього використовується put(10). І put(0) теж 
Неактивний

https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json же ж. Без ніяких хитрощів.
А, в 1.7.5 EEPROM уже є в поставці. Тільки IDE навіть з verbose mode не показує як її компілює, тільки Compiling library "EEPROM".
Але автор писав, що доставляв ще якусь додатково. От якщо ліби з однаковими іменами є і в packages/digistump/hardware/avr/1.7.5/libraries/, і в ~/Arduino/libraries, яку з них воно бере? Це тільки з лога збірки можна побачити:
Alternatives for EEPROM.h: [EEPROM@2.0]
ResolveLibrary(EEPROM.h)
  -> candidates: [EEPROM@2.0] 
...
Using library EEPROM at version 2.0 in folder: ...І який там Clock обрано в меню, теж може впливати.
Є підозра що емулятор цього не покаже. Якщо косячаться логічні рівні на виході - значить там всередині щось комутується неправильно.
Якщо апаратний баг, то так. Але в datasheet errata нічого такого нема. Тільки для ревізії A "EEPROM read may fail at low supply voltage / low clock frequency".
А у випадку програмного багу як мінімум стан регістрів можна перевірити. Взагалі можна було б і просто асемблерний код проаналізувати, але мені за то не заплатять 
До речі, в якійсь з ревізій цих tiny85 щось було з eeprom, саме з записом в 0 адресу, і були рекомендації від аксакалів починати запис з 10..
Наскільки знаю, то якщо бутлоадер теж використовує EEPROM для збереження своїх даних. Micronucleus такого не робить наче.
Неактивний

Тільки IDE навіть з verbose mode не показує як її компілює, тільки Compiling library "EEPROM".
Тому що в EEPROM.h нічого цікавого немає. Це враппер до avr/eeprom.h, а реалізація роботи з eeprom - упсь, в бінарнику .arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/lib/avr25/libattiny85.a . При використанні функцій з eeprom.h все так само ламається.
Взагалі можна було б і просто асемблерний код проаналізувати
Настоящих буйних мало 
Остання редакція jokeR (2025-06-12 14:20:50)
Неактивний

Тому що в EEPROM.h нічого цікавого немає.
Тепер я зрозумів, чому IDE не показало команди компіляції. Бо ця EEPROM - header only.
Це враппер до avr/eeprom.h, а реалізація роботи з eeprom - упсь, в бінарнику.
Реалізація в avr-libc: libc/misc/eewr_byte.S
Вона в ісходніку виглядає страшно, бо там реалізація для всіх платформ. А в згенерованому коді для attiny85 досить проста:
0000096c <eeprom_write_byte>:
 96c:	26 2f       	mov	r18, r22
0000096e <eeprom_write_r18>:
 96e:	e1 99       	sbic	0x1c, 1	; 28
 970:	fe cf       	rjmp	.-4      	; 0x96e <eeprom_write_r18>
 972:	1c ba       	out	0x1c, r1	; 28
 974:	9f bb       	out	0x1f, r25	; 31
 976:	8e bb       	out	0x1e, r24	; 30
 978:	2d bb       	out	0x1d, r18	; 29
 97a:	0f b6       	in	r0, 0x3f	; 63
 97c:	f8 94       	cli
 97e:	e2 9a       	sbi	0x1c, 2	; 28
 980:	e1 9a       	sbi	0x1c, 1	; 28
 982:	0f be       	out	0x3f, r0	; 63
 984:	01 96       	adiw	r24, 0x01	; 1
 986:	08 95       	retПри використанні функцій з eeprom.h все так само ламається.
А, не знав, що з libc'шними функціями той глюк теж проявляється.
Тоді може це просто сайд-ефект через таймінги, і відповідний delay() замість eeprom_write_byte() так само впливатиме.
А збірка в platformio працює тільки тому що інша версія avr-gcc 
Неактивний

Бачу, цей simavr ще навіть ворушиться, є недавні комміти. Але якось на рівні аматорської поробки. Вивод стану пінів у VCD працює, але тільки з GPIO портів. Зміна стану по Compare Match Output, наприклад, ніяк не відображається. Інші альтернативні функції пінів не перевіряв. Схоже, що це "by design". Якщо так, то толку з такого емулятора небагато.  
Доречі, є і ще один форк.
Неактивний

Походу є AVR (Atmel) studio, і є саморобки різного стану готовності. Мабуть треба підняти піратський прапор  Бо купляти того монстра щоб пару разів на рік запустити якось не того.
 Бо купляти того монстра щоб пару разів на рік запустити якось не того.

Походу є AVR (Atmel) studio
Воно ж уже Microchip Studio, і вже не рекомендується для нових розробок  Рекомендують користуватись MPLAB X IDE.
 Рекомендують користуватись MPLAB X IDE.
Мабуть треба підняти піратський прапор
Бо купляти того монстра щоб пару разів на рік запустити якось не того.
Хіба воно платне в базовій версії? Щось не знайшов, скільки коштує ліцензія.
Мені не подобається, що воно проприєтарне. Microchip Studio взагалі наче тільки під вінду. MPLAB X IDE встановлювати їхнім інсталлером якось не комільфо. А пакет з неофіційного репозиторію хоче Java8 JDK, коли на дворі вже Java24.
Та й не факт, що воно не таке ж глючне як і саморобки.
Неактивний

Та якось складно у них.. Цей mplab комплектується toolchain ом під pic, для AVR треба якось доставляти.. Після platformio/Arduino IDE наче в 2000-ні вернувся 
Сторінки 1