初版
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
|
||||
@echo off
|
||||
|
||||
@echo ********************************************************************************
|
||||
@echo BR35 OTA LOADER
|
||||
@echo ********************************************************************************
|
||||
@echo %date%
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
set OBJDUMP=C:\JL\pi32\bin\llvm-objdump.exe
|
||||
set OBJCOPY=C:\JL\pi32\bin\llvm-objcopy.exe
|
||||
set TARGET_ELF=ota_loader.elf
|
||||
|
||||
set OTA_LOADER_PACKER=ota_loader.exe
|
||||
set UBOOT_PACKER=uboot_package.exe
|
||||
|
||||
echo %TARGET_ELF%
|
||||
|
||||
set PROJECT_TYPE=nor_ota
|
||||
|
||||
%OBJCOPY% -O binary -j .text %TARGET_ELF% %PROJECT_TYPE%_bank0.bin
|
||||
%OBJCOPY% -O binary -j .ver_tag %TARGET_ELF% ota_loader_ver.bin
|
||||
%OBJCOPY% -O binary -j .version %TARGET_ELF% ota_loader.version
|
||||
%OBJDUMP% -D -address-mask=0x7ffffff -print-imm-hex -print-dbg -mcpu=r3 %TARGET_ELF% > ota_loader.lst
|
||||
%OBJDUMP% -section-headers -address-mask=0x7ffffff %TARGET_ELF%
|
||||
REM %OBJDUMP% -t %TARGET_ELF% > symbol_tbl.txt
|
||||
|
||||
echo %PROJECT_TYPE%
|
||||
|
||||
copy %PROJECT_TYPE%_bank0.bin %PROJECT_TYPE%.bin
|
||||
|
||||
%OTA_LOADER_PACKER% 0x10c800 %PROJECT_TYPE%.bin compression ram
|
||||
|
||||
%UBOOT_PACKER% --info ota_loader.version --uboot ota.bin --output ota.bin
|
||||
Binary file not shown.
@@ -0,0 +1,173 @@
|
||||
// *INDENT-OFF*
|
||||
/*
|
||||
#-------------------------------------------------------+
|
||||
# br35 RAM mapping |
|
||||
#-------------------------------------------0x137000 ---| _RAM_LIMIT_H
|
||||
# |
|
||||
# |
|
||||
# ota-loader (194K:0x30A00) |
|
||||
# |
|
||||
# |
|
||||
#-------------------------------------------0x106600 ---|
|
||||
# |
|
||||
# uboot (16K:0x4000) |
|
||||
# |
|
||||
#-------------------------------------------0x102600 ---|
|
||||
# |
|
||||
# | ---------> user_api.bin end (0x10054c + 32K)
|
||||
#-------------------------------------------0x10054c ---| ---------> user_api.bin start(0x10054c)
|
||||
# Maskrom_export_RAM (0x34c) |
|
||||
#-------------------------------------------0x100200 ---|
|
||||
# |
|
||||
#-------------------------------------------0x100000 ---| _RAM_LIMIT_L
|
||||
*/
|
||||
|
||||
#include "maskrom_stubs.ld"
|
||||
|
||||
//from mask export
|
||||
ISR_BASE = _IRQ_MEM_ADDR;
|
||||
|
||||
UPDATA_SIZE = 0x200;
|
||||
|
||||
UPDATE_BEG = _RAM_LIMIT_H - UPDATA_SIZE;
|
||||
|
||||
UPDATA_BREDR_BASE_BEG = 0x137000 - 0x1000;
|
||||
|
||||
EX_CODE_BEGIN = 0x10054c; /*用户自定义UI代码的地址,根据不同CPU来配置*/
|
||||
EX_CODE_SIZE = 0xc2b4;
|
||||
|
||||
#if defined(DEV_UPDATE_MINI) && DEV_UPDATE_MINI
|
||||
SEC_OTA_CODE_BEGIN = 0x106600; /*第二级loader RAM地址*/
|
||||
OTA_CODE_BEGIN = 0x137000 - 0x6000; /*注意不要和uboot重叠*/
|
||||
/* OTA_CODE_BEGIN = 0x175000; #<{(|uart 测试盒串口升级开debug时修改|)}># */
|
||||
OTA_CODE_SIZE = 24K;
|
||||
|
||||
#else
|
||||
|
||||
OTA_CODE_BEGIN = EX_CODE_BEGIN + EX_CODE_SIZE; /*注意不要和uboot重叠*/
|
||||
OTA_CODE_SIZE = UPDATA_BREDR_BASE_BEG - OTA_CODE_BEGIN;
|
||||
#endif
|
||||
|
||||
// EX_CODE_BEGIN = 0x104000; /*用户自定义UI代码的地址,根据不同CPU来配置*/
|
||||
// EX_CODE_SIZE = 460K;
|
||||
|
||||
MEMORY
|
||||
{
|
||||
text_ram : ORIGIN = OTA_CODE_BEGIN, LENGTH = OTA_CODE_SIZE
|
||||
#if !defined(DEV_UPDATE_MINI) || (!DEV_UPDATE_MINI)
|
||||
bt_ram : ORIGIN = UPDATA_BREDR_BASE_BEG, LENGTH = 0x1000
|
||||
/* ex_code : ORIGIN = EX_CODE_BEGIN, LENGTH = EX_CODE_SIZE */
|
||||
reserved : ORIGIN = 0x0, LENGTH = 0x100
|
||||
version_ram :ORIGIN = 0x8000000, LENGTH = 128
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
ENTRY(_start);
|
||||
EXTERN(
|
||||
lib_ota_loader_version
|
||||
#if (EX_FLASH_UPDATE_SUPPORT_EN)
|
||||
device_table
|
||||
#endif
|
||||
);
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = ORIGIN(text_ram);
|
||||
.text :
|
||||
{
|
||||
*(.start*)
|
||||
*(.text*)
|
||||
*(.*.text)
|
||||
*(.data*)
|
||||
*(.*.data)
|
||||
*(.rodata*)
|
||||
*(.*.text.const)
|
||||
#if !defined(DEV_UPDATE_MINI) || (!DEV_UPDATE_MINI)
|
||||
*(.bredr_irq_code)
|
||||
*(.frame_irq_code)
|
||||
*(.classic_irq_code)
|
||||
*(.classic_irq_const)
|
||||
*(.volatile_ram_code)
|
||||
#endif
|
||||
. = ALIGN(32);
|
||||
|
||||
#if (EX_FLASH_UPDATE_SUPPORT_EN)
|
||||
_device_node_begin = .;
|
||||
PROVIDE(device_node_begin = .);
|
||||
*(.device)
|
||||
_device_node_end = .;
|
||||
PROVIDE(device_node_end = .);
|
||||
. = ALIGN(32);
|
||||
#endif
|
||||
} > text_ram
|
||||
|
||||
.bss ALIGN(32) (NOLOAD):
|
||||
{
|
||||
_cpu0_sstack_begin = .;
|
||||
*(.stack*)
|
||||
_cpu0_sstack_end = .;
|
||||
_cpu0_ustack_begin = .;
|
||||
*(.ustack*)
|
||||
_cpu0_ustack_end = .;
|
||||
|
||||
*(.bss)
|
||||
*(.*.data.bss)
|
||||
*(.usb_ep0)
|
||||
*(.usb_config_var)
|
||||
*(.update_buf)
|
||||
*(.bredr_rxtx_bulk)
|
||||
. = ALIGN(32);
|
||||
} > text_ram
|
||||
|
||||
.bss_noinit ALIGN(32) (NOLOAD):
|
||||
{
|
||||
*(.bss_noinit)
|
||||
. = ALIGN(32);
|
||||
} > text_ram
|
||||
|
||||
#if !defined(DEV_UPDATE_MINI) || (!DEV_UPDATE_MINI)
|
||||
. = ORIGIN(bt_ram);
|
||||
.bt_bss (NOLOAD) :SUBALIGN(4)
|
||||
{
|
||||
*(.bd_base)
|
||||
*(.comm_rf_para)
|
||||
*(.bd_base1)
|
||||
} > bt_ram
|
||||
|
||||
// . = ORIGIN(ex_code);
|
||||
// .ex_code (NOLOAD) :SUBALIGN(4)
|
||||
// {
|
||||
// . = LENGTH(ex_code);
|
||||
// } > ex_code
|
||||
|
||||
. = ORIGIN(reserved);
|
||||
.ver_tag ALIGN(4):
|
||||
{
|
||||
KEEP(*(.version_tag1))
|
||||
KEEP(*(.version_tag2))
|
||||
KEEP(*(.version_tag3))
|
||||
. = ALIGN(4);
|
||||
} > reserved
|
||||
|
||||
. = ORIGIN(version_ram);
|
||||
.version ALIGN(32):
|
||||
{
|
||||
*(.ota_loader.version)
|
||||
. = ALIGN(32);
|
||||
} > version_ram
|
||||
|
||||
|
||||
bt_ram_begin = ADDR(.bt_bss);
|
||||
bt_ram_size = SIZEOF(.bt_bss);
|
||||
#endif
|
||||
}
|
||||
|
||||
//================== Section Info Export ====================//
|
||||
text_begin = ADDR(.text);
|
||||
text_size = SIZEOF(.text);
|
||||
text_end = text_begin + text_size;
|
||||
|
||||
bss_begin = ADDR(.bss);
|
||||
bss_size = SIZEOF(.bss);
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user