Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
47804d8382 | ||
|
|
f7923e8bf7 | ||
|
|
f6fec5f3ca | ||
|
|
82fbe4939e | ||
|
|
079b3c19bc | ||
|
|
8dcd341b77 | ||
|
|
d32773e7b8 | ||
|
|
687984b356 | ||
|
|
fa310cfa0d | ||
|
|
7e64bd224e | ||
|
|
e37ab059a3 | ||
|
|
926f03b87f | ||
|
|
594ee96ffe | ||
|
|
f8c00f6086 | ||
|
|
8977dc59e1 |
No files matched your search
@@ -0,0 +1 @@
|
|||||||
|
installed.json
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
# elbear_arduino_bsp
|
||||||
|
Пакет поддержки платы Elbear Ace-Uno на базе микроконтроллера MIK32 Амур в среде программирования Arduino IDE.
|
||||||
|
|
||||||
|
|
||||||
|
## Установка пакета в ArduinoIDE
|
||||||
|
1. Установите [Arduino IDE](https://www.arduino.cc/en/software).
|
||||||
|
2. Откройте меню `Файл -> Параметры`.
|
||||||
|
3. Вставьте данную ссылку в поле "Дополнительные ссылки для Менеджера плат":
|
||||||
|
`https://elron.tech/files/package_elbear_beta_index.json`
|
||||||
|

|
||||||
|
4. Откройте меню `Инструменты -> Плата -> Менеджер плат...`.
|
||||||
|
5. В поиске найдите плату `Elbear Ace-Uno`, выберите нужную версию и нажмите кнопку `Установить`.
|
||||||
|

|
||||||
|
6. Процесс установки может занять некоторое время. Результаты установки отобразятся в поле `Вывод`, а так же во всплывающих уведомлениях.
|
||||||
|

|
||||||
|
|
||||||
|
Для загрузки скетчей по USB в ArduinoIDE необходимо, чтобы на плату Elbear Ace-Uno была загружена специальная программа-загрузчик ([elbear_fw_bootloader](https://gitflic.ru/project/elron-tech/elbear_fw_bootloader)). Если она уже есть на плате, можно сразу переходить к работе. Если загрузчика еще нет или необходимо обновить его на плате, ниже описан процесс загрузки. Актуальная версия программы-загрузчика входит в состав пакета поддержки, отдельно скачивать её не нужно.
|
||||||
|
|
||||||
|
Платы ревизии 1.1.0 готовы к использованию в ArduinoIDE из коробки, так как поставляются с предварительно загруженной программой-загрузчиком.
|
||||||
|
|
||||||
|
## Загрузка программы-загрузчика через ArduinoIDE
|
||||||
|
1. Подключите плату Elbear Ace-Uno к ПК через программатор ELJTAG.
|
||||||
|
2. В ArduinoIDE выберите программатор: `Инструменты -> Программатор -> mik32 uploader`.
|
||||||
|
3. Для загрузки программы-загрузчика выберите `Инструменты -> Записать Загрузчик`.
|
||||||
|

|
||||||
|
4. При возникновении проблем с загрузкой ознакомьтесь с разделом `Настройка программатора` в [инструкции](https://elron.tech/wp-content/uploads/2024/05/instrukcija-po-pervomu-zapusku.pdf) по первому запуску платы ELBEAR ACE-UNO.
|
||||||
|
Теперь можно загружать скетчи в плату по USB.
|
||||||
|
|
||||||
|
## Начало работы
|
||||||
|
1. Подключите плату к ПК по USB.
|
||||||
|
2. Откройте ArduinoIDE и загрузите необходимый скетч. Для начала работы можно воспользоваться готовыми примерами, например - `Файл -> Примеры -> 01.Basics -> Blink`.
|
||||||
|

|
||||||
|
3. Выберите активную плату - `Инструменты -> Плата`.
|
||||||
|

|
||||||
|
4. Выберите используемый COM порт - `Инструменты -> Порт`.
|
||||||
|

|
||||||
|
Выбранные плата и порт в ArduinoIDE должны отображаться следующим образом:
|
||||||
|

|
||||||
|
5. Проверьте скетч, нажав соответствующую кнопку.
|
||||||
|

|
||||||
|
6. Загрузите полученную прошивку на плату.
|
||||||
|

|
||||||
|
7. При необходимости можно открыть терминал и получать сообщения от платы по интерфейсу Serial. Для этого выберите `Инструменты -> Монитор порта`.
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
При возникновении вопросов или выявлении проблем можно оставить заявку [здесь](https://gitflic.ru/project/elron-tech/elbear_arduino_bsp/issue).
|
||||||
|
|
||||||
|
# Полезные ссылки
|
||||||
|
* [Описание платы и ее распиновка](https://elron.tech/russian-arduino-compatible-board/)
|
||||||
|
* [Материалы для плат разных ревизий](https://elron.tech/materialy-dlja-elbear-ace-uno/)
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
# See: https://arduino.github.io/arduino-cli/latest/platform-specification/
|
# See: https://arduino.github.io/arduino-cli/latest/platform-specification/
|
||||||
##############################################################
|
##############################################################
|
||||||
aceUno8Mb.name=Elbear Ace-Uno 8Mb
|
|
||||||
|
##################### Ace-Uno 8 Mb #####################
|
||||||
|
aceUno8Mb.name=Elbear Ace-Uno 8 Mb
|
||||||
|
|
||||||
# tool for firmware update
|
# tool for firmware update
|
||||||
aceUno8Mb.upload.tool=elbear_uploader
|
aceUno8Mb.upload.tool=elbear_uploader
|
||||||
@@ -16,8 +18,56 @@ aceUno8Mb.bootloader.file=ace-uno/bootloader.hex
|
|||||||
# build options
|
# build options
|
||||||
aceUno8Mb.build.mcu=MIK32_Amur
|
aceUno8Mb.build.mcu=MIK32_Amur
|
||||||
aceUno8Mb.build.f_cpu=32000000UL
|
aceUno8Mb.build.f_cpu=32000000UL
|
||||||
aceUno8Mb.build.board=ACE_UNO_8Mb
|
aceUno8Mb.build.board=ACE_UNO_8MB
|
||||||
aceUno8Mb.build.core=arduino
|
aceUno8Mb.build.core=arduino
|
||||||
aceUno8Mb.build.variant=standart
|
aceUno8Mb.build.variant=standart
|
||||||
aceUno8Mb.build.extra_flags=
|
aceUno8Mb.build.extra_flags=
|
||||||
aceUno8Mb.build.flags=
|
aceUno8Mb.build.flags=
|
||||||
|
|
||||||
|
|
||||||
|
##################### Ace-Uno 16 Mb #####################
|
||||||
|
aceUno16Mb.name=Elbear Ace-Uno 16 Mb
|
||||||
|
|
||||||
|
# tool for firmware update
|
||||||
|
aceUno16Mb.upload.tool=elbear_uploader
|
||||||
|
aceUno16Mb.upload.protocol=elbear_uploader
|
||||||
|
aceUno16Mb.upload.maximum_size=16777216
|
||||||
|
aceUno16Mb.upload.maximum_data_size=16384
|
||||||
|
|
||||||
|
# tool for bootloader update
|
||||||
|
aceUno16Mb.bootloader.tool=mik32_upload
|
||||||
|
aceUno16Mb.bootloader.tool.default=mik32_upload
|
||||||
|
aceUno16Mb.bootloader.file=ace-uno/bootloader.hex
|
||||||
|
|
||||||
|
# build options
|
||||||
|
aceUno16Mb.build.mcu=MIK32_Amur
|
||||||
|
aceUno16Mb.build.f_cpu=32000000UL
|
||||||
|
aceUno16Mb.build.board=ACE_UNO_16MB
|
||||||
|
aceUno16Mb.build.core=arduino
|
||||||
|
aceUno16Mb.build.variant=standart
|
||||||
|
aceUno16Mb.build.extra_flags=
|
||||||
|
aceUno16Mb.build.flags=
|
||||||
|
|
||||||
|
|
||||||
|
##################### Ace-Uno 32 Mb #####################
|
||||||
|
aceUno32Mb.name=Elbear Ace-Uno 32 Mb
|
||||||
|
|
||||||
|
# tool for firmware update
|
||||||
|
aceUno32Mb.upload.tool=elbear_uploader
|
||||||
|
aceUno32Mb.upload.protocol=elbear_uploader
|
||||||
|
aceUno32Mb.upload.maximum_size=33554432
|
||||||
|
aceUno32Mb.upload.maximum_data_size=16384
|
||||||
|
|
||||||
|
# tool for bootloader update
|
||||||
|
aceUno32Mb.bootloader.tool=mik32_upload
|
||||||
|
aceUno32Mb.bootloader.tool.default=mik32_upload
|
||||||
|
aceUno32Mb.bootloader.file=ace-uno/bootloader.hex
|
||||||
|
|
||||||
|
# build options
|
||||||
|
aceUno32Mb.build.mcu=MIK32_Amur
|
||||||
|
aceUno32Mb.build.f_cpu=32000000UL
|
||||||
|
aceUno32Mb.build.board=ACE_UNO_32MB
|
||||||
|
aceUno32Mb.build.core=arduino
|
||||||
|
aceUno32Mb.build.variant=standart
|
||||||
|
aceUno32Mb.build.extra_flags=
|
||||||
|
aceUno32Mb.build.flags=
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
:020000040100F9
|
:020000040100F9
|
||||||
:10000000FD62938202400100FD12E39E02FE374131
|
:10000000FD62938202400100FD12E39E02FE374131
|
||||||
:10001000000213010100B701000293810100B7152E
|
:10001000000213010100B701000293810100B7152E
|
||||||
:100020000001938505F137160001130606F4B706A3
|
:100020000001938505F537160001130606F8B7069B
|
||||||
:1000300000029386060039A083A2050023A0560083
|
:1000300000029386060039A083A2050023A0560083
|
||||||
:1000400091059106E3EAC5FEB7150001938505F415
|
:1000400091059106E3EAC5FEB7150001938505F811
|
||||||
:1000500037160001130606F4B7060002938606263B
|
:1000500037160001130606F8B70600029386062637
|
||||||
:1000600039A083A2050023A0560091059106E3EA7A
|
:1000600039A083A2050023A0560091059106E3EA7A
|
||||||
:10007000C5FEB70500029385050337060002130687
|
:10007000C5FEB70500029385050337060002130687
|
||||||
:10008000062621A023A005009105E3EDC5FEB700DB
|
:10008000062621A023A005009105E3EDC5FEB700DB
|
||||||
:100090000001E780C00AB7000001E780C00AB7008E
|
:100090000001E780C00AB7000001E780C00AB7008E
|
||||||
:1000A0000001E780007273005010F5BF82800000ED
|
:1000A0000001E780207B73005010F5BF82800000C4
|
||||||
:1000B0000000000000000000000000000000000040
|
:1000B0000000000000000000000000000000000040
|
||||||
:1000C0006F004000197106C20AC40EC612C816CAD3
|
:1000C0006F004000197106C20AC40EC612C816CAD3
|
||||||
:1000D0001ACC1ECE22D026D22AD42ED632D836DA48
|
:1000D0001ACC1ECE22D026D22AD42ED632D836DA48
|
||||||
@@ -32,216 +32,220 @@
|
|||||||
:1001E00027009702000096968682E78086FA96801E
|
:1001E00027009702000096968682E78086FA96801E
|
||||||
:1001F000C1171D8F3E96E374C3F8A5B7B707050076
|
:1001F000C1171D8F3E96E374C3F8A5B7B707050076
|
||||||
:100200000947D8CFB7170500938707C0984385667D
|
:100200000947D8CFB7170500938707C0984385667D
|
||||||
:1002100093860640558F98C3B71708009387074009
|
:1002100093860640558F98C398471367074098C741
|
||||||
:1002200023A0070023A2070023A407001307A008A8
|
:10022000B71708009387074023A0070023A2070001
|
||||||
:10023000D8C77D57D8CF354798C3D84F9356570165
|
:1002300023A407001307A008D8C77D57D8CF354798
|
||||||
:100240008D8AE5DE8280B71708009387074023A0D8
|
:1002400098C3D84F935657018D8AE5DE8280B71741
|
||||||
:10025000070023A2070023A4070023A607007D5759
|
:1002500008009387074023A0070023A2070023A4D8
|
||||||
:10026000D8CF23A40702B7170500938707C0984388
|
:10026000070023A607007D57D8CF23A40702B7179E
|
||||||
:10027000F1769386F63F758F98C3B7070500D84F80
|
:100270000500938707C09843F1769386F63F758F04
|
||||||
:1002800023AE07008280B71708009387074088D7FE
|
:1002800098C398471377F7BF98C7B7070500D84FAB
|
||||||
:10029000D84F137707046DDF828037070002B71548
|
:1002900023AE07008280B71708009387074088D7EE
|
||||||
:1002A000080037460F0023200704814781469385C5
|
:1002A000D84F137707046DDF8280370700020323DE
|
||||||
:1002B000054013061624C84D137505020DC991CECD
|
:1002B000C703B706000237150800B7450F0023A093
|
||||||
:1002C0002320F70437470F00130707246397E7003D
|
:1002C000060481470146130505409385152403283C
|
||||||
:1002D000B707000205472383E700B7170800938795
|
:1002D000C501B308F30013780802630C080205C2D5
|
||||||
:1002E0000740C8534205418182808546E9B78507AA
|
:1002E000232E170337470F0023A0F6041307072414
|
||||||
:1002F000E39DC7FEFDD2B7470F0093870724232055
|
:1002F0006397E700B707000205472383E700B717B6
|
||||||
:10030000F704F9B74111B707000222C413870700A9
|
:10030000080093870740C853420541818280054613
|
||||||
:1003100006C6834667000547138407006390E6021C
|
:100310007DBF8507E39DB7FE7DD2B7470F0093876A
|
||||||
:100320001305000F8D37B717080093870740D84F84
|
:10032000072423A0F604232E1703E9B7411106C6BC
|
||||||
:10033000218B09C7D84F13678700D8CF2303040048
|
:1003300022C426C2AA84EF003019E1689388086AB3
|
||||||
:10034000B240224441018280411106C622C426C225
|
:1003400001488147014781460146B70520C72685F8
|
||||||
:10035000AA84EF009013E1689388086A01488147F6
|
:1003500037949800EF00A07C130414687D1419E40E
|
||||||
:10036000014781460146B70520C726853794980086
|
:100360000D45B24022449244410182808545268554
|
||||||
:10037000EF000077130414687D1419E40D45B240B2
|
:10037000EF00F01605897DF10145E5B7411122C472
|
||||||
:10038000224492444101828085452685EF00501128
|
:1003800037040002930704008C43B70700804AC07B
|
||||||
:1003900005897DF10145E5B7411122C4370400020A
|
:10039000BE95B707000223AAB70206C626C29397E6
|
||||||
:1003A000930704008C43B70700804AC0BE95B70787
|
:1003A0004501130404003709000289E71305890099
|
||||||
:1003B000000223ACB70206C626C293974501130478
|
:1003B000EF0010200C40B70400029386440413069B
|
||||||
:1003C00004003709000289E713058900EF00701A5D
|
:1003C000001013058900EF00F0191C4037070002E8
|
||||||
:1003D0000C40B70400029386440413060010130572
|
:1003D00083562703938707101CC013060010B687A7
|
||||||
:1003E0008900EF0050141C40370700028356470372
|
:1003E00063F4C60093070010138444041305F4005B
|
||||||
:1003F000938707101CC013060010B68763F4C6006D
|
:1003F000938707F01306100F814513040410231987
|
||||||
:1004000093070010138444041305F400938707F046
|
:10040000F702893BA285138544043D46EF00901E08
|
||||||
:100410001306100F814513040410231AF7021D3B25
|
:1004100023200400232204002324040023160400C4
|
||||||
:10042000A285138544043D46EF00F0182320040004
|
:1004200023070400B24022449244024941018280E1
|
||||||
:1004300023220400232404002316040023070400BD
|
:100430005D71130680028145280886C6213BBD47B1
|
||||||
:10044000B240224492440249410182805D71130608
|
:10044000230CF1008947230EF1003ED2E177938718
|
||||||
:1004500080028145280886C6F539BD47230CF10086
|
:1004500007082C080A85231AF1028523B64061613A
|
||||||
:100460008947230EF1003ED2E177938707082C08D5
|
:1004600082805D71A2C4370400021305840086C631
|
||||||
:100470000A85231AF1021923B640616182805D71F9
|
:10047000A6C2092D13058400EF00207489451305D9
|
||||||
:10048000A2C4370400021305840086C6A6C2652BE9
|
:100480008400EF00D0059377250085E3AA84854595
|
||||||
:1004900013058400E525894513058400EF0050000D
|
:1004900013058400EF00B00413E62400AA85137648
|
||||||
:1004A0009377250085E3AA84854513058400EF0032
|
:1004A000F60F13058400EF00F006E1689388086AF0
|
||||||
:1004B000207F13E62400AA851376F60F1305840027
|
:1004B00001488147014781460146B70520381305A9
|
||||||
:1004C000EF007001E1689388086A0148814701479D
|
:1004C0008400B12DE16838009388086A130800029F
|
||||||
:1004D00081460146B7052038130584001125E168DF
|
:1004D000854681470146B70599EB1305840023043F
|
||||||
:1004E00038009388086A1308000285468147014650
|
:1004E0000100352DB715000151469385C5F368000D
|
||||||
:1004F000B70599EB1305840023040100D523B71534
|
:1004F000EF005010930484009C406C0051463ED0A5
|
||||||
:10050000000151469385C5EF6800EF00D00A9304BF
|
:1005000085473ED26810C1673ED4EF00B00EB706F3
|
||||||
:1005100084009C406C0051463ED085473ED2681016
|
:1005100007009C423707F1FF7D17F98F08109CC236
|
||||||
:10052000C1673ED4EF003009B70607009C42370789
|
:100520006523B6402644964461618280411106C627
|
||||||
:10053000F1FF7D17F98F08109CC2812BB64026442D
|
:10053000393B053FB707008073905730B700008004
|
||||||
:10054000964461618280411106C6F5390D3FB707B7
|
:100540008290B240410182804111B707000222C46B
|
||||||
:10055000008073905730B70000808290B240410114
|
:100550001387070006C68346670005471384070014
|
||||||
:100560008280411106C622C426C24AC08347350094
|
:10056000639EE600B717080093870740D84F218B9A
|
||||||
:1005700005476383E70811472A846389E7008DCF25
|
:1005700009C7D84F13678700D8CF4D3F2303040026
|
||||||
:10058000B24022449244024941018280B7070002EE
|
:10058000B240224441018280411106C622C426C2E3
|
||||||
:1005900083D7470391C30935834744000347540079
|
:100590004AC08347350005476383E70811472A842B
|
||||||
:1005A000E2074207BA9737070002232EF702370700
|
:1005A0006389E7008DCFB240224492440249410161
|
||||||
:1005B00000022320F700E9B73709000283544903FA
|
:1005B0008280B707000283D7270391C3C1338347E3
|
||||||
:1005C0000346050093054500370500021305450461
|
:1005C000440003475400E2074207BA973707000286
|
||||||
:1005D0002695EF00407E83470400BE94C204C1808C
|
:1005D000232CF702370700022320F700E9B7370979
|
||||||
:1005E000231A99029307F00FE3FC97F82244B240D4
|
:1005E000000283542903034605009305450037059F
|
||||||
:1005F0009244024941014DB33D457131B7070002B4
|
:1005F0000002130545042695EF00C07F83470400E1
|
||||||
:1006000083D7470391C3493B2244B24092440249F5
|
:10060000BE94C204C180231999029307F00FE3FC42
|
||||||
:10061000410115BF3707000293070700B705000225
|
:1006100097F82244B24092440249410185B33D45D6
|
||||||
:1006200003DE470083A705043716080037450F008F
|
:100620009D39B707000283D7270391C3813B22443A
|
||||||
:1006300037480F00B708000201438146130707003F
|
:10063000B240924402494101D5BD370700029307F9
|
||||||
:10064000130606401305152413080824938848153B
|
:100640000700B705000203DE470083A7050437163D
|
||||||
:1006500063EEC6016304030023A0F504834767002B
|
:10065000080037450F0037480F00B7080002014374
|
||||||
:10066000A9E73705000213054515E5BD81470323BA
|
:1006600081461307070013060640130515241308D7
|
||||||
:10067000C60113730302631F03008507E399A7FEF6
|
:1006700008249388481563EEC6016304030023A091
|
||||||
:10068000B7470F009387072423A0F504854723036A
|
:10068000F50483476700A9E7370500021305451500
|
||||||
:10069000F7008280E38607FF832E46023383D8006B
|
:10069000E5BD81470323C60113730302631F0300F3
|
||||||
:1006A00085062300D301054365B78280011122CC62
|
:1006A0008507E399A7FEB7470F009387072423A088
|
||||||
:1006B0003704000226CA4AC84EC652C406CE1304E6
|
:1006B000F50485472303F7008280E38607FF832E36
|
||||||
:1006C0000400930400061309E00FB7090002130A9F
|
:1006C00046023383D80085062300D301054365B76E
|
||||||
:1006D0000003E136834764001375F50FA303A400FC
|
:1006D0008280011122CC4EC652C437040002B749B1
|
||||||
:1006E00099C30D31FDB7630F950063042503E31231
|
:1006E0000F00371ADCBA26CA4AC856C25AC006CE0C
|
||||||
:1006F00045FF3D45493E553605052312A4003D45BD
|
:1006F00013040400370900029389F923930A0003C5
|
||||||
:100700005936C1BF3D454136313783476400F1FB5F
|
:10070000B7040002391A370B000245368327C903A4
|
||||||
:10071000FDB7138589000D397DD11305000FCDB7C5
|
:10071000A303A40063F3F900113D8347640099C368
|
||||||
:10072000011106CE22CC1D333704000213058400CC
|
:100720002535E5B7834674006388560593070006B0
|
||||||
:10073000192E130584009921E1689388086A0148FD
|
:100730006381F60603C704038D47998F8E07B3576D
|
||||||
:100740008147780085460146B705D9EB130584003B
|
:10074000FA0093F7F70F6393F6069307170093F7F2
|
||||||
:10075000230601007126E168814701478146014671
|
:10075000F70F2388F4021147639DE7003D45253ECE
|
||||||
:10076000B70538FF9388086A0148130584008D2E69
|
:1007600013058B00E13629C11305000F2D362388B0
|
||||||
:10077000713437070002B715080037460F002320F1
|
:100770000402232E090251BF3D45232E090223887E
|
||||||
:100780000704814781469385054013061624C84D0A
|
:100780000402113E1D3605052312A4003D45213605
|
||||||
:100790001375050211CD85CA2320F70437470F00D2
|
:10079000ADBF3D45232E090223880402ED3C713D87
|
||||||
:1007A000130707246391E702793B01A08546C5B78B
|
:1007A00083476400B5FFDDB73D45C9B72388040220
|
||||||
:1007B0008507E39DC7FE81CAB7470F0093870724CB
|
:1007B000A9BF011106CE22CCA539370400021305CA
|
||||||
:1007C0002320F704D5B7DD350547AA876305E50281
|
:1007C0008400C92413058400CD2EE1689388086A4B
|
||||||
:1007D00009476300E506054591EBB7060600DC4ACC
|
:1007D00001488147780085460146B705D9EB1305E6
|
||||||
:1007E0007D771307F73FF98FDCCA014582807D17BB
|
:1007E000840023060100252EE1689388086A0148E9
|
||||||
:1007F00019EB0D4582809306004037A707001307C9
|
:1007F0008147014781460146B70538FF130584004C
|
||||||
:100800000712B7050500905D7D8E75D2370606008C
|
:10080000392EED3AF9350547AA876305E502094710
|
||||||
:100810005C4A7D771307F73FF98FD58F41115CCA8A
|
:100810006300E506054591EBB7060600DC4A7D77E7
|
||||||
:1008200002C613073006B2476359F700014541017C
|
:100820001307F73FF98FDCCA014582807D1719EB6A
|
||||||
:100830008280856693860680C9B7B24785073EC623
|
:100830000D4582809306004037A707001307071273
|
||||||
:10084000DDB791476307F50263EAA7008547630AAE
|
:10084000B7050500905D7D8E75D2370606005C4ABF
|
||||||
:10085000F50489476309F50405458280A147E31D36
|
:100850007D771307F73FF98FD58F41115CCA02C628
|
||||||
:10086000F5FE0947094501A8FD1781EFC8D20D45DE
|
:1008600013073006B2476359F70001454101828002
|
||||||
:10087000828005470D45B7A7070093870712B70683
|
:10087000856693860680C9B7B24785073EC6DDB751
|
||||||
:100880000500905E798E6DD28A05C98D4111CCD25A
|
:1008800091476307F50263EAA7008547630AF50409
|
||||||
:1008900002C613073006B247635AF700014541010B
|
:1008900089476309F50405458280A147E31DF5FEFC
|
||||||
:1008A00082801147C9BF21470145F1B7B24785078B
|
:1008A0000947094501A8FD1781EFC8D20D4582808F
|
||||||
:1008B0003EC6D5B70547AA876305E5020947630227
|
:1008B00005470D45B7A7070093870712B706050040
|
||||||
:1008C000E506054591EBB70606009C4A7D771307C0
|
:1008C000905E798E6DD28A05C98D4111CCD202C657
|
||||||
:1008D000F73FF98F9CCA014582807D1719EB0D45C2
|
:1008D00013073006B247635AF70001454101828091
|
||||||
:1008E00082809306004037A7070013070712B70559
|
:1008E0001147C9BF21470145F1B7B24785073EC649
|
||||||
:1008F0000500905D7D8E75D2370706001C4B7D7616
|
:1008F000D5B70547AA876305E50209476302E50600
|
||||||
:100900001306F63FF18FD58F1CCB85471CCF4111C5
|
:10090000054591EBB70606009C4A7D771307F73F34
|
||||||
:1009100002C613073006B2476359F700014541018B
|
:10091000F98F9CCA014582807D1719EB0D458280B5
|
||||||
:1009200082808566938606807DBFB24785073EC676
|
:100920009306004037A7070013070712B705050015
|
||||||
:10093000DDB711C98547630DF50205458280FD17B6
|
:10093000905D7D8E75D2370706001C4B7D761306C1
|
||||||
:1009400091EB0D4582800946B7A7070093870712F0
|
:10094000F63FF18FD58F1CCB85471CCF411102C6D6
|
||||||
:10095000B7060500985E718F7DD34111C8D602C6D7
|
:1009500013073006B2476359F70001454101828011
|
||||||
:1009600013073006B2476357F70001454101828003
|
:100960008566938606807DBFB24785073EC6DDB7A4
|
||||||
:100970000546D9BFB24785073EC6EDB7011126CA65
|
:1009700011C98547630DF50205458280FD1791EB8E
|
||||||
:10098000B7040600DC4806CE22CC4AC84EC652C484
|
:100980000D4582800946B7A7070093870712B7066F
|
||||||
:1009900056C2F19BDCC89C482A89C845F19B9CC87B
|
:100990000500985E718F7DD34111C8D602C613073A
|
||||||
:1009A00083C7C5012E848A07DCC883C7D5018A079F
|
:1009A0003006B2476357F700014541018280054692
|
||||||
:1009B0009CC8193D0C44AA8A03454400593518487F
|
:1009B000D9BFB24785073EC6EDB7011126CAB704B5
|
||||||
:1009C000B70705002A8A98C358480850D8C3184C5E
|
:1009C0000600DC4806CE22CC4AC84EC652C456C2E7
|
||||||
:1009D00098C7CD35AA894850A93F834704002A8784
|
:1009D000F19BDCC89C482A89C845F19B9CC883C709
|
||||||
:1009E00093F6170089E6D44893E62600D4C893F618
|
:1009E000C5012E848A07DCC883C7D5018A079CC845
|
||||||
:1009F000270099E637060600544A93E6160054CAC3
|
:1009F000193D0C44AA8A0345440059351848B707E5
|
||||||
:100A000093F6470099E637060600144A93E6260057
|
:100A000005002A8A98C358480850D8C3184C98C77C
|
||||||
:100A100014CAA18B99E7B70606009C4A93E7170012
|
:100A1000CD35AA894850A93F834704002A8793F619
|
||||||
:100A20009CCAF24062442320590123224901232415
|
:100A2000170089E6D44893E62600D4C893F6270039
|
||||||
:100A300039012326E900D244B249224A924A4A8522
|
:100A300099E637060600544A93E6160054CA93F620
|
||||||
:100A4000424905618280011106CE22CC02C402C651
|
:100A4000470099E637060600144A93E6260014CAC2
|
||||||
:100A50002147B707050037550800D8C705448D471B
|
:100A5000A18B99E7B70606009C4A93E717009CCA4A
|
||||||
:100A60008A85130505803EC022C2292A3755080011
|
:100A6000F240624423205901232249012324390101
|
||||||
:100A70009307C0038A851305058022C222C43EC0A5
|
:100A70002326E900D244B249224A924A4A85424991
|
||||||
:100A80001122F240624405618280411122C406C6EF
|
:100A800005618280011106CE22CC02C402C6214734
|
||||||
:100A90002A84553F18405C4F93E707015CCF1C4404
|
:100A9000B707050037550800D8C705448D478A8534
|
||||||
:100AA0001CCB5C4085CB1C43B7061000D58F1CC304
|
:100AA000130505803EC022C2292A37550800930746
|
||||||
:100AB000144C5C48B240D606CE07D58F834604015D
|
:100AB000C0038A851305058022C222C43EC01122CC
|
||||||
:100AC000C206D58F8346C4012244E206D58F1CCFCF
|
:100AC000F240624405618280411122C406C62A8434
|
||||||
:100AD000410182801C43B706F0FFFD16F58FC1BFB0
|
:100AD000553F18405C4F93E707015CCF1C441CCB8B
|
||||||
:100AE000032305002A8E0325C30113650502232E67
|
:100AE0005C4085CB1C43B7061000D58F1CC3144C4B
|
||||||
:100AF000A3002324C3001396260149824D8E23268A
|
:100AF0005C48B240D606CE07D58F83460401C206B5
|
||||||
:100B000003012322C300139605016354060299C210
|
:100B0000D58F8346C4012244E206D58F1CCF410114
|
||||||
:100B10000545B1CB01476346D700639C08020D45EC
|
:100B100082801C43B706F0FFFD16F58FC1BF03238B
|
||||||
:100B200082803386E700034606000507230AC300D8
|
:100B200005002A8E0325C30113650502232EA300A9
|
||||||
:100B3000DDB799C2054505CB8147E3D0D7FE032633
|
:100B30002324C3001396260149824D8E23260301E8
|
||||||
:100B40000E00034546013306F70085072300A60083
|
:100B40002322C300139605016354060299C205458A
|
||||||
:100B5000EDB783270E00FD18DC4F93F70702D5DFB2
|
:100B5000B1CB01476346D700639C08020D458280F4
|
||||||
:100B600011656D8D11E18280B707070083C74701CA
|
:100B60003386E700034606000507230AC300DDB706
|
||||||
:100B700013F585001D8D3335A00082801C4141474F
|
:100B700099C2054505CB8147E3D0D7FE03260E0079
|
||||||
:100B8000D8CF8280B7470800938707402A8863043C
|
:100B8000034546013306F70085072300A600EDB7AD
|
||||||
:100B9000F508B7570800938707806304F50A3747BD
|
:100B900083270E00FD18DC4F93F70702D5DF1165A0
|
||||||
:100BA0000800630DE50A05458280331E1F01337678
|
:100BA0006D8D11E18280B707070083C7470113F5F8
|
||||||
:100BB000DE0129C683A345008843139318003396AA
|
:100BB00085001D8D3335A00082801C414147D8CF70
|
||||||
:100BC0006F001346F6FF13F43300718D3314640085
|
:100BC0008280B7470800938707402A886304F508A6
|
||||||
:100BD000418D88C3638B5302638C0302084303AEC9
|
:100BD000B7570800938707806304F50A3747080072
|
||||||
:100BE000C500718D331E6E003365C50108C3884290
|
:100BE000630DE50A05458280331E1F013376DE0161
|
||||||
:100BF000698E884533156500498E90C2850833D5C6
|
:100BF00029C683A3450088431393180033966F00DA
|
||||||
:100C00001E0145F53244410182802326C801F9B70F
|
:100C00001346F6FF13F43300718D33146400418DE5
|
||||||
:100C10002324C801E1B7B716050037170500B71739
|
:100C100088C3638B5302638C0302084303AEC50091
|
||||||
:100C20000500938646C1130707C19387C7C083AEEB
|
:100C2000718D331E6E003365C50108C38842698E1D
|
||||||
:100C300005008148054F8D4F914233D51E0105EDCA
|
:100C3000884533156500498E90C2850833D51E015D
|
||||||
:100C40008280B716050037170500B7170500938691
|
:100C400045F53244410182802326C801F9B72324A7
|
||||||
:100C500006C21307C7C1938787C1D1BFB716050066
|
:100C5000C801E1B7B716050037170500B71705003B
|
||||||
:100C600037170500B7170500938686C0130747C0DE
|
:100C6000938646C1130707C19387C7C083AE0500AB
|
||||||
:100C7000938707C06DBF331E1F013376DE0119E273
|
:100C70008148054F8D4F914233D51E0105ED82808D
|
||||||
:100C8000850865BF411122C635B7E1689388086AB7
|
:100C8000B716050037170500B7170500938606C28B
|
||||||
:100C900001488147014781460146B705200689B5CD
|
:100C90001307C7C1938787C1D1BFB71605003717A0
|
||||||
:100CA000011106CEA307010089476393F502B7053A
|
:100CA0000500B7170500938686C0130747C09387D2
|
||||||
:100CB0002035E1681307F1009388086A01488147ED
|
:100CB00007C06DBF331E1F013376DE0119E28508C0
|
||||||
:100CC00085460146313DF2400345F10005618280D1
|
:100CC00065BF411122C635B7E1689388086A0148BB
|
||||||
:100CD000B7052005F9BF011106CE22CC26CA23068E
|
:100CD0008147014781460146B705200689B50111C4
|
||||||
:100CE000B100AA84A306C1004D37E1689388086A61
|
:100CE00006CEA307010089476393F502B7052035B7
|
||||||
:100CF00001487C00014789460146B78520012685C9
|
:100CF000E1681307F1009388086A01488147854637
|
||||||
:100D00000964F93B130414717D1419E40D45F24094
|
:100D00000146313DF2400345F10005618280B7059F
|
||||||
:100D10006244D24405618280854526855137058924
|
:100D10002005F9BF011106CE22CC26CA2306B10058
|
||||||
:100D200065F50145EDB7011106CE22CC26CA2E8409
|
:100D2000AA84A306C1004D37E1689388086A014888
|
||||||
:100D30004AC8AA84328936C6893FB247E16822860A
|
:100D30007C00014789460146B78520012685096464
|
||||||
:100D40009388086A01480147CA86B78580022685CC
|
:100D4000F93B130414717D1419E40D45F24062441B
|
||||||
:100D5000616479331304146A7D1411C485452685B2
|
:100D5000D24405618280854526855137058965F530
|
||||||
:100D60008137058975F9F2406244D24442490561F0
|
:100D60000145EDB7011106CE22CC26CA2E844AC811
|
||||||
:100D70008280011106CE22CC26CA2EC6AA84313723
|
:100D7000AA84328936C6893FB247E16822869388C1
|
||||||
:100D80003246E1689388086A0148814701478146F5
|
:100D8000086A01480147CA86B785800226856164E2
|
||||||
:100D9000B705802026856164A1331304146A7D148D
|
:100D900079331304146A7D1411C48545268581377F
|
||||||
:100DA00011C485452685ED3D058975F9F2406244FB
|
:100DA000058975F9F2406244D24442490561828066
|
||||||
:100DB000D24405618280B3C7A5008D8BB308C500FE
|
:100DB000011106CE22CC26CA2EC6AA84313732466D
|
||||||
:100DC000B1E78D4763F4C704937735002A87B9EB01
|
:100DC000E1689388086A0148814701478146B70571
|
||||||
:100DD00013F6C8FFB306E6409307000263C8D706C0
|
:100DD000802026856164A1331304146A7D1411C434
|
||||||
:100DE000AE86BA876371C70203A806009107910611
|
:100DE00085452685ED3D058975F9F2406244D2447A
|
||||||
:100DF00023AE07FFE3EAC7FE9307F6FF998FF19B47
|
:100DF00005618280B3C7A5008D8BB308C500B1E73C
|
||||||
:100E000091073E97BE956366170182802A87637EAD
|
:100E00008D4763F4C704937735002A87B9EB13F64F
|
||||||
:100E1000150383C7050005078505A30FF7FEE39AB1
|
:100E1000C8FFB306E6409307000263C8D706AE8654
|
||||||
:100E2000E8FE828083C60500050793773700A30F8D
|
:100E2000BA876371C70203A806009107910623AE33
|
||||||
:100E3000D7FE8505D1DF83C6050005079377370008
|
:100E300007FFE3EAC7FE9307F6FF998FF19B91073F
|
||||||
:100E4000A30FD7FE8505F9FF61B78280411122C645
|
:100E40003E97BE956366170182802A87637E1503ED
|
||||||
:100E50001304000283A3050083A2450083AF85002D
|
:100E500083C7050005078505A30FF7FEE39AE8FEA3
|
||||||
:100E600003AFC50083AE050103AE450103A38501B1
|
:100E6000828083C60500050793773700A30FD7FE5E
|
||||||
:100E700003A8C501945113074702B307E640232E88
|
:100E70008505D1DF83C60500050793773700A30FEB
|
||||||
:100E800077FC232057FE2322F7FF2324E7FF2326A6
|
:100E8000D7FE8505F9FF61B78280411122C61304A0
|
||||||
:100E9000D7FF2328C7FF232A67FE232C07FF232E13
|
:100E9000000283A3050083A2450083AF850003AF52
|
||||||
:100EA000D7FE93854502E347F4FAAE86BA876371AD
|
:100EA000C50083AE050103AE450103A3850103A878
|
||||||
:100EB000C70203A806009107910623AE07FFE3EAE5
|
:100EB000C501945113074702B307E640232E77FC80
|
||||||
:100EC000C7FE9307F6FF998FF19B91073E97BE955A
|
:100EC000232057FE2322F7FF2324E7FF2326D7FF03
|
||||||
:100ED0006365170132444101828083C7050005071D
|
:100ED0002328C7FF232A67FE232C07FF232ED7FED4
|
||||||
:100EE0008505A30FF7FEE387E8FE83C70500050726
|
:100EE00093854502E347F4FAAE86BA876371C70279
|
||||||
:100EF0008505A30FF7FEE392E8FEE9BF200000009E
|
:100EF00003A806009107910623AE07FFE3EAC7FEA9
|
||||||
:100F0000010000000300000006000000EB000000EC
|
:100F00009307F6FF998FF19B91073E97BE95636516
|
||||||
:100F10000000008000010000000007000000000049
|
:100F1000170132444101828083C70500050785051A
|
||||||
:100F200000000000000000000000000000000000C1
|
:100F2000A30FF7FEE387E8FE83C7050005078505E5
|
||||||
:100F300000000000000000000000000000000000B1
|
:100F3000A30FF7FEE392E8FEE9BF000020000000E7
|
||||||
|
:100F4000010000000300000006000000EB000000AC
|
||||||
|
:100F5000000000800000000000000700000000000A
|
||||||
|
:100F60000000000000000000000000000000000081
|
||||||
|
:100F70000000000000000000000000000000000071
|
||||||
:0400000501000000F6
|
:0400000501000000F6
|
||||||
:00000001FF
|
:00000001FF
|
||||||
@@ -1,247 +0,0 @@
|
|||||||
:020000040100F9
|
|
||||||
:10000000FD62938202400100FD12E39E02FE374131
|
|
||||||
:10001000000213010100B701000293810100B7152E
|
|
||||||
:100020000001938505F137160001130606F4B706A3
|
|
||||||
:1000300000029386060039A083A2050023A0560083
|
|
||||||
:1000400091059106E3EAC5FEB7150001938505F415
|
|
||||||
:1000500037160001130606F4B7060002938606263B
|
|
||||||
:1000600039A083A2050023A0560091059106E3EA7A
|
|
||||||
:10007000C5FEB70500029385050337060002130687
|
|
||||||
:10008000062621A023A005009105E3EDC5FEB700DB
|
|
||||||
:100090000001E780C00AB7000001E780C00AB7008E
|
|
||||||
:1000A0000001E780007273005010F5BF82800000ED
|
|
||||||
:1000B0000000000000000000000000000000000040
|
|
||||||
:1000C0006F004000197106C20AC40EC612C816CAD3
|
|
||||||
:1000D0001ACC1ECE22D026D22AD42ED632D836DA48
|
|
||||||
:1000E0003ADC3EDEC2C0C6C2CAC4CEC6D2C8D6CA78
|
|
||||||
:1000F000DACCDECEE2D0E6D2EAD4EED6F2D8F6DA28
|
|
||||||
:10010000FADCFEDE970000009380E00482909240CB
|
|
||||||
:100110002241B2414242D2426243F24302549254DB
|
|
||||||
:100120002255B2554256D2566257F2570648964863
|
|
||||||
:100130002649B649464AD64A664BF64B065C965C5B
|
|
||||||
:10014000265DB65D465ED65E665FF65F096173004A
|
|
||||||
:10015000203001A03D432A876373C3029377F700E1
|
|
||||||
:10016000BDEFADE5937606FF3D8ABA960CC34CC34E
|
|
||||||
:100170000CC74CC74107E36BD7FE11E28280B30680
|
|
||||||
:10018000C3408A069702000096966780A600230760
|
|
||||||
:10019000B700A306B7002306B700A305B7002305E1
|
|
||||||
:1001A000B700A304B7002304B700A303B7002303D9
|
|
||||||
:1001B000B700A302B7002302B700A301B7002301D1
|
|
||||||
:1001C000B700A300B7002300B700828093F5F50FB6
|
|
||||||
:1001D00093968500D58D93960501D58D61B793963D
|
|
||||||
:1001E00027009702000096968682E78086FA96801E
|
|
||||||
:1001F000C1171D8F3E96E374C3F8A5B7B707050076
|
|
||||||
:100200000947D8CFB7170500938707C0984385667D
|
|
||||||
:1002100093860640558F98C3B71708009387074009
|
|
||||||
:1002200023A0070023A2070023A407001307A008A8
|
|
||||||
:10023000D8C77D57D8CF354798C3D84F9356570165
|
|
||||||
:100240008D8AE5DE8280B71708009387074023A0D8
|
|
||||||
:10025000070023A2070023A4070023A607007D5759
|
|
||||||
:10026000D8CF23A40702B7170500938707C0984388
|
|
||||||
:10027000F1769386F63F758F98C3B7070500D84F80
|
|
||||||
:1002800023AE07008280B71708009387074088D7FE
|
|
||||||
:10029000D84F137707046DDF828037070002B71548
|
|
||||||
:1002A000080037460F0023200704814781469385C5
|
|
||||||
:1002B000054013061624C84D137505020DC991CECD
|
|
||||||
:1002C0002320F70437470F00130707246397E7003D
|
|
||||||
:1002D000B707000205472383E700B7170800938795
|
|
||||||
:1002E0000740C8534205418182808546E9B78507AA
|
|
||||||
:1002F000E39DC7FEFDD2B7470F0093870724232055
|
|
||||||
:10030000F704F9B74111B707000222C413870700A9
|
|
||||||
:1003100006C6834667000547138407006390E6021C
|
|
||||||
:100320001305000F8D37B717080093870740D84F84
|
|
||||||
:10033000218B09C7D84F13678700D8CF2303040048
|
|
||||||
:10034000B240224441018280411106C622C426C225
|
|
||||||
:10035000AA84EF009013E1689388086A01488147F6
|
|
||||||
:10036000014781460146B70520C726853794980086
|
|
||||||
:10037000EF000077130414687D1419E40D45B240B2
|
|
||||||
:10038000224492444101828085452685EF00501128
|
|
||||||
:1003900005897DF10145E5B7411122C4370400020A
|
|
||||||
:1003A000930704008C43B70700804AC0BE95B70787
|
|
||||||
:1003B000000223ACB70206C626C293974501130478
|
|
||||||
:1003C00004003709000289E713058900EF00701A5D
|
|
||||||
:1003D0000C40B70400029386440413060010130572
|
|
||||||
:1003E0008900EF0050141C40370700028356470372
|
|
||||||
:1003F000938707101CC013060010B68763F4C6006D
|
|
||||||
:1004000093070010138444041305F400938707F046
|
|
||||||
:100410001306100F814513040410231AF7021D3B25
|
|
||||||
:10042000A285138544043D46EF00F0182320040004
|
|
||||||
:1004300023220400232404002316040023070400BD
|
|
||||||
:10044000B240224492440249410182805D71130608
|
|
||||||
:1004500080028145280886C6F539BD47230CF10086
|
|
||||||
:100460008947230EF1003ED2E177938707082C08D5
|
|
||||||
:100470000A85231AF1021923B640616182805D71F9
|
|
||||||
:10048000A2C4370400021305840086C6A6C2652BE9
|
|
||||||
:1004900013058400E525894513058400EF0050000D
|
|
||||||
:1004A0009377250085E3AA84854513058400EF0032
|
|
||||||
:1004B000207F13E62400AA851376F60F1305840027
|
|
||||||
:1004C000EF007001E1689388086A0148814701479D
|
|
||||||
:1004D00081460146B7052038130584001125E168DF
|
|
||||||
:1004E00038009388086A1308000285468147014650
|
|
||||||
:1004F000B70599EB1305840023040100D523B71534
|
|
||||||
:10050000000151469385C5EF6800EF00D00A9304BF
|
|
||||||
:1005100084009C406C0051463ED085473ED2681016
|
|
||||||
:10052000C1673ED4EF003009B70607009C42370789
|
|
||||||
:10053000F1FF7D17F98F08109CC2812BB64026442D
|
|
||||||
:10054000964461618280411106C6F5390D3FB707B7
|
|
||||||
:10055000008073905730B70000808290B240410114
|
|
||||||
:100560008280411106C622C426C24AC08347350094
|
|
||||||
:1005700005476383E70811472A846389E7008DCF25
|
|
||||||
:10058000B24022449244024941018280B7070002EE
|
|
||||||
:1005900083D7470391C30935834744000347540079
|
|
||||||
:1005A000E2074207BA9737070002232EF702370700
|
|
||||||
:1005B00000022320F700E9B73709000283544903FA
|
|
||||||
:1005C0000346050093054500370500021305450461
|
|
||||||
:1005D0002695EF00407E83470400BE94C204C1808C
|
|
||||||
:1005E000231A99029307F00FE3FC97F82244B240D4
|
|
||||||
:1005F0009244024941014DB33D457131B7070002B4
|
|
||||||
:1006000083D7470391C3493B2244B24092440249F5
|
|
||||||
:10061000410115BF3707000293070700B705000225
|
|
||||||
:1006200003DE470083A705043716080037450F008F
|
|
||||||
:1006300037480F00B708000201438146130707003F
|
|
||||||
:10064000130606401305152413080824938848153B
|
|
||||||
:1006500063EEC6016304030023A0F504834767002B
|
|
||||||
:10066000A9E73705000213054515E5BD81470323BA
|
|
||||||
:10067000C60113730302631F03008507E399A7FEF6
|
|
||||||
:10068000B7470F009387072423A0F504854723036A
|
|
||||||
:10069000F7008280E38607FF832E46023383D8006B
|
|
||||||
:1006A00085062300D301054365B78280011122CC62
|
|
||||||
:1006B0003704000226CA4AC84EC652C406CE1304E6
|
|
||||||
:1006C0000400930400061309E00FB7090002130A9F
|
|
||||||
:1006D0000003E136834764001375F50FA303A400FC
|
|
||||||
:1006E00099C30D31FDB7630F950063042503E31231
|
|
||||||
:1006F00045FF3D45493E553605052312A4003D45BD
|
|
||||||
:100700005936C1BF3D454136313783476400F1FB5F
|
|
||||||
:10071000FDB7138589000D397DD11305000FCDB7C5
|
|
||||||
:10072000011106CE22CC1D333704000213058400CC
|
|
||||||
:10073000192E130584009921E1689388086A0148FD
|
|
||||||
:100740008147780085460146B705D9EB130584003B
|
|
||||||
:10075000230601007126E168814701478146014671
|
|
||||||
:10076000B70538FF9388086A0148130584008D2E69
|
|
||||||
:10077000713437070002B715080037460F002320F1
|
|
||||||
:100780000704814781469385054013061624C84D0A
|
|
||||||
:100790001375050211CD85CA2320F70437470F00D2
|
|
||||||
:1007A000130707246391E702793B01A08546C5B78B
|
|
||||||
:1007B0008507E39DC7FE81CAB7470F0093870724CB
|
|
||||||
:1007C0002320F704D5B7DD350547AA876305E50281
|
|
||||||
:1007D00009476300E506054591EBB7060600DC4ACC
|
|
||||||
:1007E0007D771307F73FF98FDCCA014582807D17BB
|
|
||||||
:1007F00019EB0D4582809306004037A707001307C9
|
|
||||||
:100800000712B7050500905D7D8E75D2370606008C
|
|
||||||
:100810005C4A7D771307F73FF98FD58F41115CCA8A
|
|
||||||
:1008200002C613073006B2476359F700014541017C
|
|
||||||
:100830008280856693860680C9B7B24785073EC623
|
|
||||||
:10084000DDB791476307F50263EAA7008547630AAE
|
|
||||||
:10085000F50489476309F50405458280A147E31D36
|
|
||||||
:10086000F5FE0947094501A8FD1781EFC8D20D45DE
|
|
||||||
:10087000828005470D45B7A7070093870712B70683
|
|
||||||
:100880000500905E798E6DD28A05C98D4111CCD25A
|
|
||||||
:1008900002C613073006B247635AF700014541010B
|
|
||||||
:1008A00082801147C9BF21470145F1B7B24785078B
|
|
||||||
:1008B0003EC6D5B70547AA876305E5020947630227
|
|
||||||
:1008C000E506054591EBB70606009C4A7D771307C0
|
|
||||||
:1008D000F73FF98F9CCA014582807D1719EB0D45C2
|
|
||||||
:1008E00082809306004037A7070013070712B70559
|
|
||||||
:1008F0000500905D7D8E75D2370706001C4B7D7616
|
|
||||||
:100900001306F63FF18FD58F1CCB85471CCF4111C5
|
|
||||||
:1009100002C613073006B2476359F700014541018B
|
|
||||||
:1009200082808566938606807DBFB24785073EC676
|
|
||||||
:10093000DDB711C98547630DF50205458280FD17B6
|
|
||||||
:1009400091EB0D4582800946B7A7070093870712F0
|
|
||||||
:10095000B7060500985E718F7DD34111C8D602C6D7
|
|
||||||
:1009600013073006B2476357F70001454101828003
|
|
||||||
:100970000546D9BFB24785073EC6EDB7011126CA65
|
|
||||||
:10098000B7040600DC4806CE22CC4AC84EC652C484
|
|
||||||
:1009900056C2F19BDCC89C482A89C845F19B9CC87B
|
|
||||||
:1009A00083C7C5012E848A07DCC883C7D5018A079F
|
|
||||||
:1009B0009CC8193D0C44AA8A03454400593518487F
|
|
||||||
:1009C000B70705002A8A98C358480850D8C3184C5E
|
|
||||||
:1009D00098C7CD35AA894850A93F834704002A8784
|
|
||||||
:1009E00093F6170089E6D44893E62600D4C893F618
|
|
||||||
:1009F000270099E637060600544A93E6160054CAC3
|
|
||||||
:100A000093F6470099E637060600144A93E6260057
|
|
||||||
:100A100014CAA18B99E7B70606009C4A93E7170012
|
|
||||||
:100A20009CCAF24062442320590123224901232415
|
|
||||||
:100A300039012326E900D244B249224A924A4A8522
|
|
||||||
:100A4000424905618280011106CE22CC02C402C651
|
|
||||||
:100A50002147B707050037550800D8C705448D471B
|
|
||||||
:100A60008A85130505803EC022C2292A3755080011
|
|
||||||
:100A70009307C0038A851305058022C222C43EC0A5
|
|
||||||
:100A80001122F240624405618280411122C406C6EF
|
|
||||||
:100A90002A84553F18405C4F93E707015CCF1C4404
|
|
||||||
:100AA0001CCB5C4085CB1C43B7061000D58F1CC304
|
|
||||||
:100AB000144C5C48B240D606CE07D58F834604015D
|
|
||||||
:100AC000C206D58F8346C4012244E206D58F1CCFCF
|
|
||||||
:100AD000410182801C43B706F0FFFD16F58FC1BFB0
|
|
||||||
:100AE000032305002A8E0325C30113650502232E67
|
|
||||||
:100AF000A3002324C3001396260149824D8E23268A
|
|
||||||
:100B000003012322C300139605016354060299C210
|
|
||||||
:100B10000545B1CB01476346D700639C08020D45EC
|
|
||||||
:100B200082803386E700034606000507230AC300D8
|
|
||||||
:100B3000DDB799C2054505CB8147E3D0D7FE032633
|
|
||||||
:100B40000E00034546013306F70085072300A60083
|
|
||||||
:100B5000EDB783270E00FD18DC4F93F70702D5DFB2
|
|
||||||
:100B600011656D8D11E18280B707070083C74701CA
|
|
||||||
:100B700013F585001D8D3335A00082801C4141474F
|
|
||||||
:100B8000D8CF8280B7470800938707402A8863043C
|
|
||||||
:100B9000F508B7570800938707806304F50A3747BD
|
|
||||||
:100BA0000800630DE50A05458280331E1F01337678
|
|
||||||
:100BB000DE0129C683A345008843139318003396AA
|
|
||||||
:100BC0006F001346F6FF13F43300718D3314640085
|
|
||||||
:100BD000418D88C3638B5302638C0302084303AEC9
|
|
||||||
:100BE000C500718D331E6E003365C50108C3884290
|
|
||||||
:100BF000698E884533156500498E90C2850833D5C6
|
|
||||||
:100C00001E0145F53244410182802326C801F9B70F
|
|
||||||
:100C10002324C801E1B7B716050037170500B71739
|
|
||||||
:100C20000500938646C1130707C19387C7C083AEEB
|
|
||||||
:100C300005008148054F8D4F914233D51E0105EDCA
|
|
||||||
:100C40008280B716050037170500B7170500938691
|
|
||||||
:100C500006C21307C7C1938787C1D1BFB716050066
|
|
||||||
:100C600037170500B7170500938686C0130747C0DE
|
|
||||||
:100C7000938707C06DBF331E1F013376DE0119E273
|
|
||||||
:100C8000850865BF411122C635B7E1689388086AB7
|
|
||||||
:100C900001488147014781460146B705200689B5CD
|
|
||||||
:100CA000011106CEA307010089476393F502B7053A
|
|
||||||
:100CB0002035E1681307F1009388086A01488147ED
|
|
||||||
:100CC00085460146313DF2400345F10005618280D1
|
|
||||||
:100CD000B7052005F9BF011106CE22CC26CA23068E
|
|
||||||
:100CE000B100AA84A306C1004D37E1689388086A61
|
|
||||||
:100CF00001487C00014789460146B78520012685C9
|
|
||||||
:100D00000964F93B130414717D1419E40D45F24094
|
|
||||||
:100D10006244D24405618280854526855137058924
|
|
||||||
:100D200065F50145EDB7011106CE22CC26CA2E8409
|
|
||||||
:100D30004AC8AA84328936C6893FB247E16822860A
|
|
||||||
:100D40009388086A01480147CA86B78580022685CC
|
|
||||||
:100D5000616479331304146A7D1411C485452685B2
|
|
||||||
:100D60008137058975F9F2406244D24442490561F0
|
|
||||||
:100D70008280011106CE22CC26CA2EC6AA84313723
|
|
||||||
:100D80003246E1689388086A0148814701478146F5
|
|
||||||
:100D9000B705802026856164A1331304146A7D148D
|
|
||||||
:100DA00011C485452685ED3D058975F9F2406244FB
|
|
||||||
:100DB000D24405618280B3C7A5008D8BB308C500FE
|
|
||||||
:100DC000B1E78D4763F4C704937735002A87B9EB01
|
|
||||||
:100DD00013F6C8FFB306E6409307000263C8D706C0
|
|
||||||
:100DE000AE86BA876371C70203A806009107910611
|
|
||||||
:100DF00023AE07FFE3EAC7FE9307F6FF998FF19B47
|
|
||||||
:100E000091073E97BE956366170182802A87637EAD
|
|
||||||
:100E1000150383C7050005078505A30FF7FEE39AB1
|
|
||||||
:100E2000E8FE828083C60500050793773700A30F8D
|
|
||||||
:100E3000D7FE8505D1DF83C6050005079377370008
|
|
||||||
:100E4000A30FD7FE8505F9FF61B78280411122C645
|
|
||||||
:100E50001304000283A3050083A2450083AF85002D
|
|
||||||
:100E600003AFC50083AE050103AE450103A38501B1
|
|
||||||
:100E700003A8C501945113074702B307E640232E88
|
|
||||||
:100E800077FC232057FE2322F7FF2324E7FF2326A6
|
|
||||||
:100E9000D7FF2328C7FF232A67FE232C07FF232E13
|
|
||||||
:100EA000D7FE93854502E347F4FAAE86BA876371AD
|
|
||||||
:100EB000C70203A806009107910623AE07FFE3EAE5
|
|
||||||
:100EC000C7FE9307F6FF998FF19B91073E97BE955A
|
|
||||||
:100ED0006365170132444101828083C7050005071D
|
|
||||||
:100EE0008505A30FF7FEE387E8FE83C70500050726
|
|
||||||
:100EF0008505A30FF7FEE392E8FEE9BF200000009E
|
|
||||||
:100F0000010000000300000006000000EB000000EC
|
|
||||||
:100F10000000008000010000000007000000000049
|
|
||||||
:100F200000000000000000000000000000000000C1
|
|
||||||
:100F300000000000000000000000000000000000B1
|
|
||||||
:0400000501000000F6
|
|
||||||
:00000001FF
|
|
||||||
@@ -35,11 +35,6 @@
|
|||||||
|
|
||||||
#include "wiring.h"
|
#include "wiring.h"
|
||||||
|
|
||||||
// define из avr-gcc (некоторые библиотеки ардуины им пользуются)
|
|
||||||
#define _BV(bit) (1 << (bit))
|
|
||||||
|
|
||||||
// void ErrorMsgHandler(const char * msg);
|
|
||||||
|
|
||||||
/* sketch */
|
/* sketch */
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|||||||
@@ -6,8 +6,13 @@
|
|||||||
#include <uart_lib.h>
|
#include <uart_lib.h>
|
||||||
#include "mik32_hal_irq.h"
|
#include "mik32_hal_irq.h"
|
||||||
|
|
||||||
// объект класса HardwareSerial для использования в arduino ide
|
|
||||||
HardwareSerial Serial;
|
// HardwareSerial class objects for use in Arduino IDE
|
||||||
|
HardwareSerial Serial(0);
|
||||||
|
#if SERIAL_PORT_QTY > 1
|
||||||
|
HardwareSerial Serial1(1);
|
||||||
|
#endif
|
||||||
|
|
||||||
void serialEvent() __attribute__((weak));
|
void serialEvent() __attribute__((weak));
|
||||||
bool Serial0_available() __attribute__((weak));
|
bool Serial0_available() __attribute__((weak));
|
||||||
|
|
||||||
@@ -55,35 +60,46 @@ void HardwareSerial::begin(unsigned long baud, uint8_t config)
|
|||||||
reg2config |= UART_CONTROL2_STOP_1_M;
|
reg2config |= UART_CONTROL2_STOP_1_M;
|
||||||
|
|
||||||
// turn on the receiver and transmitter, apply the parsed config
|
// turn on the receiver and transmitter, apply the parsed config
|
||||||
UART_Init(UART_0, brr, reg1config, reg2config, reg3config);
|
if (uartNum == 0)
|
||||||
// Enable level-based interrupts for the EPIC_UART_0 line, we have only receive interrupt enabled
|
{
|
||||||
HAL_EPIC_MaskLevelSet(HAL_EPIC_UART_0_MASK);
|
UART_Init(UART_0, brr, reg1config, reg2config, reg3config);
|
||||||
|
// Enable level-based interrupts for the EPIC_UART_0 line, we have only receive interrupt enabled
|
||||||
isInited = true;
|
HAL_EPIC_MaskLevelSet(HAL_EPIC_UART_0_MASK);
|
||||||
|
isInited = true;
|
||||||
|
}
|
||||||
|
else if (uartNum == 1)
|
||||||
|
{
|
||||||
|
UART_Init(UART_1, brr, reg1config, reg2config, reg3config);
|
||||||
|
// Enable level-based interrupts for the EPIC_UART_1 line, we have only receive interrupt enabled
|
||||||
|
HAL_EPIC_MaskLevelSet(HAL_EPIC_UART_1_MASK);
|
||||||
|
isInited = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HardwareSerial::end()
|
void HardwareSerial::end()
|
||||||
{
|
{
|
||||||
if (isInited)
|
if (isInited)
|
||||||
{
|
{
|
||||||
// wait for the data to be sent if necessary
|
// deinit uart and disable uart interrupt
|
||||||
flush();
|
if (uartNum == 0)
|
||||||
|
{
|
||||||
|
// wait for the data to be sent if necessary
|
||||||
|
UART_WaitDataTranferCompleteFlag(UART_0);
|
||||||
|
UART_Deinit(UART_0);
|
||||||
|
HAL_EPIC_MaskLevelClear(HAL_EPIC_UART_0_MASK);
|
||||||
|
isInited = false;
|
||||||
|
}
|
||||||
|
else if (uartNum == 1)
|
||||||
|
{
|
||||||
|
// wait for the data to be sent if necessary
|
||||||
|
UART_WaitDataTranferCompleteFlag(UART_1);
|
||||||
|
UART_Deinit(UART_1);
|
||||||
|
HAL_EPIC_MaskLevelClear(HAL_EPIC_UART_1_MASK);
|
||||||
|
isInited = false;
|
||||||
|
}
|
||||||
|
|
||||||
// disable clock
|
|
||||||
__HAL_PCC_UART_0_CLK_DISABLE();
|
|
||||||
HAL_EPIC_MaskLevelClear(HAL_EPIC_UART_0_MASK);
|
|
||||||
|
|
||||||
// reconfigure pins to z state
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct;
|
|
||||||
memset(&GPIO_InitStruct, 0, sizeof(GPIO_InitStruct));
|
|
||||||
GPIO_InitStruct.Pin = (HAL_PinsTypeDef)(GPIO_PIN_5 | GPIO_PIN_6);
|
|
||||||
GPIO_InitStruct.Mode = HAL_GPIO_MODE_GPIO_INPUT;
|
|
||||||
GPIO_InitStruct.Pull = HAL_GPIO_PULL_NONE;
|
|
||||||
HAL_GPIO_Init(GPIO_0, &GPIO_InitStruct);
|
|
||||||
// reset buffer indices
|
// reset buffer indices
|
||||||
_rx_buffer_head = _rx_buffer_tail = 0;
|
_rx_buffer_head = _rx_buffer_tail = 0;
|
||||||
|
|
||||||
isInited = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,14 +117,19 @@ int HardwareSerial::availableForWrite(void)
|
|||||||
|
|
||||||
void HardwareSerial::rx_complete_irq(void)
|
void HardwareSerial::rx_complete_irq(void)
|
||||||
{
|
{
|
||||||
|
// which UART to use
|
||||||
|
UART_TypeDef* uart = UART_0;
|
||||||
|
if (uartNum == 1)
|
||||||
|
uart = UART_1;
|
||||||
|
|
||||||
// find next index in buffer with upper limit
|
// find next index in buffer with upper limit
|
||||||
uint8_t i = (uint8_t)(_rx_buffer_head + 1)%SERIAL_RX_BUFFER_SIZE;
|
uint8_t i = (uint8_t)(_rx_buffer_head + 1)%SERIAL_RX_BUFFER_SIZE;
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
// while there is something to receive, put the data into the buffer
|
// while there is something to receive, put the data into the buffer
|
||||||
// and edit the buffer index
|
// and edit the buffer index
|
||||||
while (!UART_IsRxFifoEmpty(UART_0))
|
while (!UART_IsRxFifoEmpty(uart))
|
||||||
{
|
{
|
||||||
c = UART_ReadByte(UART_0);
|
c = UART_ReadByte(uart);
|
||||||
if (i != _rx_buffer_tail)
|
if (i != _rx_buffer_tail)
|
||||||
{
|
{
|
||||||
// write if there is space in the buffer
|
// write if there is space in the buffer
|
||||||
@@ -119,9 +140,16 @@ void HardwareSerial::rx_complete_irq(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// wrapper for use in С-files
|
// wrapper for use in С-files
|
||||||
extern "C" void serial_handler_wrapper(void)
|
extern "C" void serial_handler_wrapper(uint8_t uartNumInt)
|
||||||
{
|
{
|
||||||
|
if (uartNumInt == 0)
|
||||||
|
{
|
||||||
Serial.rx_complete_irq();
|
Serial.rx_complete_irq();
|
||||||
|
}
|
||||||
|
else if ((uartNumInt == 1) && (SERIAL_PORT_QTY > 1))
|
||||||
|
{
|
||||||
|
Serial1.rx_complete_irq();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int HardwareSerial::peek(void)
|
int HardwareSerial::peek(void)
|
||||||
@@ -151,8 +179,16 @@ size_t HardwareSerial::write(uint8_t c)
|
|||||||
{
|
{
|
||||||
if (isInited)
|
if (isInited)
|
||||||
{
|
{
|
||||||
UART_WriteByte(UART_0, c);
|
if (uartNum == 0)
|
||||||
UART_WaitTransmission(UART_0);
|
{
|
||||||
|
UART_WriteByte(UART_0, c);
|
||||||
|
UART_WaitTransmission(UART_0);
|
||||||
|
}
|
||||||
|
else if (uartNum == 1)
|
||||||
|
{
|
||||||
|
UART_WriteByte(UART_1, c);
|
||||||
|
UART_WaitTransmission(UART_1);
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -181,6 +217,8 @@ size_t HardwareSerial::write(const uint8_t *buffer, size_t size)
|
|||||||
void HardwareSerial::flush()
|
void HardwareSerial::flush()
|
||||||
{
|
{
|
||||||
// wait for the data transfer complete
|
// wait for the data transfer complete
|
||||||
while((UART_0->FLAGS & UART_FLAGS_TC_M) == 0)
|
if (uartNum == 0)
|
||||||
;
|
UART_WaitDataTranferCompleteFlag(UART_0);
|
||||||
|
else if (uartNum == 1)
|
||||||
|
UART_WaitDataTranferCompleteFlag(UART_1);
|
||||||
}
|
}
|
||||||
@@ -27,6 +27,7 @@
|
|||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include "stdint.h"
|
#include "stdint.h"
|
||||||
#include "Stream.h"
|
#include "Stream.h"
|
||||||
|
#include "pins_arduino.h"
|
||||||
|
|
||||||
// Define constants and variables for buffering incoming serial data. We're
|
// Define constants and variables for buffering incoming serial data. We're
|
||||||
// using a ring buffer (I think), in which head is the index of the location
|
// using a ring buffer (I think), in which head is the index of the location
|
||||||
@@ -73,9 +74,14 @@ class HardwareSerial : public Stream
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
bool isInited = false;
|
bool isInited = false;
|
||||||
|
uint8_t uartNum;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
inline HardwareSerial(){};
|
inline HardwareSerial(uint8_t num)
|
||||||
|
{
|
||||||
|
// Set the UART to be used
|
||||||
|
uartNum = (num < SERIAL_PORT_QTY) ? num : 0; // UART0 by default
|
||||||
|
}
|
||||||
|
|
||||||
void begin(unsigned long baud) { begin(baud, SERIAL_8N1); }
|
void begin(unsigned long baud) { begin(baud, SERIAL_8N1); }
|
||||||
void begin(unsigned long, uint8_t);
|
void begin(unsigned long, uint8_t);
|
||||||
@@ -98,6 +104,10 @@ class HardwareSerial : public Stream
|
|||||||
};
|
};
|
||||||
|
|
||||||
extern HardwareSerial Serial;
|
extern HardwareSerial Serial;
|
||||||
|
#if SERIAL_PORT_QTY > 1
|
||||||
|
extern HardwareSerial Serial1;
|
||||||
|
#endif
|
||||||
|
|
||||||
extern void serialEventRun(void) __attribute__((weak));
|
extern void serialEventRun(void) __attribute__((weak));
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -53,7 +53,6 @@ size_t Print::print(const __FlashStringHelper *ifsh)
|
|||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
return n;
|
return n;
|
||||||
// return print(reinterpret_cast<const char *>(ifsh));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t Print::print(const String &s)
|
size_t Print::print(const String &s)
|
||||||
|
|||||||
@@ -425,6 +425,7 @@ HAL_StatusTypeDef HAL_SPI_Exchange(SPI_HandleTypeDef *hspi, uint8_t TransmitByte
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return error_code;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
__HAL_SPI_DISABLE(hspi);
|
__HAL_SPI_DISABLE(hspi);
|
||||||
@@ -544,6 +545,7 @@ HAL_StatusTypeDef HAL_SPI_ExchangeThreshold(SPI_HandleTypeDef *hspi, uint8_t Tra
|
|||||||
tx_counter = 0;
|
tx_counter = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return error_code;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
__HAL_SPI_DISABLE(hspi);
|
__HAL_SPI_DISABLE(hspi);
|
||||||
|
|||||||
@@ -64,6 +64,21 @@ bool UART_Init(UART_TypeDef* uart,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UART_Deinit(UART_TypeDef* uart)
|
||||||
|
{
|
||||||
|
if (uart == UART_0)
|
||||||
|
{
|
||||||
|
__HAL_PCC_UART_0_CLK_DISABLE();
|
||||||
|
// reconfigure pins to z state
|
||||||
|
HAL_GPIO_PinConfig(GPIO_0, GPIO_PIN_5 | GPIO_PIN_6, HAL_GPIO_MODE_GPIO_INPUT, HAL_GPIO_PULL_NONE, HAL_GPIO_DS_2MA);
|
||||||
|
}
|
||||||
|
else if (uart == UART_1)
|
||||||
|
{
|
||||||
|
__HAL_PCC_UART_1_CLK_DISABLE();
|
||||||
|
// reconfigure pins to z state
|
||||||
|
HAL_GPIO_PinConfig(GPIO_1, GPIO_PIN_8 | GPIO_PIN_9, HAL_GPIO_MODE_GPIO_INPUT, HAL_GPIO_PULL_NONE, HAL_GPIO_DS_2MA);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool UART_IsTransmissionFinished(UART_TypeDef* uart)
|
bool UART_IsTransmissionFinished(UART_TypeDef* uart)
|
||||||
{
|
{
|
||||||
@@ -78,6 +93,14 @@ bool UART_IsTransmissionFinished(UART_TypeDef* uart)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UART_WaitDataTranferCompleteFlag(UART_TypeDef* uart)
|
||||||
|
{
|
||||||
|
// с этим флагом есть какая-то доп задержка в стоп-битах длиной почти с бит,
|
||||||
|
// но можно отслеживать полное завершение отправки посылки
|
||||||
|
while((uart->FLAGS & UART_FLAGS_TC_M) == 0)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
void UART_WaitTransmission(UART_TypeDef* uart)
|
void UART_WaitTransmission(UART_TypeDef* uart)
|
||||||
{
|
{
|
||||||
while (!UART_IsTransmissionFinished(uart)) ;
|
while (!UART_IsTransmissionFinished(uart)) ;
|
||||||
|
|||||||
@@ -38,6 +38,16 @@ bool UART_Init(UART_TypeDef* uart, uint32_t divider,
|
|||||||
uint32_t control1, uint32_t control2, uint32_t control3
|
uint32_t control1, uint32_t control2, uint32_t control3
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/** Деинициализирует контроллер USART
|
||||||
|
|
||||||
|
Функция отключает тактирование модуля и перенастраивает
|
||||||
|
используемые для модуля выводы портов
|
||||||
|
|
||||||
|
\param uart указатель для доступа к UART
|
||||||
|
|
||||||
|
*/
|
||||||
|
void UART_Deinit(UART_TypeDef* uart);
|
||||||
|
|
||||||
|
|
||||||
/** Определяет, активен ли передатчик модуля
|
/** Определяет, активен ли передатчик модуля
|
||||||
|
|
||||||
@@ -54,6 +64,11 @@ bool UART_IsTransmissionFinished(UART_TypeDef* uart);
|
|||||||
*/
|
*/
|
||||||
void UART_WaitTransmission(UART_TypeDef* uart);
|
void UART_WaitTransmission(UART_TypeDef* uart);
|
||||||
|
|
||||||
|
/** Ожидает, пока модуль полностью завершит передачу
|
||||||
|
|
||||||
|
\param uart указатель для доступа к UART
|
||||||
|
*/
|
||||||
|
void UART_WaitDataTranferCompleteFlag(UART_TypeDef* uart);
|
||||||
|
|
||||||
/** Ожидает, пока модуль примет данные
|
/** Ожидает, пока модуль примет данные
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#include "mik32_hal_irq.h"
|
#include "mik32_hal_irq.h"
|
||||||
|
|
||||||
// isr functions
|
// isr functions
|
||||||
extern void serial_handler_wrapper(void);
|
extern void serial_handler_wrapper(uint8_t uartNumInt);
|
||||||
extern void gpio_interrupts_handler(void);
|
extern void gpio_interrupts_handler(void);
|
||||||
extern void tone_interrupt_handler(void);
|
extern void tone_interrupt_handler(void);
|
||||||
void __attribute__((weak)) wire_handler_wrapper(void)
|
void __attribute__((weak)) wire_handler_wrapper(void)
|
||||||
@@ -16,9 +16,13 @@ void trap_handler(void)
|
|||||||
if (EPIC_CHECK_TIMER16_1())
|
if (EPIC_CHECK_TIMER16_1())
|
||||||
tone_interrupt_handler();
|
tone_interrupt_handler();
|
||||||
|
|
||||||
// uart interrupt
|
// uart0 interrupt
|
||||||
if (EPIC_CHECK_UART_0())
|
if (EPIC_CHECK_UART_0())
|
||||||
serial_handler_wrapper();
|
serial_handler_wrapper(0);
|
||||||
|
|
||||||
|
// uart1 interrupt
|
||||||
|
if (EPIC_CHECK_UART_1())
|
||||||
|
serial_handler_wrapper(1);
|
||||||
|
|
||||||
// gpio interrupt
|
// gpio interrupt
|
||||||
if (EPIC_CHECK_GPIO_IRQ())
|
if (EPIC_CHECK_GPIO_IRQ())
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include "wiring_private.h"
|
||||||
|
|
||||||
#define HIGH 0x1
|
#define HIGH 0x1
|
||||||
#define LOW 0x0
|
#define LOW 0x0
|
||||||
@@ -80,7 +81,8 @@ enum BitOrder
|
|||||||
#define sq(x) ((x)*(x))
|
#define sq(x) ((x)*(x))
|
||||||
|
|
||||||
// Bits and Bytes
|
// Bits and Bytes
|
||||||
#define bit(b) (1UL << (b))
|
#define _BV(bit) (1 << (bit)) // from avr-gcc (some arduino libs uses it)
|
||||||
|
#define bit(b) (1UL << (b))
|
||||||
#define lowByte(w) ((uint8_t) ((w) & 0xff))
|
#define lowByte(w) ((uint8_t) ((w) & 0xff))
|
||||||
#define highByte(w) ((uint8_t) ((w) >> 8))
|
#define highByte(w) ((uint8_t) ((w) >> 8))
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
extern "C"{
|
extern "C"{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// available interrupts number
|
||||||
|
#define EXTERNAL_NUM_INTERRUPTS 7
|
||||||
|
|
||||||
typedef void (*voidFuncPtr)(void);
|
typedef void (*voidFuncPtr)(void);
|
||||||
|
|
||||||
|
|||||||
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 87 KiB |
|
After Width: | Height: | Size: 61 KiB |
@@ -1,4 +1,5 @@
|
|||||||
#include "SPI.h"
|
#include "SPI.h"
|
||||||
|
#include "mik32_hal_spi.h"
|
||||||
|
|
||||||
SPI_HandleTypeDef hspi;
|
SPI_HandleTypeDef hspi;
|
||||||
bool newConfig = false;
|
bool newConfig = false;
|
||||||
@@ -204,7 +205,7 @@ uint8_t SPIClass::transfer(uint8_t data)
|
|||||||
data = reverse_bits(data);
|
data = reverse_bits(data);
|
||||||
|
|
||||||
// send and recieve data
|
// send and recieve data
|
||||||
HAL_StatusTypeDef SPI_Status = exchange(&hspi, &data, &rxByte, 1, SPI_TIMEOUT_DEFAULT*2);
|
HAL_StatusTypeDef SPI_Status = HAL_SPI_Exchange(&hspi, &data, &rxByte, 1, SPI_TIMEOUT_DEFAULT*2);
|
||||||
if (SPI_Status != HAL_OK)
|
if (SPI_Status != HAL_OK)
|
||||||
HAL_SPI_ClearError(&hspi);
|
HAL_SPI_ClearError(&hspi);
|
||||||
|
|
||||||
@@ -236,7 +237,7 @@ uint16_t SPIClass::transfer16(uint16_t data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// send and recieve data
|
// send and recieve data
|
||||||
HAL_StatusTypeDef SPI_Status = exchange(&hspi, buf, buf, 2, SPI_TIMEOUT_DEFAULT*2);
|
HAL_StatusTypeDef SPI_Status = HAL_SPI_Exchange(&hspi, buf, buf, 2, SPI_TIMEOUT_DEFAULT*2);
|
||||||
if (SPI_Status != HAL_OK)
|
if (SPI_Status != HAL_OK)
|
||||||
HAL_SPI_ClearError(&hspi);
|
HAL_SPI_ClearError(&hspi);
|
||||||
|
|
||||||
@@ -267,7 +268,7 @@ void SPIClass::transfer(void *buf, size_t count)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// send and recieve data using the same buffer
|
// send and recieve data using the same buffer
|
||||||
HAL_StatusTypeDef SPI_Status = exchange(&hspi, (uint8_t*)buf, (uint8_t*)buf, count, SPI_TIMEOUT_DEFAULT*2);
|
HAL_StatusTypeDef SPI_Status = HAL_SPI_Exchange(&hspi, (uint8_t*)buf, (uint8_t*)buf, count, SPI_TIMEOUT_DEFAULT*2);
|
||||||
if (SPI_Status != HAL_OK)
|
if (SPI_Status != HAL_OK)
|
||||||
HAL_SPI_ClearError(&hspi);
|
HAL_SPI_ClearError(&hspi);
|
||||||
|
|
||||||
@@ -329,66 +330,6 @@ void SPIClass::setClockDivider(uint8_t clockDiv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HAL_StatusTypeDef SPIClass::exchange(SPI_HandleTypeDef *hspi, uint8_t TransmitBytes[], uint8_t ReceiveBytes[], uint32_t DataSize, uint32_t Timeout)
|
|
||||||
{
|
|
||||||
uint32_t txallowed = 1;
|
|
||||||
HAL_StatusTypeDef error_code = HAL_OK;
|
|
||||||
uint32_t timeout_counter = 0;
|
|
||||||
|
|
||||||
hspi->ErrorCode = HAL_SPI_ERROR_NONE;
|
|
||||||
hspi->pRxBuffPtr = (uint8_t *)ReceiveBytes;
|
|
||||||
hspi->RxCount = DataSize;
|
|
||||||
hspi->pTxBuffPtr = (uint8_t *)TransmitBytes;
|
|
||||||
hspi->TxCount = DataSize;
|
|
||||||
|
|
||||||
hspi->Instance->TX_THR = 1;
|
|
||||||
|
|
||||||
/* Включить SPI если выключено */
|
|
||||||
if (!(hspi->Instance->ENABLE & SPI_ENABLE_M))
|
|
||||||
{
|
|
||||||
__HAL_SPI_ENABLE(hspi);
|
|
||||||
}
|
|
||||||
|
|
||||||
while ((hspi->TxCount > 0) || (hspi->RxCount > 0))
|
|
||||||
{
|
|
||||||
/* Проверка флага TX_FIFO_NOT_FULL */
|
|
||||||
if ((hspi->Instance->INT_STATUS & SPI_INT_STATUS_TX_FIFO_NOT_FULL_M) && (hspi->TxCount > 0) && (txallowed == 1))
|
|
||||||
{
|
|
||||||
hspi->Instance->TXDATA = *(hspi->pTxBuffPtr);
|
|
||||||
hspi->pTxBuffPtr++;
|
|
||||||
hspi->TxCount--;
|
|
||||||
/* Следующие данные - прием (Rx). Tx не разрешен */
|
|
||||||
txallowed = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Ожидание когда установится флаг RX_FIFO_NOT_EMPTY */
|
|
||||||
if ((hspi->Instance->INT_STATUS & SPI_INT_STATUS_RX_FIFO_NOT_EMPTY_M) && (hspi->RxCount > 0))
|
|
||||||
{
|
|
||||||
*(hspi->pRxBuffPtr) = hspi->Instance->RXDATA;
|
|
||||||
hspi->pRxBuffPtr++;
|
|
||||||
hspi->RxCount--;
|
|
||||||
/* Следующие данные - передача (Tx). Tx разрешается */
|
|
||||||
txallowed = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (((timeout_counter++) >= Timeout) || (Timeout == 0U))
|
|
||||||
{
|
|
||||||
error_code = HAL_TIMEOUT;
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return error_code;
|
|
||||||
|
|
||||||
error:
|
|
||||||
__HAL_SPI_DISABLE(hspi);
|
|
||||||
hspi->Instance->ENABLE |= SPI_ENABLE_CLEAR_TX_FIFO_M | SPI_ENABLE_CLEAR_RX_FIFO_M; /* Очистка буферов RX и TX */
|
|
||||||
volatile uint32_t unused = hspi->Instance->INT_STATUS; /* Очистка флагов ошибок чтением */
|
|
||||||
(void) unused;
|
|
||||||
|
|
||||||
|
|
||||||
return error_code;
|
|
||||||
}
|
|
||||||
|
|
||||||
static uint8_t reverse_bits(uint8_t byte)
|
static uint8_t reverse_bits(uint8_t byte)
|
||||||
{
|
{
|
||||||
byte = (byte & 0xF0) >> 4 | (byte & 0x0F) << 4;
|
byte = (byte & 0xF0) >> 4 | (byte & 0x0F) << 4;
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
#define _SPI_H_INCLUDED
|
#define _SPI_H_INCLUDED
|
||||||
|
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include "mik32_hal_spi.h"
|
|
||||||
|
|
||||||
// SPI_HAS_TRANSACTION means SPI has beginTransaction(), endTransaction(),
|
// SPI_HAS_TRANSACTION means SPI has beginTransaction(), endTransaction(),
|
||||||
// usingInterrupt(), and SPISetting(clock, bitOrder, dataMode)
|
// usingInterrupt(), and SPISetting(clock, bitOrder, dataMode)
|
||||||
@@ -121,9 +120,6 @@ public:
|
|||||||
// This function is deprecated. New applications should use
|
// This function is deprecated. New applications should use
|
||||||
// beginTransaction() to configure SPI settings.
|
// beginTransaction() to configure SPI settings.
|
||||||
void setClockDivider(uint8_t clockDiv);
|
void setClockDivider(uint8_t clockDiv);
|
||||||
|
|
||||||
// A temporary function until this error is fixed in the HAL library
|
|
||||||
HAL_StatusTypeDef exchange(SPI_HandleTypeDef *hspi, uint8_t TransmitBytes[], uint8_t ReceiveBytes[], uint32_t DataSize, uint32_t Timeout);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern SPIClass SPI;
|
extern SPIClass SPI;
|
||||||
|
|||||||
@@ -23,13 +23,14 @@
|
|||||||
#ifndef Pins_Arduino_h
|
#ifndef Pins_Arduino_h
|
||||||
#define Pins_Arduino_h
|
#define Pins_Arduino_h
|
||||||
|
|
||||||
|
#include "wiring_constants.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "mik32_hal_gpio.h"
|
#include "mik32_hal_gpio.h"
|
||||||
#include "mik32_hal_timer32.h"
|
#include "mik32_hal_timer32.h"
|
||||||
#include "wiring_constants.h"
|
|
||||||
|
|
||||||
extern bool spiNssPinIsBlocked;
|
extern bool spiNssPinIsBlocked;
|
||||||
|
|
||||||
@@ -63,9 +64,13 @@ HAL_PinsTypeDef digitalPinToBitMask(uint32_t digPinNumber);
|
|||||||
// total number of pins available for initialization
|
// total number of pins available for initialization
|
||||||
uint16_t pinCommonQty(void);
|
uint16_t pinCommonQty(void);
|
||||||
// the function returns a reference to the OUTPUT address of the GPIO register
|
// the function returns a reference to the OUTPUT address of the GPIO register
|
||||||
uint32_t* portOutputRegister(GPIO_TypeDef* GPIO_x);
|
volatile uint32_t* portOutputRegister(GPIO_TypeDef* GPIO_x);
|
||||||
// the function returns a reference to the STATE address of the GPIO register
|
// the function returns a reference to the STATE address of the GPIO register
|
||||||
uint32_t* portInputRegister(GPIO_TypeDef* GPIO_x);
|
volatile uint32_t* portInputRegister(GPIO_TypeDef* GPIO_x);
|
||||||
|
|
||||||
|
// UART
|
||||||
|
// available uarts quantity
|
||||||
|
#define SERIAL_PORT_QTY 2
|
||||||
|
|
||||||
// ADC
|
// ADC
|
||||||
// determines the ADC channel number by the board pin number
|
// determines the ADC channel number by the board pin number
|
||||||
@@ -110,7 +115,6 @@ static const uint8_t SCL = PIN_WIRE_SCL;
|
|||||||
#define WIRE_FREQ_1000K 1000000
|
#define WIRE_FREQ_1000K 1000000
|
||||||
|
|
||||||
// interrupts
|
// interrupts
|
||||||
#define EXTERNAL_NUM_INTERRUPTS 7
|
|
||||||
// determines the board pin number by interrupt number
|
// determines the board pin number by interrupt number
|
||||||
uint32_t interruptToDigitalPin(uint8_t interruptNum);
|
uint32_t interruptToDigitalPin(uint8_t interruptNum);
|
||||||
// determines interrupt number by the board pin number
|
// determines interrupt number by the board pin number
|
||||||
|
|||||||
@@ -95,24 +95,24 @@ uint16_t pinCommonQty(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// the function returns a reference to the OUTPUT address of the GPIO register
|
// the function returns a reference to the OUTPUT address of the GPIO register
|
||||||
uint32_t* portOutputRegister(GPIO_TypeDef* GPIO_x)
|
volatile uint32_t* portOutputRegister(GPIO_TypeDef* GPIO_x)
|
||||||
{
|
{
|
||||||
return &GPIO_x->OUTPUT_;
|
return &GPIO_x->OUTPUT_;
|
||||||
}
|
}
|
||||||
|
|
||||||
// the function returns a reference to the STATE address of the GPIO register
|
// the function returns a reference to the STATE address of the GPIO register
|
||||||
uint32_t* portInputRegister(GPIO_TypeDef* GPIO_x)
|
volatile uint32_t* portInputRegister(GPIO_TypeDef* GPIO_x)
|
||||||
{
|
{
|
||||||
return &GPIO_x->STATE;
|
return &GPIO_x->STATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------- АЦП ---------------------- //
|
// ---------------------- ADC ---------------------- //
|
||||||
// determines the ADC channel number by the board pin number
|
// determines the ADC channel number by the board pin number
|
||||||
uint32_t analogInputToChannelNumber(uint32_t PinNumber)
|
uint32_t analogInputToChannelNumber(uint32_t PinNumber)
|
||||||
{
|
{
|
||||||
uint32_t adcChannel = 0;
|
uint32_t adcChannel = 0;
|
||||||
|
|
||||||
// if passed a value from 0 - 5, instead of A0 - A5
|
// if get a value 0...5 instead of A0...A5
|
||||||
if (PinNumber < 4) PinNumber += 14;
|
if (PinNumber < 4) PinNumber += 14;
|
||||||
else if (PinNumber < 6) PinNumber += 16;
|
else if (PinNumber < 6) PinNumber += 16;
|
||||||
|
|
||||||
|
|||||||