1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/walkline-micropython-resource-manager

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

MicroPython Управление ресурсами

Описание проекта

Упаковка неподписанных файлов в прошивку и их вызов (только для чипов ESP серии Espressif).

О файловом упаковщике

MicroPython автоматически упаковывает добавленные пользователем файлы с расширением .py при компиляции прошивки, но для других типов файлов такой возможности нет.

В этом проекте используется littlefs для Python для записи файлов в раздел littlefs v2 и создания файла раздела, который затем записывается в существующую прошивку, чтобы упаковать файлы.

Файлы, упакованные таким образом, используются точно так же, как файлы, загруженные пользователем самостоятельно.

Таблица разделов

Примечание: Ниже приведена таблица разделов на примере файла partitions-4MiB.csv для серии ESP32.

Сначала рассмотрим содержимое файла таблицы разделов:

Name Type SubType Offset Size Flags
nvs data nvs 0x9000 0x6000
phy_init data phy 0xf000 0x1000
factory app factory 0x10000 0x1F0000
vfs data fat 0x200000 0x200000

Где:

  • factory: раздел для приложения MicroPython
  • vfs: раздел для пользовательских файлов, включая код, загруженный пользователем

Эти два раздела уже заполнены (см. коммит e1a84a), поэтому для упаковки файлов можно выбрать один из двух методов.#### 1. Без изменения таблицы разделов (простой)

Сначала укажем недостаток: размер прошивки увеличится. Конечный размер прошивки будет равен:

vfs_offset = 0x200000
vfs_size   = 0x200000
total_size = vfs_offset + vfs_size
#          = 4194304 байта
#          = 4 МБ

то есть размеру, указанному в имени файла таблицы разделов.

Примечание: Поскольку начальный адрес записи прошивки для чипов ESP32 и подобных составляет 0x1000, конечный размер прошивки будет равен:

total_size = vfs_offset + vfs_size - 0x1000

Для выполнения этого метода выполните следующие шаги:

  1. Измените содержимое файла config.py, заполнив значения vfs_offset и vfs_size соответствующими значениями, например:

    class Partition(object):
        # Укажите значения в соответствии с вашими требованиями
        IS_ESP32_ESP32S2 = False        OFFSET = 0x200_000 # смещение адреса
        SIZE   = 0x200_000 # размер раздела
  2. См. раздел Как упаковать файлы.

2. Изменение таблицы разделов (сложное)

Под сложностью подразумевается не только большое количество шагов, но и необходимость выполнения вычислений по определенным правилам, а также создание собственной среды разработки MicroPython для компиляции прошивки.

Есть программа для изменения таблицы разделов прошивки mp-image-tool-esp32, если она поддерживает изменения, то не потребуется компилировать прошивку самостоятельно.Основные шаги следующие:

  • Добавить ресурсный раздел перед (или после) раздела vfs
  • Уменьшить размер раздела vfs
  • Записать упакованные файлы в ресурсный раздел

Перед началом конкретных действий необходимо рассчитать размеры, занимаемые ресурсным разделом. В качестве примера рассмотрим файлы в папке /example/files:

block_size  = 4096 # размер блока файловой системы
total_size  = 195427 # размер всех файлов в папке
block_count = total_size // block_size + 10 # минимум 10 блоков
image_size  = block_count * block_size
#           = 233472 = 0x39000

Где:

  • block_size - размер блока, фиксированное значение 4096, можно получить с помощью os.statvfs, размер раздела должен быть кратен размеру блока

  • total_size - общий размер файлов в папке

  • block_count - общее количество блоков в разделе, поскольку в разделе хранятся также атрибуты файлов, то общее количество блоков должно быть увеличено на 10

  • image_size - фактический размер ресурсного раздела, этот шестнадцатеричный номер 0x39000 будет использован позже

Теперь можно приступать к изменению таблицы разделов. Ниже приведены только те части, которые требуют изменения.

  • Вот исходная таблица разделов:

    Имя Тип Подтип Смещение Размер Флаги
    vfs data fat 0x200000 0x200000
  • Вот измененная таблица разделов, добавлен ресурсный раздел перед разделом vfs: | Имя | Тип | Подтип | Смещение | Размер | Флаги | | :-: | :-: | :-: | :-: | :-: | :-: | | resource | data | fat | 0x200000 | 0x39000 | | | vfs | data | fat | 0x239000 | 0 метод: 0x1c7000 | |* resource_offset:сохраните значение поля vfs_offset из исходной таблицы разделов

  • resource_size:укажите значение image_size, полученное выше

  • vfs_offset:укажите значение resource_offset + resource_size

  • vfs_size:укажите значение vfs_offset + vfs_offset - vfs_offset из исходной таблицы разделовПосле завершения редактирования таблицы разделов соберите прошивку в соответствии с вашими требованиями и получите прошивочный файл. Затем продолжите дальнейшие действия, ссылаясь на раздел не изменение таблицы разделов (простое), особое внимание: при редактировании файла config.py, укажите значения resource_offset и resource_size на соответствующие позиции.

Как упаковать файлы

Чтобы упаковать все файлы из папки /example/files/ в прошивочный файл, используйте следующую команду:

# Просмотр справки по использованию
$ python3 combine_files.py
# Использование:
#    python3 combine_files.py <firmware_file> <user_file_folder>

# При использовании метода "не изменение таблицы разделов" необходимо редактировать файл `config.py`
# esp32c3_firmware_origin.bin можно рассматривать как прошивочный файл, загруженный с официального сайта
$ python3 combine_files.py ./example/esp32c3_firmware_origin.bin ./example/files/
```# или

# При использовании метода "изменение таблицы разделов" необходимо редактировать файл `config.py`
# esp32c3_firmware_fixed.bin — это прошивочный файл, который был изменен в соответствии с таблицей разделов и собранный самостоятельно
$ python3 combine_files.py ./example/esp32c3_firmware_fixed.bin ./example/files/

### Как читать файлы

Чтобы прочитать ресурсные файлы, необходимо смонтировать раздел ресурсов в системе:

> Примечание: прошивочный файл, собранный с использованием метода "не изменение таблицы разделов (простое)", не требует монтирования раздела ресурсов.

```python
import esp32, os

res = esp32.Partition.find(esp32.Partition.TYPE_DATA, label='resource')

if res:
    os.mount(res[0], '/res')

Просмотр демонстрационного содержимого

Для запуска файла main.py в режиме repl используйте следующую команду:

$ ab --repl
# Выберите правильный порт, используя быструю клавишу ctrl + r для запуска файла main.py

Инструкции по использованию инструмента ab см. в документации проекта AMPY Batch Tool.

Во время демонстрации будет последовательно отображаться следующее содержимое в режиме repl:

  • Изображение mua.pbm
  • Текстовый файл chushibiao.txt
  • Бинарный файл шрифтов chushibiao.bin
  • Китайские символы и данные
  • Предварительный просмотр китайских символов

Полное содержимое вывода представлено ниже:```

Запуск локального файла [1] main.py [3] config.py [4] combine_files.py Выберите файл: 1

.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  .  .  .  @@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  .  .  @@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  .  @@@@@@.  .  .  .  @@.  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  @@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  @@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  @@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  @@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  @@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  @@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  @@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  @@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  @@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  @@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  @@@@@.  .  .  .  .  .  ..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  .  .  @@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  .  @@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  .  @@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  .  @@@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  .  .  @@@@@@@@.  .  .  .  .  .  .  .  .  .  .  @@@@@@@@.  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  .  .  @@@@@@@@@.  .  .  .  .  .  .  .  .  @@@@@@@@@.  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@.  .  .  .  .  .  .  .  .  .  .  .  .
  .  .  @@@@@@@@@@@.  .  .  .  .  @@@@@@@@@@.  .  .  .  .  .  .  .  .  .  @@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  .
  .  .  .  @@@@@@@@@@@.  .  .  @@@@@@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@.  .  .  .  .  .  .  .  .  .  .
  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@.  .  .  .  .  .  .  @@@@@@@@@@@.  .  .  .  .  .  .  .  .  .
  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@.  .  .  @@@@@@@@@@@.  .  .  .  .  .  .  .  .  .
  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@.  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@.  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @.  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@.  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  @@.
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@.  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  @@.
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@.  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@.  .  .  .  @@@@@@@@@@@.  .  .  .  .  @@.
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@.  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  @@@@@@@@@@@@@@@@@.
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@.  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .  @@@@@@@@@@@@@@@@@.
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . .  .  .  .  .  .  .  .  .  .  @@@.  .  .  .  .  .  .  @@@@@@.  @@.  .  @@@@@@@@@@@@@.  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@.
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@.  .  .  .  .  .  .  @@@@@@.  .  .  .  .  .  .  @@.  .  @@@@@@@.  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@.  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@.  .  .  .  .  .  .  @@@@@@.  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  .  .  .  ..  .  @@@@@@@@@@@@@@@@.  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@.  .  .  .  .  @@@@@@@.  .  .  .  .  .  .  .  .  .  @@@@@@@@.  .  .  .  .  .  .  @@@@@@@@@@@@@@@@.  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@.  .  .  .  .  .  .  .  .  @@@@@@@@.  .  .  .  .  .  @@@@@@@@@@@@@@@@.  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@.  @@@.  @@.  @@@@@@@.  .  .  .  .  .  .  .  .  @@@@@@@@@.  .  .  .  .  .  @@@@@@@@@@@@@@@@.  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@.  @@.  .  @@.  @@@@@@@.  .  .  .  .  .  .  .  .  @@@@@@@@@@@@.  @@@@@@@@@@@@@@@@@@.  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@.  @@.  @@.  .  @@@@@@@@.  .  .  .  .  .  .  @@@@@@@@.  @@.  @@@@@@@@@@@@@@@@@@@@.  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@.  @@.  @@@@@@@@@@.  .  .  .  .  @@@@@@@.  .  @@.  @@.  .  @@@@@@@@@@@@@@@.  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@.  @@@@@@@@@@@@.  .  @@@@@@@@@.  @@.  .  @@.  .  @@@@@@@@@@@@@@@.  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  @@.  @@@.  .  @@@@@@@@@@@@@@@.  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  @@@@@@@@@@@@@@@@@@@@.  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  ..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  @@@.  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@@@@@@@@@@@@@@@@@@@@@@@@.  .  @@@.  .  .  .  .  .  @@.  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @.  .  .  .  .  .  .  .  .  @@@@@@@@@@@.  @@@.  .  .  .  .  .  @@.  .  .  .  .  .  .  .  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@.  .  .  .  .  .  .  @@.  .  .  .  .  .  .  .  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  @@.  .  .  .  .  .  .  @@.  .  .  .  .  .  .  .  .  .  .  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . Вышестоящее заявление
 Во-первых, предыдущий император не успел завершить свое дело, и внезапно скончался. Сегодня мир разделен на три части, и царство Юэ находится в упадке и истощении.Это действительно критический момент для сохранения государства. Однако придворные и воины остаются преданными и неутомимыми в своих служебных обязанностях, стремясь отплатить за особое внимание, которое предыдущий император проявлял к ним. Они должны быть открытыми для советов, чтобы прославить наследие предыдущего императора и расширить дух преданности. Не следует заниматься самокритикой и использовать метафоры неправильно, что может закрыть путь для честных советов.Внутренний двор и внешний двор являются единым целым. Наказания и поощрения не должны отличаться. Если кто-то нарушает закон или проявляет преданность, его следует судить и наказать или поощрить соответственно. Это должно быть сделано для того, чтобы показать вашему императору справедливость и объективность, и не следует проявлять предпочтение, что может привести к различным законам для внутреннего и внешнего дворов.

Служители двора, такие как Го Юань-цзы, Фэй И, Дун Юань и другие, являются добрыми и преданными людьми. Они были отобраны предыдущим императором и переданы вашему императору. Я считаю, что все вопросы, большие и малые, должны быть обсуждены с ними, прежде чем будут приняты решения. Это должно обеспечить дополнительную помощь и устранение недостатков.

Генерал Сяо Пэй обладает добрым характером и глубоким пониманием военных дел. Он был испытан в прошлом, и предыдущий император назвал его способным. Я считаю, что все вопросы, связанные с военной службой, должны быть обсуждены с ним, что должно обеспечить гармонию в войсках и правильное распределение обязанностей.Близость к добрым советникам и удаление от недобросовестных людей привели к процветанию предыдущего ханьского государства; близость к недобросовестным людям и удаление от добрых советников привели к упадку последующего ханьского государства. Когда предыдущий император обсуждал это с нами, он всегда сожалел о Хуан-ди и Лин-ди.Служители двора, такие как Сяньшу, Шаошу, Чангуань и Чаньджун, являются преданными и верными людьми. Я надеюсь, что Ваше императорство будет близко к ним и будет доверять им, что должно привести к процветанию Ханьского государства.

Я был простым крестьянином, который трудился в Наньяне. Я хотел только выжить в это беспокойное время, не стремясь к славе или богатству. Предыдущий император не считал меня недостойным и трижды приглашал меня в свою шатёр, чтобы обсудить текущие вопросы. Это вызвало во мне благодарность, и я согласился служить ему. После этого я получил назначение в момент поражения и получил миссию в момент опасности. С тех пор прошло двадцать один год.Предыдущий император знал о моей осторожности, поэтому перед своей смертью он поручил мне важное дело. С тех пор как я получил это назначение, я постоянно беспокоюсь и думаю, боясь, что не смогу выполнить его должным образом, что может нанести ущерб репутации предыдущего императора. Поэтому я переправился через реку Лу, в глубину джунглей. Сегодня южные земли уже под контролем, и вооружение полностью подготовлено. Я должен поощрить три армии, чтобы они завоевали Центральную равнину, и я должен использовать все свои способности, чтобы устранить злых людей и восстановить Ханьское государство, вернув его к его прежнему месту. Это то, что я должен сделать, чтобы отплатить предыдущему императору и быть преданным Вашему императорству.Что касается взвешивания и учета всех аспектов, а также полного выражения честных советов, это обязанность Го Юань-цзы, Фэй И, Дун Юань и других.

Я надеюсь, что Ваше императорство поручит мне завершить это дело. Если я не смогу это сделать, то я должен быть наказан, чтобы предстать перед духом предыдущего императора. Если нет советов о том, как улучшить мораль, то я должен быть наказан за свою медлительность, чтобы показать его вину. Ваше императорство также должно обдумать это, искать хорошие пути, и принимать советы, чтобы глубоко следовать за предыдущим императором. Я не могу выразить свою благодарность.Сейчас я должен уехать, и, стоя перед этим заявлением, я плачу, не зная, что сказать. Нажмите Enter для предварительного просмотра fontlib. . .
HZK Info: /res/chushibiao.bin
     размер файла : 14350
   высота шрифта : 16
     размер данных : 32
     режим сканирования : 1 (Vertical)
    порядок байтов : 0 (LSB)
        формат : 0 (MONO_VLSB)
    символы : 427Нажмите Enter для предварительного просмотра данных символов. . .
半: b'\x00DHP@\xfe@PHD\x00\x00\x00\x00\x00\x00\x02\x02\x02\x02\x02\x1f\x02\x02\x02\x02\x02\x00\x00\x00\x00\x00'
中: b'\x00\xf8\x88\x88\x88\xfe\x88\x88\x88\x88\xf8\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x0f\x00\x00\x0f\x00\x10\x1f\x00\x00\x00\x00\x00'
而: b'\x02\xf2\x12\x12\xf2\x1a\x16\xf2\x12\x12\xf2\x02\x00\x00\x00\x00\x00\x1f\x00\x00\x0f\x00\x00\x0f\x00\x10\x1f\x00\x00\x00\x00\x00'
表: b'@DTT\xd4~\xd4TTTD@\x00\x00\x00\x00\x04\x04\x02\x1f\x10\x08\x01\x06\x04\x19\x08\x00\x00\x00\x00\x00'
业: b' @\x80\x00\xfe\x00\x00\xfe\x00\xc00\x00\x00\x00\x00\x00\x10\x10\x11\x10\x1f\x10\x10\x1f\x11\x10\x10\x10\x00\x00\x00\x00'
未: b'@HHHH\xfeHHHH@\x00\x00\x00\x00\x00\x08\x08\x04\x02\x01\x1f\x01\x02\x04\x08\x08\x00\x00\x00\x00\x00'
道: b'@B\xcc\x00\x04\xf4V\\TV\xf4\x04\x00\x00\x00\x00\x10\x08\x07\x08\x10\x17\x15\x15\x15\x15\x17\x10\x00\x00\x00\x00'
出: b'\x00\x00<  \xfe   <\x00\x00\x00\x00\x00\x00\x00\x1f\x08\x08\x08\x0f\x08\x08\x08\x08\x1f\x00\x00\x00\x00\x00'
天: b' """\xa2~\xa2"""" \x00\x00\x00\x00\x10\x10\x08\x06\x01\x00\x01\x02\x04\x08\x10\x10\x00\x00\x00\x00'
帝: b'\xe4$\xa4\xac\xb4\xe6\xb4\xac\xa4$\xe4\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x1f\x00\x08\x0f\x00\x00\x00\x00\x00\x00\x00'
 : b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
师: b'\x00\xf8\x00\xfe\x00\xf4\x14\x14\xfc\x14\x14\xf4\x00\x00\x00\x00\x10\x13\x08\x07\x00\x07\x00\x00\x1f\x00\x04\x07\x00\x00\x00\x00'
下: b'\x02\x02\x02\x02\x02\xfe\x12"B\xc2\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
先: b'\x00PHN\xc8H~\xc8HH@@\x00\x00\x00\x00\x10\x10\x08\x06\x01\x00\x00\x0f\x10\x10\x10\x1c\x00\x00\x00\x00'殂: b'\x84t\x9c\x14\xf6\x04\xfe"""\xfe\x00\x00\x00\x00\x00\x10\x08\x04\x03\x10\x10\x1f\x11\x11\x11\x1f\x10\x00\x00\x00\x00'
,: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
创: b'@ \xf0(&$\xe8\x10\x00\xf8\x00\xfe\x00\x00\x00\x00\x00\x00\x0f\x10\x11\x12\x11\x1c\x00\x03\x10\x1f\x00\x00\x00\x00'
崩: b'\x00\x00\xee\xa8\xa8\xe8\x08\xee\xa8\xa8\xa8\xee\x00\x00\x00\x00\x10\x08\x07\x02\x12\x1f\x10\x0f\x02\x02\x12\x1f\x00\x00\x00\x00'
今: b'@@ \x10(F\x08\x10 @@\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x11\r\x03\x01\x00\x00\x00\x00\x00\x00\x00'

Нажмите Enter для предварительного просмотра символов. . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . @. . @. . . . . . . .  @. @@@@@@@. @. . . . . 
 . @. . . @. . . . @. . . . .  . @. @. @. . @. . @. . . .  . . . @. . @. . @. . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . @. . @. . . . . . . .  . . @. . @. . @. . . . . . . 
 . @. . . @. . . . @. . . . .  . @. @. @. . @. . @. . . .  . . @@. . . @. . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . @. . . @. . . . . . . .  . . @. . @. . @. . . . . . . 
 . @. . . @. . . . @. . . . .  . . . @. @. . @. @@. . . .  @@. @. . . @@. . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . @. . . . @. . . @. . . .  . . @. . @. . @. . . . . . . 
 . @@@@@@@@@@. . . . .  . . @. . . . . @. . . . . . .  . . . @. @. . . @@. . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . @. . . . . @. . . @. . . .  . . . . . @. . . . . . . . . . 
 . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . 
 . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . .  . .. . . . . . . . . . . . . . 
 . . . . @. . . . . . @. . . .  . . . . @. . @. . . . . . . .  . . . . . @. . . . . . . . . .  . . . . . @. . . . . . . . . .  @@@@@@@@@@@@. . . .  . . . . . @. . . . . . . . . .  . @. . . . @. . @. . . . . . 
 . . . . @@. . . . . @. . . .  . . . . @. . @. . . . . . . .  . . . . . @. . . . . . . . . .  . @. . . @. . . @. . . . . .  . . . . . . @. . . . . . . . .  . . . . . @. . . . . . . . . .  . . @. @@@@@@@@. . . . 
 . . . @. . @. . @. @. . . .  . . . . @. . @. . . . . . . .  . @@@@@@@@@. . . . . .  . . @. . @. . @. . . . . . .  . . . . . @. . . . . . . . . .  . @@@@@@@@@@. . . . .  . . @. . . . @. . . . . . . . 
 . . @. . . . @. @. @. . . .  . . . . @. . @. . @. . . . .  . . . . . @. . . . . . . . . .  . . . @. @. @. . . . . . . .  . @@@@@@@@@@. . . . .  . @. . . @. . . . @. . . . .  . . . . . @@@@@@. . . . . 
 . @@@@@@. . @. @. . . .  @. . . @. . @. . @. . . . .  . . . . . @. . . . . . . . . .  . . . . . @. . . . . . . . . .  . @. . @. . @. . @. . . . .  . @. . . @. . . . @. . . . .  @@@. . @@@@@@. . . . . 
 @. @. . . @. . @. @. . . .  . @. . @. . @. @. . . . . .  @@@@@@@@@@@. . . . .  . @@@@@@@@@. . . . . .  . @. . @. . @. . @. . . . .  . @. . . @. . . . @. . . . .  @@@. . @@@@@@. . . . . 
 . . @. . . @. . @. @. . . .  . . @. @. . @. @. . . . . .  . . . . . @. . . . . . . . . .  . . . . . @. . . . . . . . . .  . @. . @. . @. . @. . . . .  . @@@@@@@@@@. . . . .  . . @. . @. . . . @. . . . . 
 . . @. @. @. . @. @. . . .  . . @. @. . @@. . . . . . .  . . . . @@@. . . . . . . . .  . . . . . @. . . . . . . . . .  . @. . @. . @. . @. . . . .  . @. . . @. . . . @. . . . .  . . @. . @@@@@@. . . . . 
 . . @. . @. . . @. @. . . .  . . . . @. . @. . . . . . . .  . . . @. @. @. . . . . . . .  @@@@@@@@@@@. . . . .  . @. . @. . @. . @. . . . .  . . . . . @. . . . . . . . . .  . . @. . @. . . . @. . . . . 
 . . @. . . . @. . . @. . . .  . . . . @. . @. . . . . . . .  . . @. . @. . @. . . . . . .  . . . . . @. . . . . . . . . .  . @. . @. . @. . @. . . . .  . . . . . @. . . . . . . . . .  . . @. . @@@@@@. . . . . 
 . . @. . . . @. . . @. . . .  . . . . @. . @. . . . . . . .  @@. . . @. . . @@. . . . .  . . . . . @. . . . . . . . . .  . @. . @. . @. . @. . . . .  . . . . . @. . . . . . . . . .  . @. @. . . . . . . . . . . . 
 . . . @@@@@. . @@. . . .  @@@@@@@@@@@@. . . .  . . . . . @. . . . . . . . . .  . . . . . @. . . . . . . . . .  . @. . . . . . . @@. . . . .  . . . . . @. . . . . . . . . .  @. . . @@@@@@@@. . . . 
 . . . . . .```markdown
## Ссылки
```* Инструкции по установке и использованию `ab инструмента` доступны по адресу [AMPY Batch Tool](https://gitee.com/walkline/a-batch-tool)

* [Таблица разделов - ESP32](https://docs.espressif.com/projects/esp-idf/ru/latest/esp32/api-guides/partition-tables.html)
* [Установка окружения для сборки MicroPython для ESP32-C3](https://gitee.com/walkline/esp32-c3_micropython_firmware)

### Контакты для сотрудничества

* Электронная почта: <walkline@163.com>
* Группы для общения в QQ:
	* Walkline IoT: [163271910](https://jq.qq.com/?_wv=1027&k=xtPoHgwL)
	* Shabei IoT: [31324057](https://jq.qq.com/?_wv=1027&k=yp4FrpWh)

```markdown
<p align="center"><img src="https://gitee.com/walkline/WeatherStation/raw/docs/images/qrcode_walkline.png" width="300px" alt="Zouxian IoT"><img src="https://gitee.com/walkline/WeatherStation/raw/docs/images/qrcode_bigiot.png" width="300px" alt="Shell IoT"></p>

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Упаковка непython файлов в firmware и их вызов Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/walkline-micropython-resource-manager.git
git@api.gitlife.ru:oschina-mirror/walkline-micropython-resource-manager.git
oschina-mirror
walkline-micropython-resource-manager
walkline-micropython-resource-manager
master