From 99537d5bd93bb06f232b6ed45bf3cf0ce7d6651b Mon Sep 17 00:00:00 2001 From: andy <1414772332@qq.com> Date: Tue, 29 Oct 2024 15:26:43 +0800 Subject: [PATCH] =?UTF-8?q?fw.bin=20=E4=BD=BF=E7=94=A8=20sbl.bin=20?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=20sbl=5Fprintf=20=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/build_flash_kl3.sh | 2 ++ sbl/src/sbl_printf.c | 12 ++++++++++++ .../ldscripts/riscv3/link_flash_4m_cco_plc_only.lds | 3 ++- .../ldscripts/riscv3/link_flash_4m_sta_plc_only.lds | 3 ++- .../ldscripts/riscv3/link_psram_8m_cco_plc_only.lds | 3 ++- .../ldscripts/riscv3/link_psram_8m_sta_plc_only.lds | 3 ++- startup/misc/main.c | 5 +++++ tools/rom_img/sbl_symbol | 1 + 8 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 tools/rom_img/sbl_symbol diff --git a/build/build_flash_kl3.sh b/build/build_flash_kl3.sh index c2c6ee3..7c0e753 100755 --- a/build/build_flash_kl3.sh +++ b/build/build_flash_kl3.sh @@ -938,6 +938,8 @@ if [ "${DEF_CORE_TYPE}" == "ampplc" ]; then ../tools/rom_img/make_ld.sh --addrs ../ap/.output/cus/lib/ht_${DEF_IMAGE_TYPE}.out \ ../startup/ldscripts/riscv3/amp_cus_symbol > ../startup/ldscripts/riscv3/cus.addrs.ld fi +../tools/rom_img/make_ld.sh --addrs ../sbl/.output/plc/lib/kunlun_sbl.out \ + ../tools/rom_img/sbl_symbol > ../startup/ldscripts/riscv3/sbl.addrs.ld build_obj_func ${DEF_IMAGE_TYPE} ${DEF_PLC_APP} PLC # 删除 cfg_log.txt diff --git a/sbl/src/sbl_printf.c b/sbl/src/sbl_printf.c index 86c89e5..d1cad07 100644 --- a/sbl/src/sbl_printf.c +++ b/sbl/src/sbl_printf.c @@ -22,6 +22,8 @@ Information is free from patent or copyright infringement. #define SBL_DEBUG_UART_PORT 0 extern struct uart_ctrl uart_e_ctrl; + +// 这个定义在其他文件 extern uint32_t g_is_print_enable; static int (*format_str_v_fn)(const str_format_context *ctxt, const char *format, @@ -65,6 +67,13 @@ int8_t getc(void) return (int8_t)c; } + + +extern str_format_context rom_log_ctxt; +extern int rom_format_str_v(const str_format_context *ctxt, const char *format, + va_list ap); + + int sbl_printf_init(void *sbl_format_str_v, void *sbl_log_ctxt) { format_str_v_fn = sbl_format_str_v; @@ -81,6 +90,9 @@ int32_t sbl_printf(const char *fmt, ...) if (g_is_print_enable == 0) return 0; + if(!format_str_v_fn){ + sbl_printf_init(rom_format_str_v, &rom_log_ctxt); + } va_start(ap, fmt); res = format_str_v_fn(p_log_ctxt, fmt, ap); diff --git a/startup/ldscripts/riscv3/link_flash_4m_cco_plc_only.lds b/startup/ldscripts/riscv3/link_flash_4m_cco_plc_only.lds index 1c68bb9..bacd264 100644 --- a/startup/ldscripts/riscv3/link_flash_4m_cco_plc_only.lds +++ b/startup/ldscripts/riscv3/link_flash_4m_cco_plc_only.lds @@ -178,4 +178,5 @@ SECTIONS } -INCLUDE "rom.addrs.ld" \ No newline at end of file +INCLUDE "rom.addrs.ld" +INCLUDE "sbl.addrs.ld" \ No newline at end of file diff --git a/startup/ldscripts/riscv3/link_flash_4m_sta_plc_only.lds b/startup/ldscripts/riscv3/link_flash_4m_sta_plc_only.lds index 9ffab8a..93293b6 100644 --- a/startup/ldscripts/riscv3/link_flash_4m_sta_plc_only.lds +++ b/startup/ldscripts/riscv3/link_flash_4m_sta_plc_only.lds @@ -186,4 +186,5 @@ SECTIONS } INCLUDE "sec_cpu_sta.addrs.ld" -INCLUDE "rom.addrs.ld" \ No newline at end of file +INCLUDE "rom.addrs.ld" +INCLUDE "sbl.addrs.ld" \ No newline at end of file diff --git a/startup/ldscripts/riscv3/link_psram_8m_cco_plc_only.lds b/startup/ldscripts/riscv3/link_psram_8m_cco_plc_only.lds index f025481..1f0c9ab 100644 --- a/startup/ldscripts/riscv3/link_psram_8m_cco_plc_only.lds +++ b/startup/ldscripts/riscv3/link_psram_8m_cco_plc_only.lds @@ -185,4 +185,5 @@ SECTIONS } INCLUDE "sec_cpu_cco.addrs.ld" -INCLUDE "rom.addrs.ld" \ No newline at end of file +INCLUDE "rom.addrs.ld" +INCLUDE "sbl.addrs.ld" \ No newline at end of file diff --git a/startup/ldscripts/riscv3/link_psram_8m_sta_plc_only.lds b/startup/ldscripts/riscv3/link_psram_8m_sta_plc_only.lds index 50602cb..4a7fea5 100644 --- a/startup/ldscripts/riscv3/link_psram_8m_sta_plc_only.lds +++ b/startup/ldscripts/riscv3/link_psram_8m_sta_plc_only.lds @@ -185,4 +185,5 @@ SECTIONS } INCLUDE "sec_cpu_sta.addrs.ld" -INCLUDE "rom.addrs.ld" \ No newline at end of file +INCLUDE "rom.addrs.ld" +INCLUDE "sbl.addrs.ld" \ No newline at end of file diff --git a/startup/misc/main.c b/startup/misc/main.c index e567db8..d2f878d 100644 --- a/startup/misc/main.c +++ b/startup/misc/main.c @@ -126,10 +126,15 @@ int32_t iot_module_start(void) return 0; } +extern int32_t sbl_printf(const char *fmt, ...); + + uint32_t iot_plc_entry(iot_build_info_t *info) { sbl_param_input_t param = {0}; + sbl_printf("enter fw...\n"); + iot_system_get_fw_boot_param(¶m); // 设置app的build_info iot_version_set_user_build_info(info); diff --git a/tools/rom_img/sbl_symbol b/tools/rom_img/sbl_symbol new file mode 100644 index 0000000..0c6bb24 --- /dev/null +++ b/tools/rom_img/sbl_symbol @@ -0,0 +1 @@ +sbl_printf \ No newline at end of file