unknown 6 dias atrás
pai
commit
6d35217b0a
4 arquivos alterados com 118 adições e 12 exclusões
  1. 54 12
      .obsidian/workspace.json
  2. 19 0
      ASM/asm_x64.md
  3. 28 0
      ROTEK/bt67xx/common.md
  4. 17 0
      tools.md

+ 54 - 12
.obsidian/workspace.json

@@ -62,9 +62,51 @@
               "icon": "lucide-file",
               "title": "vim"
             }
+          },
+          {
+            "id": "4f5646f62dddc940",
+            "type": "leaf",
+            "state": {
+              "type": "markdown",
+              "state": {
+                "file": "STM32/build.md",
+                "mode": "source",
+                "source": false
+              },
+              "icon": "lucide-file",
+              "title": "build"
+            }
+          },
+          {
+            "id": "f4cf98e50a6c6d08",
+            "type": "leaf",
+            "state": {
+              "type": "markdown",
+              "state": {
+                "file": "ROTEK/bt67xx/common.md",
+                "mode": "source",
+                "source": false
+              },
+              "icon": "lucide-file",
+              "title": "common"
+            }
+          },
+          {
+            "id": "5ce6de4bc6297547",
+            "type": "leaf",
+            "state": {
+              "type": "markdown",
+              "state": {
+                "file": "Python/venv.md",
+                "mode": "source",
+                "source": false
+              },
+              "icon": "lucide-file",
+              "title": "venv"
+            }
           }
         ],
-        "currentTab": 3
+        "currentTab": 5
       }
     ],
     "direction": "vertical"
@@ -194,20 +236,25 @@
       "markdown-importer:Open format converter": false
     }
   },
-  "active": "d49f64138d1be7ed",
+  "active": "f4cf98e50a6c6d08",
   "lastOpenFiles": [
+    "STM32/build.md",
+    "Python/venv.md",
+    "ROTEK/bt67xx/common.md",
+    "STM32/IRQ + FreeRTOS.md",
+    "STM32/Makefile template.md",
+    "ASM/asm_x64.md",
+    "tools.md",
+    "linux/Tmux.md",
+    "linux/vim.md",
     "English/img/32-5.jpg",
     "English/img/32-4.jpg",
     "English/img/32-3.jpg",
     "English/img/32-2.jpg",
     "English/img/32-1.jpg",
     "Кодинг.md",
-    "ASM/asm_x64.md",
-    "ROTEK/bt67xx/common.md",
     "linux/server.md",
-    "linux/Tmux.md",
     "linux/ufw.md",
-    "linux/vim.md",
     "linux/bash.md",
     "linux/alacritty.md",
     "linux/Сценарий. Полная настройка Windows, WSL и инструментов для разработчика.md",
@@ -224,11 +271,7 @@
     "English/img/31-1.jpg",
     "English/Texts/Text 0.md",
     "ROTEK/allwinner 069 070.md",
-    "English/Homework/Homework 7.md",
-    "ROTEK/metrolog/readme.md",
     "ASM",
-    "ROTEK/Arbiter.md",
-    "STM32/Makefile template.md",
     "STM32/Makefile_template.txt",
     "English/img/29-10.jpg.~tmp",
     "English/img/29-9.jpg.~tmp",
@@ -240,7 +283,6 @@
     "English/img/29-3.jpg.~tmp",
     "English/img/29-10.jpg",
     "English/img/29-9.jpg",
-    "English/img/29-8.jpg",
-    "English/img/29-7.jpg"
+    "English/img/29-8.jpg"
   ]
 }

+ 19 - 0
ASM/asm_x64.md

@@ -119,3 +119,22 @@ count - загружается в регистр %rdx - количество в
 ```asm
 // Директивы .string и .asciz добавляют в конце строки нулевой байт.
 ```
+
+Можно вставлять символы по кодам
+```asm
+.ascii "test\12"; // это код символа в восьмеричной системе
+.ascii "test\x0a"; // это в шестнадцатиричной
+```
+
+Так же работает обычное экранирование символов
+
+~={yellow} Бинарные и текстовые файлы=~
+*Текстовый файл* - файл в котором каждый байт соответствует коду печатного символа (а так же управляющие элементы: перенос строки, табуляция и т.д.).
+
+~={yellow}Сегменты программы=~
+
+*Сегмент кода* является главным в программе, именно он определяет последовательность действий, которые выполняет программа. Сегмент кода является обязательным, в то время как других сегментов может не быть, так как сами данные без кода - это уже не программа. Объявляется директивой .text.
+
+*Сегмент данных* начинается с директивы .data.
+
+~={green}остановился на начале 14=~

+ 28 - 0
ROTEK/bt67xx/common.md

@@ -86,3 +86,31 @@ $ arm-none-eabi-gdb -x .gdbinit_bt6711_v1
 ```bash
 openocd -f interface/stlink.cfg -f target/stm32f4x.cfg -c "init; reset halt; stm32f4x unlock 0; reset halt; exit"
 ```
+
+~={yellow}Сборка проекта  на WSL в Windows=~
+
+Для проброса usb устройств в WSL установить usbipd-win 5.1.0 https://github.com/dorssel/usbipd-win/releases
+
+```powershell
+# Вывести список устройств
+$ usbipd list
+
+# Подставить текущий BUSID устройства
+$ usbipd attach --wsl --busid <BUSID>
+```
+
+Могут быть проблемы с доступом по TCP к конкретному порту. Для этого в настройка firewall windows добавить правило для порта https://addshore.com/2024/07/wsl2-com-port-pass-through-with-usbipd-firewall-issues/
+
+Инструкция как добавить правило в firewall https://remontka.pro/open-ports-network-windows/
+
+В WSL установить libusb stlink openocd
+```bash
+$ sudo apt install usbutils
+```
+
+При запуске gdb может потребоваться установить libncurses5.so
+```bash
+$ sudo apt install libncurses5
+```
+
+

+ 17 - 0
tools.md

@@ -0,0 +1,17 @@
+~={yellow}objdump=~
+```bash
+$ objdump -s -j .data test.exe
+# -s - сегмент
+# -j - после указать какой именно сегмент
+```
+
+~={yellow}ELF=~
+
+ELF - формат исполняемых файлов для Linux (Executable and Linkable Format) и определяет структуру бинарных файлов, библиотек и файлов ядра (core files). Спецификация формата позволяет операционной системе корректно интерпретировать содержащиеся в файле машинные команды. Файл ELF, как правило, является выходным файлом компилятора или линкера и имеет двоичный формат. С помощью подходящих инструментов он может быть проанализирован и изучен.
+
+ELF файл начинается с заголовка (4 байта): 7f+ELF.  Далее идет заголовочная информация.
+
+```bash
+# Посмотреть заголовок elf файла
+$ readelf -h text.exe
+```