Получается практически что и в IDE - используем любимый текстовый редактор,
PS знакомые программисты никаких кейлов хирейлов не используют (тех кого знаю)
Опробована масса различных программаторов DAPLINK, кроме сделанного на базе RP2040 все работают, понравился Arm DAPLINK CMSIS-DAP сделанный из блюпила с замапленной разводкой, выход на стандартные пины SWD ))) (прошил и имеем готовый DAPLINK, паять ничего не надо)
По PY32, их конечно мешок, но все с включенной защитой от чтения, ERASE средствами pyocd не работает, надо почитать документацию возможно ли это в принципе.
Жду программатор JLINK V9.
PS надо почитать про openocd, может она умеет снимать защиту от чтения.
PPS @ЕвгенийП плохого не посоветовал )))
PPPS зато интересно, вспомнилось как программировал PT на самодельном программаторе на тумблерах, экзотика…
Connecting to target via SWD
Found SW-DP with ID 0x0BC11477
DPv0 detected
CoreSight SoC-400 or earlier
Scanning AP map to find all available APs
AP[1]: Stopped AP scan as end of AP map has been reached
AP[0]: AHB-AP (IDR: 0x04770031, ADDR: 0x00000000)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0xE00FF000
CPUID register: 0x410CC601. Implementer code: 0x41 (ARM)
Found Cortex-M0 r0p1, Little endian.
FPUnit: 4 code (BP) slots and 0 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000
[0][0]: E000E000 CID B105E00D PID 000BB008 SCS
[0][1]: E0001000 CID B105E00D PID 000BB00A DWT
[0][2]: E0002000 CID B105E00D PID 000BB00B FPB
Memory zones:
Zone: "Default" Description: Default access mode
Cortex-M0 identified.
J-Link>erase
No address range specified, 'Erase Chip' will be executed
'erase': Performing implicit reset & halt of MCU.
Reset type: NORMAL (https://wiki.segger.com/J-Link_Reset_Strategies)
Reset: Halt core after reset via DEMCR.VC_CORERESET.
Reset: Reset device via AIRCR.SYSRESETREQ.
Erasing device...
Erasing done.
J-Link>
PS ведро чипов оказалось вполне живые, сокет sop8, доступно 64 флэша 8 RAM, 5 пинов, Владимир Мединцев на аналогичной крохе от STM запускал дисплей по SPI, по сути attiny но с большими возможностями, есть в корпусах ssop20, совсем мелкота с большим числом доступных пинов, наверно подойдёт @lilik под 2000 диодов ws2812
py32f003.dap info
AP # 0x0
AP ID register 0x04770031
Type is MEM-AP AHB3
MEM-AP BASE 0xe00ff003
Valid ROM table present
Component base address 0xe00ff000
Peripheral ID 0x04000bb4c0
Designer is 0x23b, ARM Ltd
Part is 0x4c0, Cortex-M0+ ROM (ROM Table)
Component class is 0x1, ROM table
MEMTYPE system memory present on bus
ROMTABLE[0x0] = 0xfff0f003
Component base address 0xe000e000
Peripheral ID 0x04000bb008
Designer is 0x23b, ARM Ltd
Part is 0x008, Cortex-M0 SCS (System Control Space)
Component class is 0xe, Generic IP component
ROMTABLE[0x4] = 0xfff02003
Component base address 0xe0001000
Peripheral ID 0x04000bb00a
Designer is 0x23b, ARM Ltd
Part is 0x00a, Cortex-M0 DWT (Data Watchpoint and Trace)
Component class is 0xe, Generic IP component
ROMTABLE[0x8] = 0xfff03003
Component base address 0xe0002000
Peripheral ID 0x04000bb00b
Designer is 0x23b, ARM Ltd
Part is 0x00b, Cortex-M0 BPU (Breakpoint Unit)
Component class is 0xe, Generic IP component
ROMTABLE[0xc] = 0x00000000
End of ROM table
>
Кстати, вспомнил одну фичу в xmegax. Там помимо прочего, есть одна плюшка, как виртуальные порты. Т.е. можно заремапить нужный порт на один из виртуальных и работать с ним. Все что пишется в виртуальный копируется в физический.
// PORTA mapped to VPORT0
// PORTC mapped to VPORT1
PORTCFG.VPCTRLA=0x20;
PORTCFG.VPCTRLB=0x31;
VPORT0.DIR =0xFF;
VPORT1.DIR =0xFF;
Так вот, когда работал с tft дисплеями, заметил одну особенность. Если писать в виртуальный порт, то скорость появления сигналов на физическом была в раза три выше, чем если просто писать в физический. Как это работает так и не понял, может Евгений пояснит.
Я ещё не начал осваивать Xmeg-и, лишь примеряюсь. Полистал вот даташит.
Иногда просто “Нано” не хватает.
Могу лишь предположить, что , возможно, используются разные инструкции . В одном случае запись в виртуальный порт - это как запись в регистр, выполняется быстрее.
Если есть возможность - посмотреть , что получается на асме, и сравнить.
Мне часто не хватает скорости, 16МГц - бывает маловато.
Ещё иногда не хватает производительности - деление медленное.
Опять же 16бит пошустрее считать будут
АЦП тоже получше
А так, ещё много чего есть, что я ещё не использовал нигде. К примеру DMA - пррямой доступ к памяти…
Мелкие “осцилографы” на них, а так, да, сложнее в изучении. Но ведь не здряж китайцы сначала всё делали на STM, потом на копиях, а вот теперича уже на своих собственных микроконтроллерах.
Что-то? https://aliexpress.ru/item/1005001321192613.html Думается победитель по всем номинациям! Контроллер(ранее STM), реле, дисплей, датчик, разъёмы, кнопки, рассыпуха, плата и всё енто за 1-1.5 бакса.