Добавлена опция отключения загрузки с использованием драйвера

This commit is contained in:
sh-sergey 2024-11-05 16:32:35 +03:00
parent 3f4ac57ae9
commit 60e353f212
4 changed files with 55 additions and 26 deletions

View File

@ -20,9 +20,13 @@
### Исправлено ### Исправлено
## [0.3.0-alpha1] - 2024-11-05 ### Удалено
## [0.3.0] - 2024-11-05
Предварительный релиз поддержки платы START-MIK32-V1 Релиз поддержки платы START-MIK32-V1.
Добавлена прошивка с использованием драйвера, можно отключить с использованием
аргумента
### Добавлено ### Добавлено
- Загрузка прошивки с использованием драйвера в ОЗУ - Загрузка прошивки с использованием драйвера в ОЗУ
@ -34,6 +38,9 @@
### Исправлено ### Исправлено
- Результат прошивки не выводился в коде возврата - Результат прошивки не выводился в коде возврата
### Удалено
- Краткий вариант аргумента --boot-mode
## [0.2.1] - 2024-09-10 ## [0.2.1] - 2024-09-10
В версии 0.2.1 исправлены пути конфигурационных файлов по умолчанию, файлов лога OpenOCD и добавлен скрипт сборки В версии 0.2.1 исправлены пути конфигурационных файлов по умолчанию, файлов лога OpenOCD и добавлен скрипт сборки

View File

@ -57,7 +57,7 @@ optional arguments:
Путь к файлу конфигурации целевого контроллера относительно папки scripts. По умолчанию: Путь к файлу конфигурации целевого контроллера относительно папки scripts. По умолчанию:
target\mik32.cfg target\mik32.cfg
--open-console Открывать OpenOCD в отдельной консоли --open-console Открывать OpenOCD в отдельной консоли
-b {undefined,eeprom,ram,spifi}, --boot-mode {undefined,eeprom,ram,spifi} --boot-mode {undefined,eeprom,ram,spifi}
Выбор типа памяти, который отображается на загрузочную область. Если тип не выбран, данные, Выбор типа памяти, который отображается на загрузочную область. Если тип не выбран, данные,
находящиеся в загрузочной области в hex файле отбрасываются. По умолчанию: undefined находящиеся в загрузочной области в hex файле отбрасываются. По умолчанию: undefined
--log-path LOG_PATH Путь к файлу журнала. По умолчанию: nul --log-path LOG_PATH Путь к файлу журнала. По умолчанию: nul
@ -65,6 +65,7 @@ optional arguments:
Команды OpenOCD, запускаемые после прошивки. По умолчанию: reset run Команды OpenOCD, запускаемые после прошивки. По умолчанию: reset run
-t {MIK32V0,MIK32V2}, --mcu-type {MIK32V0,MIK32V2} -t {MIK32V0,MIK32V2}, --mcu-type {MIK32V0,MIK32V2}
Выбор микроконтроллера. По умолчанию: MIK32V2 Выбор микроконтроллера. По умолчанию: MIK32V2
--no-driver Отключает прошивку с использованием драйвера в ОЗУ
``` ```
## Принцип работы ## Принцип работы

View File

@ -1 +1 @@
applicaton_version = 'v0.3.0-alpha1' applicaton_version = 'v0.3.0'

View File

@ -211,7 +211,8 @@ def upload_file(
boot_mode=BootMode.UNDEFINED, boot_mode=BootMode.UNDEFINED,
log_path=default_log_path, log_path=default_log_path,
post_action=default_post_action, post_action=default_post_action,
mik_version=MIK32_Version.MIK32V2 mik_version=MIK32_Version.MIK32V2,
use_driver=True,
) -> int: ) -> int:
""" """
Write ihex or binary file into MIK32 EEPROM or external flash memory Write ihex or binary file into MIK32 EEPROM or external flash memory
@ -261,16 +262,22 @@ def upload_file(
if (pages.pages_eeprom.__len__() > 0): if (pages.pages_eeprom.__len__() > 0):
start_time = time.perf_counter() start_time = time.perf_counter()
result |= eeprom.write_memory( if use_driver:
pages.pages_eeprom, result |= eeprom.write_memory(
openocd, pages.pages_eeprom,
os.path.join( openocd,
default_drivers_path, os.path.join(
'jtag-eeprom', default_drivers_path,
default_drivers_build_path, 'jtag-eeprom',
'firmware.hex' default_drivers_build_path,
'firmware.hex'
)
)
else:
result |= eeprom.write_pages(
pages.pages_eeprom,
openocd
) )
)
write_time = time.perf_counter() - start_time write_time = time.perf_counter() - start_time
write_size = pages.pages_eeprom.__len__( write_size = pages.pages_eeprom.__len__(
@ -284,17 +291,23 @@ def upload_file(
gpio_init(openocd, mik_version) gpio_init(openocd, mik_version)
start_time = time.perf_counter() start_time = time.perf_counter()
result |= spifi.write_pages_by_sectors( if use_driver:
pages.pages_spifi, result |= spifi.write_pages_by_sectors(
openocd, pages.pages_spifi,
os.path.join( openocd,
default_drivers_path, os.path.join(
'jtag-spifi', default_drivers_path,
default_drivers_build_path, 'jtag-spifi',
'firmware.hex' default_drivers_build_path,
), 'firmware.hex'
use_quad_spi=use_quad_spi, )
) )
else:
result |= spifi.write_pages(
pages.pages_spifi,
openocd,
use_quad_spi=use_quad_spi
)
write_time = time.perf_counter() - start_time write_time = time.perf_counter() - start_time
write_size = pages.pages_spifi.__len__( write_size = pages.pages_spifi.__len__(
@ -432,6 +445,13 @@ def createParser():
help="Выбор микроконтроллера. " help="Выбор микроконтроллера. "
f"По умолчанию: {MIK32_Version.MIK32V2}" f"По умолчанию: {MIK32_Version.MIK32V2}"
) )
parser.add_argument(
'--no-driver',
dest='use_driver',
action='store_false',
default=True,
help='Отключает прошивку с использованием драйвера в ОЗУ'
)
return parser return parser
@ -460,7 +480,8 @@ if __name__ == '__main__':
boot_mode=namespace.boot_mode, boot_mode=namespace.boot_mode,
log_path=namespace.log_path, log_path=namespace.log_path,
post_action=namespace.post_action, post_action=namespace.post_action,
mik_version=namespace.mcu_type mik_version=namespace.mcu_type,
use_driver=namespace.use_driver,
) )
) )
else: else: