From 8067dc77f6112ce3002f2cf331393aad2ea94b23 Mon Sep 17 00:00:00 2001 From: kivanov032 <162621748+kivanov032@users.noreply.github.com> Date: Mon, 16 Jun 2025 10:41:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=A013.=20=D0=98=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=B4=D0=B0=20=D0=B2=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B3=D1=80=D0=B0=D0=BC=D0=BC=D0=B5=20rx=5Fhex=20(#119)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update rx_hex.S Изменил 18-ую инструкцию: 0030A823 на 0040A823, так как в uart_rx записывался регистр x3, а не x4, что подразумевается комментарием к инструкции. Вот подробное объяснение: Было: 0030A623 = 0000000 00011 00001 010 01100 0100011 => sw: Mem[rs1 + imm] = Mem[x1 + c] = rs2 = 3x (00011) Правильнее: 0000000 00100 00001 010 01100 0100011 => sw: Mem[rs1 + imm] = Mem[x1 + c] = rs2 = 4x (00100) * Update lab_13_rx_hex_instr.mem Изменил 18-ую инструкцию: 0030A823 на 0040A823, так как в uart_rx записывался регистр x3, а не x4, что подразумевается комментарием к инструкции. --- .../firmware/mem_files/lab_13_rx_hex_instr.mem | 2 +- Labs/13. Peripheral units/firmware/software/rx_hex.S | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Labs/13. Peripheral units/firmware/mem_files/lab_13_rx_hex_instr.mem b/Labs/13. Peripheral units/firmware/mem_files/lab_13_rx_hex_instr.mem index 478d469..15c457b 100644 --- a/Labs/13. Peripheral units/firmware/mem_files/lab_13_rx_hex_instr.mem +++ b/Labs/13. Peripheral units/firmware/mem_files/lab_13_rx_hex_instr.mem @@ -4,7 +4,7 @@ 20018193 0030a623 00100213 -0030a823 +0040a823 03400293 00028293 30529073 diff --git a/Labs/13. Peripheral units/firmware/software/rx_hex.S b/Labs/13. Peripheral units/firmware/software/rx_hex.S index 1e196d6..bc4d3fb 100644 --- a/Labs/13. Peripheral units/firmware/software/rx_hex.S +++ b/Labs/13. Peripheral units/firmware/software/rx_hex.S @@ -16,7 +16,7 @@ _start: c: 20018193 10: 0030a623 sw x3 , 0x0c(x1) 14: 00100213 li x4 , 0x00000001 # устанавливаем parity_bit -18: 0030a823 sw x4 , 0x10(x1) +18: 0040a823 sw x4 , 0x10(x1) 1c: 03400293 la x5, trap_handler # псевдоинструкция la аналогично li загружает число, 20: 00028293 # только в случае la — это число является адресом # указанного места (адреса обработчика перехвата)