mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-25 01:58:27 +02:00
3694 lines
185 KiB
ObjectPascal
3694 lines
185 KiB
ObjectPascal
{
|
|
Copyright (c) 2005-2017 by Free Pascal Compiler team
|
|
|
|
This unit implements support import, export, link routines
|
|
for the FreeRTOS Target
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
****************************************************************************
|
|
}
|
|
unit t_freertos;
|
|
|
|
{$i fpcdefs.inc}
|
|
|
|
interface
|
|
|
|
|
|
implementation
|
|
|
|
uses
|
|
SysUtils,
|
|
cutils,cfileutl,cclasses,
|
|
globtype,globals,systems,verbose,comphook,cscript,fmodule,i_freertos,link,
|
|
cpuinfo;
|
|
|
|
type
|
|
TlinkerFreeRTOS=class(texternallinker)
|
|
private
|
|
Function WriteResponseFile: Boolean;
|
|
public
|
|
constructor Create; override;
|
|
procedure SetDefaultInfo; override;
|
|
function MakeExecutable:boolean; override;
|
|
function postprocessexecutable(const fn : string;isdll:boolean):boolean;
|
|
end;
|
|
|
|
var
|
|
IDF_PATH: string;
|
|
|
|
{*****************************************************************************
|
|
TlinkerEmbedded
|
|
*****************************************************************************}
|
|
|
|
Constructor TlinkerFreeRTOS.Create;
|
|
begin
|
|
Inherited Create;
|
|
SharedLibFiles.doubles:=true;
|
|
StaticLibFiles.doubles:=true;
|
|
end;
|
|
|
|
|
|
procedure TlinkerFreeRTOS.SetDefaultInfo;
|
|
const
|
|
{$ifdef mips}
|
|
{$ifdef mipsel}
|
|
platform_select='-EL';
|
|
{$else}
|
|
platform_select='-EB';
|
|
{$endif}
|
|
{$else}
|
|
platform_select='';
|
|
{$endif}
|
|
begin
|
|
with Info do
|
|
begin
|
|
{$ifdef xtensa}
|
|
if target_info.system=system_xtensa_freertos then
|
|
if current_settings.controllertype = ct_esp8266 then
|
|
begin
|
|
IDF_PATH := 'IDF_PATH8266';
|
|
ExeCmd[1]:=ExeCmd[1]+
|
|
'-u call_user_start_cpu -u esp_app_desc -L $IDF_PATH8266/libs -T build-linker-script.ld'
|
|
end
|
|
else
|
|
begin
|
|
ExeCmd[1]:=ExeCmd[1]+
|
|
'-u call_user_start_cpu0 -u ld_include_panic_highint_hdl -u esp_app_desc -u vfs_include_syscalls_impl -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u newlib_include_locks_impl -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u app_main -u uxTopUsedPriority '+
|
|
'-L $IDF_PATH/libs -T build-linker-script.ld';
|
|
IDF_PATH := 'IDF_PATH';
|
|
end;
|
|
{$endif xtensa}
|
|
end;
|
|
end;
|
|
|
|
|
|
Function TlinkerFreeRTOS.WriteResponseFile: Boolean;
|
|
Var
|
|
linkres : TLinkRes;
|
|
i : longint;
|
|
HPath : TCmdStrListItem;
|
|
s,s1,s2 : TCmdStr;
|
|
prtobj,
|
|
cprtobj : string[80];
|
|
linklibc : boolean;
|
|
found1,
|
|
found2 : boolean;
|
|
{$if defined(ARM)}
|
|
LinkStr : string;
|
|
{$endif}
|
|
begin
|
|
WriteResponseFile:=False;
|
|
linklibc:=(SharedLibFiles.Find('c')<>nil);
|
|
{$if defined(ARM) or defined(i386) or defined(x86_64) or defined(AVR) or defined(MIPSEL) or defined(RISCV32) or defined(XTENSA)}
|
|
prtobj:='';
|
|
{$else}
|
|
prtobj:='prt0';
|
|
{$endif}
|
|
cprtobj:='cprt0';
|
|
if linklibc then
|
|
prtobj:=cprtobj;
|
|
|
|
{ Open link.res file }
|
|
LinkRes:=TLinkRes.Create(outputexedir+Info.ResName,true);
|
|
|
|
{ Write path to search libraries }
|
|
HPath:=TCmdStrListItem(current_module.locallibrarysearchpath.First);
|
|
while assigned(HPath) do
|
|
begin
|
|
s:=HPath.Str;
|
|
if (cs_link_on_target in current_settings.globalswitches) then
|
|
s:=ScriptFixFileName(s);
|
|
LinkRes.Add('-L'+s);
|
|
HPath:=TCmdStrListItem(HPath.Next);
|
|
end;
|
|
HPath:=TCmdStrListItem(LibrarySearchPath.First);
|
|
while assigned(HPath) do
|
|
begin
|
|
s:=HPath.Str;
|
|
if s<>'' then
|
|
LinkRes.Add('SEARCH_DIR("'+s+'")');
|
|
HPath:=TCmdStrListItem(HPath.Next);
|
|
end;
|
|
|
|
LinkRes.Add('INPUT (');
|
|
{ add objectfiles, start with prt0 always }
|
|
//s:=FindObjectFile('prt0','',false);
|
|
if prtobj<>'' then
|
|
begin
|
|
s:=FindObjectFile(prtobj,'',false);
|
|
LinkRes.AddFileName(s);
|
|
end;
|
|
|
|
{ try to add crti and crtbegin if linking to C }
|
|
if linklibc then
|
|
begin
|
|
if librarysearchpath.FindFile('crtbegin.o',false,s) then
|
|
LinkRes.AddFileName(s);
|
|
if librarysearchpath.FindFile('crti.o',false,s) then
|
|
LinkRes.AddFileName(s);
|
|
end;
|
|
|
|
while not ObjectFiles.Empty do
|
|
begin
|
|
s:=ObjectFiles.GetFirst;
|
|
if s<>'' then
|
|
begin
|
|
{ vlink doesn't use SEARCH_DIR for object files }
|
|
if not(cs_link_on_target in current_settings.globalswitches) then
|
|
s:=FindObjectFile(s,'',false);
|
|
LinkRes.AddFileName((maybequoted(s)));
|
|
end;
|
|
end;
|
|
|
|
{ Write staticlibraries }
|
|
if not(StaticLibFiles.Empty) then
|
|
begin
|
|
LinkRes.Add(')');
|
|
LinkRes.Add('GROUP(');
|
|
while not StaticLibFiles.Empty do
|
|
begin
|
|
S:=StaticLibFiles.GetFirst;
|
|
LinkRes.AddFileName((maybequoted(s)));
|
|
end;
|
|
end;
|
|
|
|
LinkRes.Add(')');
|
|
|
|
{ Write sharedlibraries like -l<lib>, also add the needed dynamic linker
|
|
here to be sure that it gets linked this is needed for glibc2 systems (PFV) }
|
|
linklibc:=false;
|
|
while not SharedLibFiles.Empty do
|
|
begin
|
|
S:=SharedLibFiles.GetFirst;
|
|
if s<>'c' then
|
|
begin
|
|
i:=Pos(target_info.sharedlibext,S);
|
|
if i>0 then
|
|
Delete(S,i,255);
|
|
LinkRes.Add('-l'+s);
|
|
end
|
|
else
|
|
begin
|
|
LinkRes.Add('-l'+s);
|
|
linklibc:=true;
|
|
end;
|
|
end;
|
|
{ be sure that libc&libgcc is the last lib }
|
|
if linklibc then
|
|
begin
|
|
LinkRes.Add('-lc');
|
|
LinkRes.Add('-lgcc');
|
|
end;
|
|
|
|
{ objects which must be at the end }
|
|
if linklibc then
|
|
begin
|
|
found1:=librarysearchpath.FindFile('crtend.o',false,s1);
|
|
found2:=librarysearchpath.FindFile('crtn.o',false,s2);
|
|
if found1 or found2 then
|
|
begin
|
|
LinkRes.Add('INPUT(');
|
|
if found1 then
|
|
LinkRes.AddFileName(s1);
|
|
if found2 then
|
|
LinkRes.AddFileName(s2);
|
|
LinkRes.Add(')');
|
|
end;
|
|
end;
|
|
|
|
{$ifdef ARM}
|
|
with embedded_controllers[current_settings.controllertype] do
|
|
with linkres do
|
|
begin
|
|
Add('ENTRY(_START)');
|
|
Add('MEMORY');
|
|
Add('{');
|
|
if flashsize<>0 then
|
|
begin
|
|
LinkStr := ' flash : ORIGIN = 0x' + IntToHex(flashbase,8)
|
|
+ ', LENGTH = 0x' + IntToHex(flashsize,8);
|
|
Add(LinkStr);
|
|
end;
|
|
|
|
LinkStr := ' ram : ORIGIN = 0x' + IntToHex(srambase,8)
|
|
+ ', LENGTH = 0x' + IntToHex(sramsize,8);
|
|
Add(LinkStr);
|
|
|
|
Add('}');
|
|
Add('_stack_top = 0x' + IntToHex(sramsize+srambase,8) + ';');
|
|
Add('SECTIONS');
|
|
Add('{');
|
|
Add(' .text :');
|
|
Add(' {');
|
|
Add(' _text_start = .;');
|
|
Add(' KEEP(*(.init .init.*))');
|
|
Add(' *(.text .text.*)');
|
|
Add(' *(.strings)');
|
|
Add(' *(.rodata .rodata.*)');
|
|
Add(' *(.comment)');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' _etext = .;');
|
|
if flashsize<>0 then
|
|
begin
|
|
Add(' } >flash');
|
|
Add(' .note.gnu.build-id : { *(.note.gnu.build-id) } >flash ');
|
|
end
|
|
else
|
|
begin
|
|
Add(' } >ram');
|
|
Add(' .note.gnu.build-id : { *(.note.gnu.build-id) } >ram ');
|
|
end;
|
|
|
|
Add(' .data :');
|
|
Add(' {');
|
|
Add(' _data = .;');
|
|
Add(' *(.data .data.*)');
|
|
Add(' KEEP (*(.fpc .fpc.n_version .fpc.n_links))');
|
|
Add(' _edata = .;');
|
|
if flashsize<>0 then
|
|
begin
|
|
Add(' } >ram AT >flash');
|
|
end
|
|
else
|
|
begin
|
|
Add(' } >ram');
|
|
end;
|
|
Add(' .bss :');
|
|
Add(' {');
|
|
Add(' _bss_start = .;');
|
|
Add(' *(.bss .bss.*)');
|
|
Add(' *(COMMON)');
|
|
Add(' } >ram');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' _bss_end = . ;');
|
|
Add('}');
|
|
Add('_end = .;');
|
|
end;
|
|
{$endif ARM}
|
|
|
|
{$ifdef i386}
|
|
with linkres do
|
|
begin
|
|
Add('ENTRY(_START)');
|
|
Add('SECTIONS');
|
|
Add('{');
|
|
Add(' . = 0x100000;');
|
|
Add(' .text ALIGN (0x1000) :');
|
|
Add(' {');
|
|
Add(' _text = .;');
|
|
Add(' KEEP(*(.init .init.*))');
|
|
Add(' *(.text .text.*)');
|
|
Add(' *(.strings)');
|
|
Add(' *(.rodata .rodata.*)');
|
|
Add(' *(.comment)');
|
|
Add(' _etext = .;');
|
|
Add(' }');
|
|
Add(' .data ALIGN (0x1000) :');
|
|
Add(' {');
|
|
Add(' _data = .;');
|
|
Add(' *(.data .data.*)');
|
|
Add(' KEEP (*(.fpc .fpc.n_version .fpc.n_links))');
|
|
Add(' _edata = .;');
|
|
Add(' }');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' .bss :');
|
|
Add(' {');
|
|
Add(' _bss_start = .;');
|
|
Add(' *(.bss .bss.*)');
|
|
Add(' *(COMMON)');
|
|
Add(' }');
|
|
Add('_bss_end = . ;');
|
|
Add('}');
|
|
Add('_end = .;');
|
|
end;
|
|
{$endif i386}
|
|
|
|
{$ifdef x86_64}
|
|
with linkres do
|
|
begin
|
|
Add('ENTRY(_START)');
|
|
Add('SECTIONS');
|
|
Add('{');
|
|
Add(' . = 0x100000;');
|
|
Add(' .text ALIGN (0x1000) :');
|
|
Add(' {');
|
|
Add(' _text = .;');
|
|
Add(' KEEP(*(.init .init.*))');
|
|
Add(' *(.text .text.*)');
|
|
Add(' *(.strings)');
|
|
Add(' *(.rodata .rodata.*)');
|
|
Add(' *(.comment)');
|
|
Add(' _etext = .;');
|
|
Add(' }');
|
|
Add(' .data ALIGN (0x1000) :');
|
|
Add(' {');
|
|
Add(' _data = .;');
|
|
Add(' *(.data .data.*)');
|
|
Add(' KEEP (*(.fpc .fpc.n_version .fpc.n_links))');
|
|
Add(' _edata = .;');
|
|
Add(' }');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' .bss :');
|
|
Add(' {');
|
|
Add(' _bss_start = .;');
|
|
Add(' *(.bss .bss.*)');
|
|
Add(' *(COMMON)');
|
|
Add(' }');
|
|
Add('_bss_end = . ;');
|
|
Add('}');
|
|
Add('_end = .;');
|
|
end;
|
|
{$endif x86_64}
|
|
|
|
{$ifdef AVR}
|
|
with linkres do
|
|
begin
|
|
{ linker script from ld 2.19 }
|
|
Add('ENTRY(_START)');
|
|
Add('OUTPUT_FORMAT("elf32-avr","elf32-avr","elf32-avr")');
|
|
case current_settings.cputype of
|
|
cpu_avr1:
|
|
Add('OUTPUT_ARCH(avr:1)');
|
|
cpu_avr2:
|
|
Add('OUTPUT_ARCH(avr:2)');
|
|
cpu_avr25:
|
|
Add('OUTPUT_ARCH(avr:25)');
|
|
cpu_avr3:
|
|
Add('OUTPUT_ARCH(avr:3)');
|
|
cpu_avr31:
|
|
Add('OUTPUT_ARCH(avr:31)');
|
|
cpu_avr35:
|
|
Add('OUTPUT_ARCH(avr:35)');
|
|
cpu_avr4:
|
|
Add('OUTPUT_ARCH(avr:4)');
|
|
cpu_avr5:
|
|
Add('OUTPUT_ARCH(avr:5)');
|
|
cpu_avr51:
|
|
Add('OUTPUT_ARCH(avr:51)');
|
|
cpu_avr6:
|
|
Add('OUTPUT_ARCH(avr:6)');
|
|
cpu_avrxmega3:
|
|
Add('OUTPUT_ARCH(avr:103)');
|
|
cpu_avrtiny:
|
|
Add('OUTPUT_ARCH(avr:100)');
|
|
else
|
|
Internalerror(2015072701);
|
|
end;
|
|
Add('MEMORY');
|
|
with embedded_controllers[current_settings.controllertype] do
|
|
begin
|
|
Add('{');
|
|
Add(' text (rx) : ORIGIN = 0, LENGTH = 0x'+IntToHex(flashsize,6));
|
|
Add(' data (rw!x) : ORIGIN = 0x'+IntToHex($800000+srambase,6)+', LENGTH = 0x'+IntToHex(sramsize,6));
|
|
Add(' eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 0x'+IntToHex(eepromsize,6));
|
|
Add(' fuse (rw!x) : ORIGIN = 0x820000, LENGTH = 1K');
|
|
Add(' lock (rw!x) : ORIGIN = 0x830000, LENGTH = 1K');
|
|
Add(' signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K');
|
|
Add('}');
|
|
Add('_stack_top = 0x' + IntToHex(srambase+sramsize-1,4) + ';');
|
|
end;
|
|
Add('SECTIONS');
|
|
Add('{');
|
|
Add(' /* Read-only sections, merged into text segment: */');
|
|
Add(' .hash : { *(.hash) }');
|
|
Add(' .dynsym : { *(.dynsym) }');
|
|
Add(' .dynstr : { *(.dynstr) }');
|
|
Add(' .gnu.version : { *(.gnu.version) }');
|
|
Add(' .gnu.version_d : { *(.gnu.version_d) }');
|
|
Add(' .gnu.version_r : { *(.gnu.version_r) }');
|
|
Add(' .rel.init : { *(.rel.init) }');
|
|
Add(' .rela.init : { *(.rela.init) }');
|
|
Add(' .rel.text :');
|
|
Add(' {');
|
|
Add(' *(.rel.text)');
|
|
Add(' *(.rel.text.*)');
|
|
Add(' *(.rel.gnu.linkonce.t*)');
|
|
Add(' }');
|
|
Add(' .rela.text :');
|
|
Add(' {');
|
|
Add(' *(.rela.text)');
|
|
Add(' *(.rela.text.*)');
|
|
Add(' *(.rela.gnu.linkonce.t*)');
|
|
Add(' }');
|
|
Add(' .rel.fini : { *(.rel.fini) }');
|
|
Add(' .rela.fini : { *(.rela.fini) }');
|
|
Add(' .rel.rodata :');
|
|
Add(' {');
|
|
Add(' *(.rel.rodata)');
|
|
Add(' *(.rel.rodata.*)');
|
|
Add(' *(.rel.gnu.linkonce.r*)');
|
|
Add(' }');
|
|
Add(' .rela.rodata :');
|
|
Add(' {');
|
|
Add(' *(.rela.rodata)');
|
|
Add(' *(.rela.rodata.*)');
|
|
Add(' *(.rela.gnu.linkonce.r*)');
|
|
Add(' }');
|
|
Add(' .rel.data :');
|
|
Add(' {');
|
|
Add(' *(.rel.data)');
|
|
Add(' *(.rel.data.*)');
|
|
Add(' *(.rel.gnu.linkonce.d*)');
|
|
Add(' }');
|
|
Add(' .rela.data :');
|
|
Add(' {');
|
|
Add(' *(.rela.data)');
|
|
Add(' *(.rela.data.*)');
|
|
Add(' *(.rela.gnu.linkonce.d*)');
|
|
Add(' }');
|
|
Add(' .rel.ctors : { *(.rel.ctors) }');
|
|
Add(' .rela.ctors : { *(.rela.ctors) }');
|
|
Add(' .rel.dtors : { *(.rel.dtors) }');
|
|
Add(' .rela.dtors : { *(.rela.dtors) }');
|
|
Add(' .rel.got : { *(.rel.got) }');
|
|
Add(' .rela.got : { *(.rela.got) }');
|
|
Add(' .rel.bss : { *(.rel.bss) }');
|
|
Add(' .rela.bss : { *(.rela.bss) }');
|
|
Add(' .rel.plt : { *(.rel.plt) }');
|
|
Add(' .rela.plt : { *(.rela.plt) }');
|
|
Add(' /* Internal text space or external memory. */');
|
|
Add(' .text :');
|
|
Add(' {');
|
|
Add(' KEEP(*(.init .init.*))');
|
|
Add(' /* For data that needs to reside in the lower 64k of progmem. */');
|
|
Add(' *(.progmem.gcc*)');
|
|
Add(' *(.progmem*)');
|
|
Add(' . = ALIGN(2);');
|
|
Add(' __trampolines_start = . ;');
|
|
Add(' /* The jump trampolines for the 16-bit limited relocs will reside here. */');
|
|
Add(' *(.trampolines)');
|
|
Add(' *(.trampolines*)');
|
|
Add(' __trampolines_end = . ;');
|
|
Add(' /* For future tablejump instruction arrays for 3 byte pc devices.');
|
|
Add(' We don''t relax jump/call instructions within these sections. */');
|
|
Add(' *(.jumptables)');
|
|
Add(' *(.jumptables*)');
|
|
Add(' /* For code that needs to reside in the lower 128k progmem. */');
|
|
Add(' *(.lowtext)');
|
|
Add(' *(.lowtext*)');
|
|
Add(' __ctors_start = . ;');
|
|
Add(' *(.ctors)');
|
|
Add(' __ctors_end = . ;');
|
|
Add(' __dtors_start = . ;');
|
|
Add(' *(.dtors)');
|
|
Add(' __dtors_end = . ;');
|
|
Add(' KEEP(SORT(*)(.ctors))');
|
|
Add(' KEEP(SORT(*)(.dtors))');
|
|
Add(' /* From this point on, we don''t bother about wether the insns are');
|
|
Add(' below or above the 16 bits boundary. */');
|
|
Add(' *(.init0) /* Start here after reset. */');
|
|
Add(' KEEP (*(.init0))');
|
|
Add(' *(.init1)');
|
|
Add(' KEEP (*(.init1))');
|
|
Add(' *(.init2) /* Clear __zero_reg__, set up stack pointer. */');
|
|
Add(' KEEP (*(.init2))');
|
|
Add(' *(.init3)');
|
|
Add(' KEEP (*(.init3))');
|
|
Add(' *(.init4) /* Initialize data and BSS. */');
|
|
Add(' KEEP (*(.init4))');
|
|
Add(' *(.init5)');
|
|
Add(' KEEP (*(.init5))');
|
|
Add(' *(.init6) /* C++ constructors. */');
|
|
Add(' KEEP (*(.init6))');
|
|
Add(' *(.init7)');
|
|
Add(' KEEP (*(.init7))');
|
|
Add(' *(.init8)');
|
|
Add(' KEEP (*(.init8))');
|
|
Add(' *(.init9) /* Call main(). */');
|
|
Add(' KEEP (*(.init9))');
|
|
Add(' *(.text)');
|
|
Add(' . = ALIGN(2);');
|
|
Add(' *(.text.*)');
|
|
Add(' . = ALIGN(2);');
|
|
Add(' *(.fini9) /* _exit() starts here. */');
|
|
Add(' KEEP (*(.fini9))');
|
|
Add(' *(.fini8)');
|
|
Add(' KEEP (*(.fini8))');
|
|
Add(' *(.fini7)');
|
|
Add(' KEEP (*(.fini7))');
|
|
Add(' *(.fini6) /* C++ destructors. */');
|
|
Add(' KEEP (*(.fini6))');
|
|
Add(' *(.fini5)');
|
|
Add(' KEEP (*(.fini5))');
|
|
Add(' *(.fini4)');
|
|
Add(' KEEP (*(.fini4))');
|
|
Add(' *(.fini3)');
|
|
Add(' KEEP (*(.fini3))');
|
|
Add(' *(.fini2)');
|
|
Add(' KEEP (*(.fini2))');
|
|
Add(' *(.fini1)');
|
|
Add(' KEEP (*(.fini1))');
|
|
Add(' *(.fini0) /* Infinite loop after program termination. */');
|
|
Add(' KEEP (*(.fini0))');
|
|
Add(' _etext = . ;');
|
|
Add(' } > text');
|
|
Add(' .data : AT (ADDR (.text) + SIZEOF (.text))');
|
|
Add(' {');
|
|
Add(' PROVIDE (__data_start = .) ;');
|
|
Add(' *(.data)');
|
|
Add(' *(.data*)');
|
|
Add(' *(.rodata) /* We need to include .rodata here if gcc is used */');
|
|
Add(' *(.rodata*) /* with -fdata-sections. */');
|
|
Add(' *(.gnu.linkonce.d*)');
|
|
Add(' . = ALIGN(2);');
|
|
Add(' _edata = . ;');
|
|
Add(' PROVIDE (__data_end = .) ;');
|
|
Add(' } > data');
|
|
Add(' .bss : AT (ADDR (.bss))');
|
|
Add(' {');
|
|
Add(' PROVIDE (__bss_start = .) ;');
|
|
Add(' *(.bss)');
|
|
Add(' *(.bss*)');
|
|
Add(' *(COMMON)');
|
|
Add(' PROVIDE (__bss_end = .) ;');
|
|
Add(' } > data');
|
|
Add(' __data_load_start = LOADADDR(.data);');
|
|
Add(' __data_load_end = __data_load_start + SIZEOF(.data);');
|
|
Add(' /* Global data not cleared after reset. */');
|
|
Add(' .noinit :');
|
|
Add(' {');
|
|
Add(' PROVIDE (__noinit_start = .) ;');
|
|
Add(' *(.noinit*)');
|
|
Add(' PROVIDE (__noinit_end = .) ;');
|
|
Add(' _end = . ;');
|
|
Add(' PROVIDE (__heap_start = .) ;');
|
|
Add(' } > data');
|
|
Add(' .eeprom :');
|
|
Add(' {');
|
|
Add(' *(.eeprom*)');
|
|
Add(' __eeprom_end = . ;');
|
|
Add(' } > eeprom');
|
|
Add(' .fuse :');
|
|
Add(' {');
|
|
Add(' KEEP(*(.fuse))');
|
|
Add(' KEEP(*(.lfuse))');
|
|
Add(' KEEP(*(.hfuse))');
|
|
Add(' KEEP(*(.efuse))');
|
|
Add(' } > fuse');
|
|
Add(' .lock :');
|
|
Add(' {');
|
|
Add(' KEEP(*(.lock*))');
|
|
Add(' } > lock');
|
|
Add(' .signature :');
|
|
Add(' {');
|
|
Add(' KEEP(*(.signature*))');
|
|
Add(' } > signature');
|
|
Add(' /* Stabs debugging sections. */');
|
|
Add(' .stab 0 : { *(.stab) }');
|
|
Add(' .stabstr 0 : { *(.stabstr) }');
|
|
Add(' .stab.excl 0 : { *(.stab.excl) }');
|
|
Add(' .stab.exclstr 0 : { *(.stab.exclstr) }');
|
|
Add(' .stab.index 0 : { *(.stab.index) }');
|
|
Add(' .stab.indexstr 0 : { *(.stab.indexstr) }');
|
|
Add(' .comment 0 : { *(.comment) }');
|
|
Add(' /* DWARF debug sections.');
|
|
Add(' Symbols in the DWARF debugging sections are relative to the beginning');
|
|
Add(' of the section so we begin them at 0. */');
|
|
Add(' /* DWARF 1 */');
|
|
Add(' .debug 0 : { *(.debug) }');
|
|
Add(' .line 0 : { *(.line) }');
|
|
Add(' /* GNU DWARF 1 extensions */');
|
|
Add(' .debug_srcinfo 0 : { *(.debug_srcinfo) }');
|
|
Add(' .debug_sfnames 0 : { *(.debug_sfnames) }');
|
|
Add(' /* DWARF 1.1 and DWARF 2 */');
|
|
Add(' .debug_aranges 0 : { *(.debug_aranges) }');
|
|
Add(' .debug_pubnames 0 : { *(.debug_pubnames) }');
|
|
Add(' /* DWARF 2 */');
|
|
Add(' .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }');
|
|
Add(' .debug_abbrev 0 : { *(.debug_abbrev) }');
|
|
Add(' .debug_line 0 : { *(.debug_line) }');
|
|
Add(' .debug_frame 0 : { *(.debug_frame) }');
|
|
Add(' .debug_str 0 : { *(.debug_str) }');
|
|
Add(' .debug_loc 0 : { *(.debug_loc) }');
|
|
Add(' .debug_macinfo 0 : { *(.debug_macinfo) }');
|
|
Add('}');
|
|
end;
|
|
{$endif AVR}
|
|
|
|
{$ifdef MIPSEL}
|
|
case current_settings.controllertype of
|
|
ct_none:
|
|
begin
|
|
end;
|
|
ct_pic32mx110f016b,
|
|
ct_pic32mx110f016c,
|
|
ct_pic32mx110f016d,
|
|
ct_pic32mx120f032b,
|
|
ct_pic32mx120f032c,
|
|
ct_pic32mx120f032d,
|
|
ct_pic32mx130f064b,
|
|
ct_pic32mx130f064c,
|
|
ct_pic32mx130f064d,
|
|
ct_pic32mx150f128b,
|
|
ct_pic32mx150f128c,
|
|
ct_pic32mx150f128d,
|
|
ct_pic32mx210f016b,
|
|
ct_pic32mx210f016c,
|
|
ct_pic32mx210f016d,
|
|
ct_pic32mx220f032b,
|
|
ct_pic32mx220f032c,
|
|
ct_pic32mx220f032d,
|
|
ct_pic32mx230f064b,
|
|
ct_pic32mx230f064c,
|
|
ct_pic32mx230f064d,
|
|
ct_pic32mx250f128b,
|
|
ct_pic32mx250f128c,
|
|
ct_pic32mx250f128d,
|
|
ct_pic32mx775f256h,
|
|
ct_pic32mx775f256l,
|
|
ct_pic32mx775f512h,
|
|
ct_pic32mx775f512l,
|
|
ct_pic32mx795f512h,
|
|
ct_pic32mx795f512l:
|
|
begin
|
|
with embedded_controllers[current_settings.controllertype] do
|
|
with linkres do
|
|
begin
|
|
Add('OUTPUT_FORMAT("elf32-tradlittlemips")');
|
|
Add('OUTPUT_ARCH(pic32mx)');
|
|
Add('ENTRY(_reset)');
|
|
Add('PROVIDE(_vector_spacing = 0x00000001);');
|
|
Add('_ebase_address = 0x'+IntToHex(flashbase,8)+';');
|
|
Add('_RESET_ADDR = 0xBFC00000;');
|
|
Add('_BEV_EXCPT_ADDR = 0xBFC00380;');
|
|
Add('_DBG_EXCPT_ADDR = 0xBFC00480;');
|
|
Add('_GEN_EXCPT_ADDR = _ebase_address + 0x180;');
|
|
Add('MEMORY');
|
|
Add('{');
|
|
if flashsize<>0 then
|
|
begin
|
|
Add(' kseg0_program_mem : ORIGIN = 0x'+IntToHex(flashbase,8)+', LENGTH = 0x'+IntToHex(flashsize,8));
|
|
//TODO This should better be placed into the controllertype records
|
|
Add(' kseg1_boot_mem : ORIGIN = 0xBFC00000, LENGTH = 0xbef');
|
|
Add(' config3 : ORIGIN = 0xBFC00BF0, LENGTH = 0x4');
|
|
Add(' config2 : ORIGIN = 0xBFC00BF4, LENGTH = 0x4');
|
|
Add(' config1 : ORIGIN = 0xBFC00BF8, LENGTH = 0x4');
|
|
Add(' config0 : ORIGIN = 0xBFC00BFC, LENGTH = 0x4');
|
|
end;
|
|
|
|
Add(' ram : ORIGIN = 0x' + IntToHex(srambase,8)
|
|
+ ', LENGTH = 0x' + IntToHex(sramsize,8));
|
|
|
|
Add('}');
|
|
Add('_stack_top = 0x' + IntToHex(sramsize+srambase,8) + ';');
|
|
end;
|
|
end
|
|
end;
|
|
|
|
with linkres do
|
|
begin
|
|
Add('SECTIONS');
|
|
Add('{');
|
|
Add(' .reset _RESET_ADDR :');
|
|
Add(' {');
|
|
Add(' KEEP(*(.reset .reset.*))');
|
|
Add(' KEEP(*(.startup .startup.*))');
|
|
Add(' } > kseg1_boot_mem');
|
|
Add(' .bev_excpt _BEV_EXCPT_ADDR :');
|
|
Add(' {');
|
|
Add(' KEEP(*(.bev_handler))');
|
|
Add(' } > kseg1_boot_mem');
|
|
|
|
Add(' .text :');
|
|
Add(' {');
|
|
Add(' _text_start = .;');
|
|
Add(' . = _text_start + 0x180;');
|
|
Add(' KEEP(*(.gen_handler))');
|
|
Add(' . = _text_start + 0x200;');
|
|
Add(' KEEP(*(.init .init.*))');
|
|
Add(' *(.text .text.*)');
|
|
Add(' *(.strings)');
|
|
Add(' *(.rodata .rodata.*)');
|
|
Add(' *(.comment)');
|
|
Add(' _etext = .;');
|
|
if embedded_controllers[current_settings.controllertype].flashsize<>0 then
|
|
begin
|
|
Add(' } >kseg0_program_mem');
|
|
end
|
|
else
|
|
begin
|
|
Add(' } >ram');
|
|
end;
|
|
Add(' .note.gnu.build-id : { *(.note.gnu.build-id) }');
|
|
|
|
Add(' .data :');
|
|
Add(' {');
|
|
Add(' _data = .;');
|
|
Add(' *(.data .data.*)');
|
|
Add(' KEEP (*(.fpc .fpc.n_version .fpc.n_links))');
|
|
Add(' . = .;');
|
|
Add(' _gp = ALIGN(16) + 0x7ff0;');
|
|
Add(' _edata = .;');
|
|
if embedded_controllers[current_settings.controllertype].flashsize<>0 then
|
|
begin
|
|
Add(' } >ram AT >kseg0_program_mem');
|
|
end
|
|
else
|
|
begin
|
|
Add(' } >ram');
|
|
end;
|
|
Add(' .config_BFC00BF0 : {');
|
|
Add(' KEEP(*(.config_BFC00BF0))');
|
|
Add(' } > config3');
|
|
Add(' .config_BFC00BF4 : {');
|
|
Add(' KEEP(*(.config_BFC00BF4))');
|
|
Add(' } > config2');
|
|
Add(' .config_BFC00BF8 : {');
|
|
Add(' KEEP(*(.config_BFC00BF8))');
|
|
Add(' } > config1');
|
|
Add(' .config_BFC00BFC : {');
|
|
Add(' KEEP(*(.config_BFC00BFC))');
|
|
Add(' } > config0');
|
|
Add(' .bss :');
|
|
Add(' {');
|
|
Add(' _bss_start = .;');
|
|
Add(' *(.bss .bss.*)');
|
|
Add(' *(COMMON)');
|
|
Add(' } >ram');
|
|
Add('. = ALIGN(4);');
|
|
Add('_bss_end = . ;');
|
|
Add(' .comment 0 : { *(.comment) }');
|
|
Add(' /* DWARF debug sections.');
|
|
Add(' Symbols in the DWARF debugging sections are relative to the beginning');
|
|
Add(' of the section so we begin them at 0. */');
|
|
Add(' /* DWARF 1 */');
|
|
Add(' .debug 0 : { *(.debug) }');
|
|
Add(' .line 0 : { *(.line) }');
|
|
Add(' /* GNU DWARF 1 extensions */');
|
|
Add(' .debug_srcinfo 0 : { *(.debug_srcinfo) }');
|
|
Add(' .debug_sfnames 0 : { *(.debug_sfnames) }');
|
|
Add(' /* DWARF 1.1 and DWARF 2 */');
|
|
Add(' .debug_aranges 0 : { *(.debug_aranges) }');
|
|
Add(' .debug_pubnames 0 : { *(.debug_pubnames) }');
|
|
Add(' /* DWARF 2 */');
|
|
Add(' .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }');
|
|
Add(' .debug_abbrev 0 : { *(.debug_abbrev) }');
|
|
Add(' /DISCARD/ : { *(.debug_line) }');
|
|
Add(' .debug_frame 0 : { *(.debug_frame) }');
|
|
Add(' .debug_str 0 : { *(.debug_str) }');
|
|
Add(' /DISCARD/ : { *(.debug_loc) }');
|
|
Add(' .debug_macinfo 0 : { *(.debug_macinfo) }');
|
|
Add(' /* SGI/MIPS DWARF 2 extensions */');
|
|
Add(' .debug_weaknames 0 : { *(.debug_weaknames) }');
|
|
Add(' .debug_funcnames 0 : { *(.debug_funcnames) }');
|
|
Add(' .debug_typenames 0 : { *(.debug_typenames) }');
|
|
Add(' .debug_varnames 0 : { *(.debug_varnames) }');
|
|
Add(' /* DWARF 3 */');
|
|
Add(' .debug_pubtypes 0 : { *(.debug_pubtypes) }');
|
|
Add(' .debug_ranges 0 : { *(.debug_ranges) }');
|
|
Add(' .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }');
|
|
Add(' .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }');
|
|
Add(' .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }');
|
|
Add(' .mdebug.abi32 : { KEEP(*(.mdebug.abi32)) }');
|
|
Add(' .mdebug.abiN32 : { KEEP(*(.mdebug.abiN32)) }');
|
|
Add(' .mdebug.abi64 : { KEEP(*(.mdebug.abi64)) }');
|
|
Add(' .mdebug.abiO64 : { KEEP(*(.mdebug.abiO64)) }');
|
|
Add(' .mdebug.eabi32 : { KEEP(*(.mdebug.eabi32)) }');
|
|
Add(' .mdebug.eabi64 : { KEEP(*(.mdebug.eabi64)) }');
|
|
Add(' /DISCARD/ : { *(.rel.dyn) }');
|
|
Add(' /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }');
|
|
Add('}');
|
|
Add('_end = .;');
|
|
end;
|
|
{$endif MIPSEL}
|
|
|
|
{$ifdef RISCV32}
|
|
with linkres do
|
|
begin
|
|
Add('OUTPUT_ARCH("riscv")');
|
|
Add('ENTRY(_START)');
|
|
Add('MEMORY');
|
|
with embedded_controllers[current_settings.controllertype] do
|
|
begin
|
|
Add('{');
|
|
Add(' flash (rx) : ORIGIN = 0x'+IntToHex(flashbase,6)+', LENGTH = 0x'+IntToHex(flashsize,6));
|
|
Add(' ram (rw!x) : ORIGIN = 0x'+IntToHex(srambase,6)+', LENGTH = 0x'+IntToHex(sramsize,6));
|
|
Add('}');
|
|
Add('_stack_top = 0x' + IntToHex(srambase+sramsize-1,4) + ';');
|
|
end;
|
|
Add('SECTIONS');
|
|
Add('{');
|
|
Add(' .text :');
|
|
Add(' {');
|
|
Add(' _text_start = .;');
|
|
Add(' KEEP(*(.init .init.*))');
|
|
Add(' *(.text .text.*)');
|
|
Add(' *(.strings)');
|
|
Add(' *(.rodata .rodata.*)');
|
|
Add(' *(.comment)');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' _etext = .;');
|
|
if embedded_controllers[current_settings.controllertype].flashsize<>0 then
|
|
begin
|
|
Add(' } >flash');
|
|
//Add(' .note.gnu.build-id : { *(.note.gnu.build-id) } >flash ');
|
|
end
|
|
else
|
|
begin
|
|
Add(' } >ram');
|
|
//Add(' .note.gnu.build-id : { *(.note.gnu.build-id) } >ram ');
|
|
end;
|
|
|
|
Add(' .data :');
|
|
Add(' {');
|
|
Add(' _data = .;');
|
|
Add(' *(.data .data.*)');
|
|
Add(' KEEP (*(.fpc .fpc.n_version .fpc.n_links))');
|
|
Add(' _edata = .;');
|
|
if embedded_controllers[current_settings.controllertype].flashsize<>0 then
|
|
begin
|
|
Add(' } >ram AT >flash');
|
|
end
|
|
else
|
|
begin
|
|
Add(' } >ram');
|
|
end;
|
|
Add(' .bss :');
|
|
Add(' {');
|
|
Add(' _bss_start = .;');
|
|
Add(' *(.bss .bss.*)');
|
|
Add(' *(COMMON)');
|
|
Add(' } >ram');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' _bss_end = . ;');
|
|
Add(' /* Stabs debugging sections. */');
|
|
Add(' .stab 0 : { *(.stab) }');
|
|
Add(' .stabstr 0 : { *(.stabstr) }');
|
|
Add(' .stab.excl 0 : { *(.stab.excl) }');
|
|
Add(' .stab.exclstr 0 : { *(.stab.exclstr) }');
|
|
Add(' .stab.index 0 : { *(.stab.index) }');
|
|
Add(' .stab.indexstr 0 : { *(.stab.indexstr) }');
|
|
Add(' .comment 0 : { *(.comment) }');
|
|
Add(' /* DWARF debug sections.');
|
|
Add(' Symbols in the DWARF debugging sections are relative to the beginning');
|
|
Add(' of the section so we begin them at 0. */');
|
|
Add(' /* DWARF 1 */');
|
|
Add(' .debug 0 : { *(.debug) }');
|
|
Add(' .line 0 : { *(.line) }');
|
|
Add(' /* GNU DWARF 1 extensions */');
|
|
Add(' .debug_srcinfo 0 : { *(.debug_srcinfo) }');
|
|
Add(' .debug_sfnames 0 : { *(.debug_sfnames) }');
|
|
Add(' /* DWARF 1.1 and DWARF 2 */');
|
|
Add(' .debug_aranges 0 : { *(.debug_aranges) }');
|
|
Add(' .debug_pubnames 0 : { *(.debug_pubnames) }');
|
|
Add(' /* DWARF 2 */');
|
|
Add(' .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }');
|
|
Add(' .debug_abbrev 0 : { *(.debug_abbrev) }');
|
|
Add(' .debug_line 0 : { *(.debug_line) }');
|
|
Add(' .debug_frame 0 : { *(.debug_frame) }');
|
|
Add(' .debug_str 0 : { *(.debug_str) }');
|
|
Add(' .debug_loc 0 : { *(.debug_loc) }');
|
|
Add(' .debug_macinfo 0 : { *(.debug_macinfo) }');
|
|
Add(' /* SGI/MIPS DWARF 2 extensions */');
|
|
Add(' .debug_weaknames 0 : { *(.debug_weaknames) }');
|
|
Add(' .debug_funcnames 0 : { *(.debug_funcnames) }');
|
|
Add(' .debug_typenames 0 : { *(.debug_typenames) }');
|
|
Add(' .debug_varnames 0 : { *(.debug_varnames) }');
|
|
Add(' /* DWARF 3 */');
|
|
Add(' .debug_pubtypes 0 : { *(.debug_pubtypes) }');
|
|
Add(' .debug_ranges 0 : { *(.debug_ranges) }');
|
|
|
|
Add('}');
|
|
Add('_end = .;');
|
|
|
|
end;
|
|
{$endif RISCV32}
|
|
|
|
{$ifdef XTENSA}
|
|
with linkres do
|
|
begin
|
|
if current_settings.controllertype = ct_esp32 then
|
|
begin
|
|
//Add('SECTIONS');
|
|
//Add('{');
|
|
//Add(' .data :');
|
|
//Add(' {');
|
|
//Add(' KEEP (*(.fpc .fpc.n_version .fpc.n_links))');
|
|
//Add(' }');
|
|
//Add('}');
|
|
Add('/* esp32_out.ld */');
|
|
Add('MEMORY');
|
|
Add('{');
|
|
Add(' iram0_0_seg (RX) : org = 0x40080000, len = 0x20000');
|
|
Add(' iram0_2_seg (RX) : org = 0x400D0020, len = 0x330000-0x20');
|
|
Add(' dram0_0_seg (RW) : org = 0x3FFB0000 + 0x0,');
|
|
Add(' len = 0x2c200 - 0x0');
|
|
Add(' drom0_0_seg (R) : org = 0x3F400020, len = 0x400000-0x20');
|
|
Add(' rtc_iram_seg(RWX) : org = 0x400C0000, len = 0x2000');
|
|
Add(' rtc_data_seg(RW) : org = 0x3ff80000, len = 0x2000 - 0');
|
|
Add(' rtc_slow_seg(RW) : org = 0x50000000 + 0,');
|
|
Add(' len = 0x1000 - 0');
|
|
Add(' extern_ram_seg(RWX) : org = 0x3F800000,');
|
|
Add(' len = 0x400000');
|
|
Add('}');
|
|
Add('_static_data_end = _bss_end;');
|
|
Add('_heap_end = 0x40000000 - 0x0;');
|
|
Add('_data_seg_org = ORIGIN(rtc_data_seg);');
|
|
Add('REGION_ALIAS("rtc_data_location", rtc_slow_seg );');
|
|
Add(' REGION_ALIAS("default_code_seg", iram0_2_seg);');
|
|
Add(' REGION_ALIAS("default_rodata_seg", drom0_0_seg);');
|
|
Add('/* esp32.project.ld */');
|
|
Add('ENTRY(call_start_cpu0);');
|
|
Add('SECTIONS');
|
|
Add('{');
|
|
Add(' .rtc.text :');
|
|
Add(' {');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' *(EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .rtc.literal EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .rtc.text EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .rtc.text.*)');
|
|
Add(' *libsoc.a:uart_hal_iram.*( .rtc.literal .rtc.text .rtc.text.*)');
|
|
Add(' *rtc_wake_stub*.*(.literal .text .literal.* .text.*)');
|
|
Add(' _rtc_text_end = ABSOLUTE(.);');
|
|
Add(' } > rtc_iram_seg');
|
|
Add(' .rtc.dummy :');
|
|
Add(' {');
|
|
Add(' _rtc_dummy_start = ABSOLUTE(.);');
|
|
Add(' _rtc_fast_start = ABSOLUTE(.);');
|
|
Add(' . = SIZEOF(.rtc.text);');
|
|
Add(' _rtc_dummy_end = ABSOLUTE(.);');
|
|
Add(' } > rtc_data_seg');
|
|
Add(' .rtc.force_fast :');
|
|
Add(' {');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' _rtc_force_fast_start = ABSOLUTE(.);');
|
|
Add(' *(.rtc.force_fast .rtc.force_fast.*)');
|
|
Add(' . = ALIGN(4) ;');
|
|
Add(' _rtc_force_fast_end = ABSOLUTE(.);');
|
|
Add(' } > rtc_data_seg');
|
|
Add(' .rtc.data :');
|
|
Add(' {');
|
|
Add(' _rtc_data_start = ABSOLUTE(.);');
|
|
Add(' *(EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .rtc.data EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .rtc.data.* EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .rtc.rodata EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .rtc.rodata.*)');
|
|
Add(' *libsoc.a:uart_hal_iram.*( .rtc.data .rtc.data.* .rtc.rodata .rtc.rodata.*)');
|
|
Add(' *rtc_wake_stub*.*(.data .rodata .data.* .rodata.* .bss .bss.*)');
|
|
Add(' _rtc_data_end = ABSOLUTE(.);');
|
|
Add(' } > rtc_data_location');
|
|
Add(' .rtc.bss (NOLOAD) :');
|
|
Add(' {');
|
|
Add(' _rtc_bss_start = ABSOLUTE(.);');
|
|
Add(' *rtc_wake_stub*.*(.bss .bss.*)');
|
|
Add(' *rtc_wake_stub*.*(COMMON)');
|
|
Add(' *(EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .rtc.bss)');
|
|
Add(' *libsoc.a:uart_hal_iram.*( .rtc.bss)');
|
|
Add(' _rtc_bss_end = ABSOLUTE(.);');
|
|
Add(' } > rtc_data_location');
|
|
Add(' .rtc_noinit (NOLOAD):');
|
|
Add(' {');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' _rtc_noinit_start = ABSOLUTE(.);');
|
|
Add(' *(.rtc_noinit .rtc_noinit.*)');
|
|
Add(' . = ALIGN(4) ;');
|
|
Add(' _rtc_noinit_end = ABSOLUTE(.);');
|
|
Add(' } > rtc_data_location');
|
|
Add(' .rtc.force_slow :');
|
|
Add(' {');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' _rtc_force_slow_start = ABSOLUTE(.);');
|
|
Add(' *(.rtc.force_slow .rtc.force_slow.*)');
|
|
Add(' . = ALIGN(4) ;');
|
|
Add(' _rtc_force_slow_end = ABSOLUTE(.);');
|
|
Add(' } > rtc_slow_seg');
|
|
Add(' _rtc_slow_length = (ORIGIN(rtc_slow_seg) == ORIGIN(rtc_data_location))');
|
|
Add(' ? (_rtc_force_slow_end - _rtc_data_start)');
|
|
Add(' : (_rtc_force_slow_end - _rtc_force_slow_start);');
|
|
Add(' _rtc_fast_length = (ORIGIN(rtc_slow_seg) == ORIGIN(rtc_data_location))');
|
|
Add(' ? (_rtc_force_fast_end - _rtc_fast_start)');
|
|
Add(' : (_rtc_noinit_end - _rtc_fast_start);');
|
|
Add(' ASSERT((_rtc_slow_length <= LENGTH(rtc_slow_seg)),');
|
|
Add(' "RTC_SLOW segment data does not fit.")');
|
|
Add(' ASSERT((_rtc_fast_length <= LENGTH(rtc_data_seg)),');
|
|
Add(' "RTC_FAST segment data does not fit.")');
|
|
Add(' .iram0.vectors :');
|
|
Add(' {');
|
|
Add(' _iram_start = ABSOLUTE(.);');
|
|
Add(' /* Vectors go to IRAM */');
|
|
Add(' _init_start = ABSOLUTE(.);');
|
|
Add(' /* Vectors according to builds/RF-2015.2-win32/esp108_v1_2_s5_512int_2/config.html */');
|
|
Add(' . = 0x0;');
|
|
Add(' KEEP(*(.WindowVectors.text));');
|
|
Add(' . = 0x180;');
|
|
Add(' KEEP(*(.Level2InterruptVector.text));');
|
|
Add(' . = 0x1c0;');
|
|
Add(' KEEP(*(.Level3InterruptVector.text));');
|
|
Add(' . = 0x200;');
|
|
Add(' KEEP(*(.Level4InterruptVector.text));');
|
|
Add(' . = 0x240;');
|
|
Add(' KEEP(*(.Level5InterruptVector.text));');
|
|
Add(' . = 0x280;');
|
|
Add(' KEEP(*(.DebugExceptionVector.text));');
|
|
Add(' . = 0x2c0;');
|
|
Add(' KEEP(*(.NMIExceptionVector.text));');
|
|
Add(' . = 0x300;');
|
|
Add(' KEEP(*(.KernelExceptionVector.text));');
|
|
Add(' . = 0x340;');
|
|
Add(' KEEP(*(.UserExceptionVector.text));');
|
|
Add(' . = 0x3C0;');
|
|
Add(' KEEP(*(.DoubleExceptionVector.text));');
|
|
Add(' . = 0x400;');
|
|
Add(' *(.*Vector.literal)');
|
|
Add(' *(.UserEnter.literal);');
|
|
Add(' *(.UserEnter.text);');
|
|
Add(' . = ALIGN (16);');
|
|
Add(' *(.entry.text)');
|
|
Add(' *(.init.literal)');
|
|
Add(' *(.init)');
|
|
Add(' _init_end = ABSOLUTE(.);');
|
|
Add(' } > iram0_0_seg');
|
|
Add(' .iram0.text :');
|
|
Add(' {');
|
|
Add(' _iram_text_start = ABSOLUTE(.);');
|
|
Add(' *(EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .iram1 EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .iram1.*)');
|
|
Add(' *libsoc.a:rtc_init.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:rtc_time.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:ledc_hal_iram.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:rtc_wdt.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:spi_flash_hal_gpspi.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:spi_slave_hal_iram.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:lldesc.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:rtc_periph.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:rtc_pm.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:rtc_clk_init.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:uart_hal_iram.*( .iram1 .iram1.*)');
|
|
Add(' *libsoc.a:spi_hal_iram.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:rtc_sleep.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:spi_flash_hal_iram.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:cpu_util.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:rtc_clk.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libsoc.a:i2c_hal_iram.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libgcc.a:_divsf3.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libgcc.a:lib2funcs.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libxtensa.a:eri.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libspi_flash.a:spi_flash_rom_patch.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libspi_flash.a:spi_flash_chip_issi.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libspi_flash.a:spi_flash_chip_gd.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libspi_flash.a:spi_flash_chip_generic.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libspi_flash.a:memspi_host_driver.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libesp32.a:panic.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libnewlib.a:heap.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libhal.a:( .literal .literal.* .text .text.*)');
|
|
Add(' *libesp_ringbuf.a:( .literal .literal.* .text .text.*)');
|
|
Add(' *libfreertos.a:( .literal .literal.* .text .text.*)');
|
|
Add(' *libgcov.a:( .literal .literal.* .text .text.*)');
|
|
Add(' *librtc.a:( .literal .literal.* .text .text.*)');
|
|
Add(' *libheap.a:multi_heap_poisoning.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libheap.a:multi_heap.*( .literal .literal.* .text .text.*)');
|
|
Add(' _iram_text_end = ABSOLUTE(.);');
|
|
Add(' } > iram0_0_seg');
|
|
Add(' .dram0.data :');
|
|
Add(' {');
|
|
Add(' _data_start = ABSOLUTE(.);');
|
|
Add(' _bt_data_start = ABSOLUTE(.);');
|
|
Add(' *libbt.a:(.data .data.*)');
|
|
Add(' . = ALIGN (4);');
|
|
Add(' _bt_data_end = ABSOLUTE(.);');
|
|
Add(' _btdm_data_start = ABSOLUTE(.);');
|
|
Add(' *libbtdm_app.a:(.data .data.*)');
|
|
Add(' . = ALIGN (4);');
|
|
Add(' _btdm_data_end = ABSOLUTE(.);');
|
|
Add(' _nimble_data_start = ABSOLUTE(.);');
|
|
Add(' *libnimble.a:(.data .data.*)');
|
|
Add(' . = ALIGN (4);');
|
|
Add(' _nimble_data_end = ABSOLUTE(.);');
|
|
Add(' KEEP (*(.fpc .fpc.n_version .fpc.n_links))');
|
|
Add(' *(.gnu.linkonce.d.*)');
|
|
Add(' *(.data1)');
|
|
Add(' *(.sdata)');
|
|
Add(' *(.sdata.*)');
|
|
Add(' *(.gnu.linkonce.s.*)');
|
|
Add(' *(.sdata2)');
|
|
Add(' *(.sdata2.*)');
|
|
Add(' *(.gnu.linkonce.s2.*)');
|
|
Add(' *(.jcr)');
|
|
Add(' *(EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .data EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .data.* EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .dram1 EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .dram1.*)');
|
|
Add(' *libsoc.a:spi_flash_hal_gpspi.*( .rodata .rodata.*)');
|
|
Add(' *libsoc.a:uart_hal_iram.*( .data .data.* .dram1 .dram1.*)');
|
|
Add(' *libsoc.a:spi_flash_hal_iram.*( .rodata .rodata.*)');
|
|
Add(' *libsoc.a:rtc_clk.*( .rodata .rodata.*)');
|
|
Add(' *libsoc.a:i2c_hal_iram.*( .rodata .rodata.*)');
|
|
Add(' *libgcc.a:_divsf3.*( .rodata .rodata.*)');
|
|
Add(' *libspi_flash.a:spi_flash_chip_issi.*( .rodata .rodata.*)');
|
|
Add(' *libspi_flash.a:spi_flash_chip_gd.*( .rodata .rodata.*)');
|
|
Add(' *libspi_flash.a:spi_flash_chip_generic.*( .rodata .rodata.*)');
|
|
Add(' *libspi_flash.a:memspi_host_driver.*( .rodata .rodata.*)');
|
|
Add(' *libphy.a:( .rodata .rodata.*)');
|
|
Add(' *libesp32.a:panic.*( .rodata .rodata.*)');
|
|
Add(' *libnewlib.a:heap.*( .rodata .rodata.*)');
|
|
Add(' *libgcov.a:( .rodata .rodata.*)');
|
|
Add(' *libheap.a:multi_heap_poisoning.*( .rodata .rodata.*)');
|
|
Add(' *libheap.a:multi_heap.*( .rodata .rodata.*)');
|
|
Add(' _data_end = ABSOLUTE(.);');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' } > dram0_0_seg');
|
|
Add(' .noinit (NOLOAD):');
|
|
Add(' {');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' _noinit_start = ABSOLUTE(.);');
|
|
Add(' *(.noinit .noinit.*)');
|
|
Add(' . = ALIGN(4) ;');
|
|
Add(' _noinit_end = ABSOLUTE(.);');
|
|
Add(' } > dram0_0_seg');
|
|
Add(' .dram0.bss (NOLOAD) :');
|
|
Add(' {');
|
|
Add(' . = ALIGN (8);');
|
|
Add(' _bss_start = ABSOLUTE(.);');
|
|
Add(' *(.ext_ram.bss*)');
|
|
Add(' _bt_bss_start = ABSOLUTE(.);');
|
|
Add(' *libbt.a:(.bss .bss.* COMMON)');
|
|
Add(' . = ALIGN (4);');
|
|
Add(' _bt_bss_end = ABSOLUTE(.);');
|
|
Add(' _btdm_bss_start = ABSOLUTE(.);');
|
|
Add(' *libbtdm_app.a:(.bss .bss.* COMMON)');
|
|
Add(' . = ALIGN (4);');
|
|
Add(' _btdm_bss_end = ABSOLUTE(.);');
|
|
Add(' _nimble_bss_start = ABSOLUTE(.);');
|
|
Add(' *libnimble.a:(.bss .bss.* COMMON)');
|
|
Add(' . = ALIGN (4);');
|
|
Add(' _nimble_bss_end = ABSOLUTE(.);');
|
|
Add(' *(EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .bss EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .bss.* EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) COMMON)');
|
|
Add(' *libsoc.a:uart_hal_iram.*( .bss .bss.* COMMON)');
|
|
Add(' *(.dynsbss)');
|
|
Add(' *(.sbss)');
|
|
Add(' *(.sbss.*)');
|
|
Add(' *(.gnu.linkonce.sb.*)');
|
|
Add(' *(.scommon)');
|
|
Add(' *(.sbss2)');
|
|
Add(' *(.sbss2.*)');
|
|
Add(' *(.gnu.linkonce.sb2.*)');
|
|
Add(' *(.dynbss)');
|
|
Add(' *(.share.mem)');
|
|
Add(' *(.gnu.linkonce.b.*)');
|
|
Add(' . = ALIGN (8);');
|
|
Add(' _bss_end = ABSOLUTE(.);');
|
|
Add(' } > dram0_0_seg');
|
|
Add(' ASSERT(((_bss_end - ORIGIN(dram0_0_seg)) <= LENGTH(dram0_0_seg)),');
|
|
Add(' "DRAM segment data does not fit.")');
|
|
Add(' .flash.rodata :');
|
|
Add(' {');
|
|
Add(' _rodata_start = ABSOLUTE(.);');
|
|
Add(' *(.rodata_desc .rodata_desc.*) /* Should be the first. App version info. DO NOT PUT ANYTHING BEFORE IT! */');
|
|
Add(' *(.rodata_custom_desc .rodata_custom_desc.*) /* Should be the second. Custom app version info. DO NOT PUT ANYTHING BEFORE IT! */');
|
|
Add(' *(EXCLUDE_FILE(*libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_clk.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libgcc.a:_divsf3.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_issi.* *libphy.a *libesp32.a:panic.* *libnewlib.a:heap.* *libgcov.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.*) .rodata EXCLUDE_FILE(*libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_clk.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libgcc.a:_divsf3.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_issi.* *libphy.a *libesp32.a:panic.* *libnewlib.a:heap.* *libgcov.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.*) .rodata.*)');
|
|
Add(' *libsoc.a:uart_hal_iram.*( .rodata .rodata.*)');
|
|
Add(' *(.irom1.text) /* catch stray ICACHE_RODATA_ATTR */');
|
|
Add(' *(.gnu.linkonce.r.*)');
|
|
Add(' *(.rodata1)');
|
|
Add(' __XT_EXCEPTION_TABLE_ = ABSOLUTE(.);');
|
|
Add(' *(.xt_except_table)');
|
|
Add(' *(.gcc_except_table .gcc_except_table.*)');
|
|
Add(' *(.gnu.linkonce.e.*)');
|
|
Add(' *(.gnu.version_r)');
|
|
Add(' . = (. + 3) & ~ 3;');
|
|
Add(' __eh_frame = ABSOLUTE(.);');
|
|
Add(' KEEP(*(.eh_frame))');
|
|
Add(' . = (. + 7) & ~ 3;');
|
|
Add(' __init_array_start = ABSOLUTE(.);');
|
|
Add(' KEEP (*(EXCLUDE_FILE (*crtend.* *crtbegin.*) .ctors .ctors.*))');
|
|
Add(' __init_array_end = ABSOLUTE(.);');
|
|
Add(' KEEP (*crtbegin.*(.dtors))');
|
|
Add(' KEEP (*(EXCLUDE_FILE (*crtend.*) .dtors))');
|
|
Add(' KEEP (*(SORT(.dtors.*)))');
|
|
Add(' KEEP (*(.dtors))');
|
|
Add(' __XT_EXCEPTION_DESCS_ = ABSOLUTE(.);');
|
|
Add(' *(.xt_except_desc)');
|
|
Add(' *(.gnu.linkonce.h.*)');
|
|
Add(' __XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);');
|
|
Add(' *(.xt_except_desc_end)');
|
|
Add(' *(.dynamic)');
|
|
Add(' *(.gnu.version_d)');
|
|
Add(' soc_reserved_memory_region_start = ABSOLUTE(.);');
|
|
Add(' KEEP (*(.reserved_memory_address))');
|
|
Add(' soc_reserved_memory_region_end = ABSOLUTE(.);');
|
|
Add(' _rodata_end = ABSOLUTE(.);');
|
|
Add(' _lit4_start = ABSOLUTE(.);');
|
|
Add(' *(*.lit4)');
|
|
Add(' *(.lit4.*)');
|
|
Add(' *(.gnu.linkonce.lit4.*)');
|
|
Add(' _lit4_end = ABSOLUTE(.);');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' _thread_local_start = ABSOLUTE(.);');
|
|
Add(' *(.tdata)');
|
|
Add(' *(.tdata.*)');
|
|
Add(' *(.tbss)');
|
|
Add(' *(.tbss.*)');
|
|
Add(' _thread_local_end = ABSOLUTE(.);');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' } >default_rodata_seg');
|
|
Add(' .flash.text :');
|
|
Add(' {');
|
|
Add(' _stext = .;');
|
|
Add(' _text_start = ABSOLUTE(.);');
|
|
Add(' *(EXCLUDE_FILE(*libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_sleep.* *libsoc.a:spi_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_periph.* *libsoc.a:lldesc.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_wdt.* *libsoc.a:ledc_hal_iram.* *libsoc.a:rtc_time.* *libsoc.a:rtc_init.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libxtensa.a:eri.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libesp32.a:panic.* *libnewlib.a:heap.* *libhal.a *libesp_ringbuf.a *libfreertos.a *libgcov.a *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.*) .literal EXCLUDE_FILE(*libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_sleep.* *libsoc.a:spi_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_periph.* *libsoc.a:lldesc.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_wdt.* *libsoc.a:ledc_hal_iram.* *libsoc.a:rtc_time.* *libsoc.a:rtc_init.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libxtensa.a:eri.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libesp32.a:panic.* *libnewlib.a:heap.* *libhal.a *libesp_ringbuf.a *libfreertos.a *libgcov.a *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.*) .literal.* EXCLUDE_FILE(*libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_sleep.* *libsoc.a:spi_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_periph.* *libsoc.a:lldesc.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_wdt.* *libsoc.a:ledc_hal_iram.* *libsoc.a:rtc_time.* *libsoc.a:rtc_init.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libxtensa.a:eri.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libesp32.a:panic.* *libnewlib.a:heap.* *libhal.a *libesp_ringbuf.a *libfreertos.a *libgcov.a *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.*) .text EXCLUDE_FILE(*libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_sleep.* *libsoc.a:spi_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_periph.* *libsoc.a:lldesc.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_wdt.* *libsoc.a:ledc_hal_iram.* *libsoc.a:rtc_time.* *libsoc.a:rtc_init.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libxtensa.a:eri.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libesp32.a:panic.* *libnewlib.a:heap.* *libhal.a *libesp_ringbuf.a *libfreertos.a *libgcov.a *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.*) .text.* EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .wifi0iram EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .wifi0iram.* EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .wifirxiram EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .wifirxiram.*)');
|
|
Add(' *libsoc.a:uart_hal_iram.*( .literal .literal.* .text .text.* .wifi0iram .wifi0iram.* .wifirxiram .wifirxiram.*)');
|
|
Add(' *(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)');
|
|
Add(' *(.irom0.text) /* catch stray ICACHE_RODATA_ATTR */');
|
|
Add(' *(.fini.literal)');
|
|
Add(' *(.fini)');
|
|
Add(' *(.gnu.version)');
|
|
Add(' _text_end = ABSOLUTE(.);');
|
|
Add(' _etext = .;');
|
|
Add(' _flash_cache_start = ABSOLUTE(0);');
|
|
Add(' } >default_code_seg');
|
|
Add(' .iram0.text_end (NOLOAD) :');
|
|
Add(' {');
|
|
Add(' . = ALIGN (4);');
|
|
Add(' _iram_end = ABSOLUTE(.);');
|
|
Add(' } > iram0_0_seg');
|
|
Add(' .dram0.heap_start (NOLOAD) :');
|
|
Add(' {');
|
|
Add(' . = ALIGN (8);');
|
|
Add(' _heap_start = ABSOLUTE(.);');
|
|
Add(' } > dram0_0_seg');
|
|
Add('}');
|
|
Add('ASSERT(((_iram_text_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),');
|
|
Add(' "IRAM0 segment data does not fit.")');
|
|
Add('ASSERT(((_heap_start - ORIGIN(dram0_0_seg)) <= LENGTH(dram0_0_seg)),');
|
|
Add(' "DRAM segment data does not fit.")');
|
|
Add('/* esp32.rom.ld */');
|
|
Add('PROVIDE ( Add2SelfBigHex256 = 0x40015b7c );');
|
|
Add('PROVIDE ( AddBigHex256 = 0x40015b28 );');
|
|
Add('PROVIDE ( AddBigHexModP256 = 0x40015c98 );');
|
|
Add('PROVIDE ( AddP256 = 0x40015c74 );');
|
|
Add('PROVIDE ( AddPdiv2_256 = 0x40015ce0 );');
|
|
Add('PROVIDE ( app_gpio_arg = 0x3ffe003c );');
|
|
Add('PROVIDE ( app_gpio_handler = 0x3ffe0040 );');
|
|
Add('PROVIDE ( BasePoint_x_256 = 0x3ff97488 );');
|
|
Add('PROVIDE ( BasePoint_y_256 = 0x3ff97468 );');
|
|
Add('PROVIDE ( bigHexInversion256 = 0x400168f0 );');
|
|
Add('PROVIDE ( bigHexP256 = 0x3ff973bc );');
|
|
Add('PROVIDE ( btdm_r_ble_bt_handler_tab_p_get = 0x40019b0c );');
|
|
Add('PROVIDE ( btdm_r_btdm_option_data_p_get = 0x40010004 );');
|
|
Add('PROVIDE ( btdm_r_btdm_rom_version_get = 0x40010078 );');
|
|
Add('PROVIDE ( btdm_r_data_init = 0x4001002c );');
|
|
Add('PROVIDE ( btdm_r_import_rf_phy_func_p_get = 0x40054298 );');
|
|
Add('PROVIDE ( btdm_r_ip_func_p_get = 0x40019af0 );');
|
|
Add('PROVIDE ( btdm_r_ip_func_p_set = 0x40019afc );');
|
|
Add('PROVIDE ( btdm_r_modules_func_p_get = 0x4005427c );');
|
|
Add('PROVIDE ( btdm_r_modules_func_p_set = 0x40054270 );');
|
|
Add('PROVIDE ( btdm_r_plf_func_p_set = 0x40054288 );');
|
|
Add('PROVIDE ( bt_util_buf_env = 0x3ffb8bd4 );');
|
|
Add('PROVIDE ( cache_flash_mmu_set_rom = 0x400095e0 );');
|
|
Add('PROVIDE ( Cache_Flush_rom = 0x40009a14 );');
|
|
Add('PROVIDE ( Cache_Read_Disable_rom = 0x40009ab8 );');
|
|
Add('PROVIDE ( Cache_Read_Enable_rom = 0x40009a84 );');
|
|
Add('PROVIDE ( Cache_Read_Init_rom = 0x40009950 );');
|
|
Add('PROVIDE ( cache_sram_mmu_set_rom = 0x400097f4 );');
|
|
Add('PROVIDE ( calc_rtc_memory_crc = 0x40008170 );');
|
|
Add('PROVIDE ( __clear_cache = 0x40063860 );');
|
|
Add('PROVIDE ( co_default_bdaddr = 0x3ffae704 );');
|
|
Add('PROVIDE ( co_null_bdaddr = 0x3ffb80e0 );');
|
|
Add('PROVIDE ( co_sca2ppm = 0x3ff971e8 );');
|
|
Add('PROVIDE ( crc16_be = 0x4005d09c );');
|
|
Add('PROVIDE ( crc16_le = 0x4005d05c );');
|
|
Add('PROVIDE ( crc32_be = 0x4005d024 );');
|
|
Add('PROVIDE ( crc32_le = 0x4005cfec );');
|
|
Add('PROVIDE ( crc8_be = 0x4005d114 );');
|
|
Add('PROVIDE ( crc8_le = 0x4005d0e0 );');
|
|
Add('PROVIDE ( _data_end_rom = 0x4000d5c8 );');
|
|
Add('PROVIDE ( _data_end_btdm_rom = 0x4000d4f8 );');
|
|
Add('PROVIDE ( _data_start_rom = 0x4000d4f8 );');
|
|
Add('PROVIDE ( _data_start_btdm_rom = 0x4000d4f4 );');
|
|
Add('PROVIDE ( _data_start_btdm = 0x3ffae6e0);');
|
|
Add('PROVIDE ( _data_end_btdm = 0x3ffaff10);');
|
|
Add('PROVIDE ( _bss_start_btdm = 0x3ffb8000);');
|
|
Add('PROVIDE ( _bss_end_btdm = 0x3ffbff70);');
|
|
Add('PROVIDE ( dbg_default_handler = 0x3ff97218 );');
|
|
Add('PROVIDE ( dbg_default_state = 0x3ff97220 );');
|
|
Add('PROVIDE ( dbg_state = 0x3ffb8d5d );');
|
|
Add('PROVIDE ( DebugE256PublicKey_x = 0x3ff97428 );');
|
|
Add('PROVIDE ( DebugE256PublicKey_y = 0x3ff97408 );');
|
|
Add('PROVIDE ( DebugE256SecretKey = 0x3ff973e8 );');
|
|
Add('PROVIDE ( debug_timer = 0x3ffe042c );');
|
|
Add('PROVIDE ( debug_timerfn = 0x3ffe0430 );');
|
|
Add('PROVIDE ( dh_group14_generator = 0x3ff9ac60 );');
|
|
Add('PROVIDE ( dh_group14_prime = 0x3ff9ab60 );');
|
|
Add('PROVIDE ( dh_group15_generator = 0x3ff9ab5f );');
|
|
Add('PROVIDE ( dh_group15_prime = 0x3ff9a9df );');
|
|
Add('PROVIDE ( dh_group16_generator = 0x3ff9a9de );');
|
|
Add('PROVIDE ( dh_group16_prime = 0x3ff9a7de );');
|
|
Add('PROVIDE ( dh_group17_generator = 0x3ff9a7dd );');
|
|
Add('PROVIDE ( dh_group17_prime = 0x3ff9a4dd );');
|
|
Add('PROVIDE ( dh_group18_generator = 0x3ff9a4dc );');
|
|
Add('PROVIDE ( dh_group18_prime = 0x3ff9a0dc );');
|
|
Add('PROVIDE ( dh_group1_generator = 0x3ff9ae03 );');
|
|
Add('PROVIDE ( dh_group1_prime = 0x3ff9ada3 );');
|
|
Add('PROVIDE ( dh_group2_generator = 0x3ff9ada2 );');
|
|
Add('PROVIDE ( dh_group2_prime = 0x3ff9ad22 );');
|
|
Add('PROVIDE ( dh_group5_generator = 0x3ff9ad21 );');
|
|
Add('PROVIDE ( dh_group5_prime = 0x3ff9ac61 );');
|
|
Add('PROVIDE ( g_rom_spiflash_dummy_len_plus = 0x3ffae290 );');
|
|
Add('PROVIDE ( ecc_env = 0x3ffb8d60 );');
|
|
Add('PROVIDE ( ecc_Jacobian_InfinityPoint256 = 0x3ff972e8 );');
|
|
Add('PROVIDE ( em_buf_env = 0x3ffb8d74 );');
|
|
Add('PROVIDE ( esp_crc8 = 0x4005d144 );');
|
|
Add('PROVIDE ( _etext = 0x4000d66c );');
|
|
Add('PROVIDE ( ets_readySet_ = 0x3ffe01f0 );');
|
|
Add('PROVIDE ( ets_startup_callback = 0x3ffe0404 );');
|
|
Add('PROVIDE ( rwip_coex_cfg = 0x3ff9914c );');
|
|
Add('PROVIDE ( rwip_priority = 0x3ff99159 );');
|
|
Add('PROVIDE ( exc_cause_table = 0x3ff991d0 );');
|
|
Add('PROVIDE ( GF_Jacobian_Point_Addition256 = 0x400163a4 );');
|
|
Add('PROVIDE ( GF_Jacobian_Point_Double256 = 0x40016260 );');
|
|
Add('PROVIDE ( GF_Point_Jacobian_To_Affine256 = 0x40016b0c );');
|
|
Add('PROVIDE ( g_phyFuns_instance = 0x3ffae0c4 );');
|
|
Add('PROVIDE ( g_rom_flashchip = 0x3ffae270 );');
|
|
Add('PROVIDE ( gTxMsg = 0x3ffe0050 );');
|
|
Add('PROVIDE ( hci_cmd_desc_root_tab = 0x3ff976d4 );');
|
|
Add('PROVIDE ( hci_cmd_desc_tab_ctrl_bb = 0x3ff97b70 );');
|
|
Add('PROVIDE ( hci_cmd_desc_tab_info_par = 0x3ff97b1c );');
|
|
Add('PROVIDE ( hci_cmd_desc_tab_le = 0x3ff97870 );');
|
|
Add('PROVIDE ( hci_cmd_desc_tab_lk_ctrl = 0x3ff97fc0 );');
|
|
Add('PROVIDE ( hci_cmd_desc_tab_lk_pol = 0x3ff97f3c );');
|
|
Add('PROVIDE ( hci_cmd_desc_tab_stat_par = 0x3ff97ac8 );');
|
|
Add('PROVIDE ( hci_cmd_desc_tab_testing = 0x3ff97a98 );');
|
|
Add('PROVIDE ( hci_cmd_desc_tab_vs = 0x3ff97714 );');
|
|
Add('PROVIDE ( hci_command_handler = 0x4004c928 );');
|
|
Add('PROVIDE ( hci_env = 0x3ffb9350 );');
|
|
Add('PROVIDE ( rwip_env = 0x3ffb8bcc );');
|
|
Add('PROVIDE ( hci_evt_dbg_desc_tab = 0x3ff9750c );');
|
|
Add('PROVIDE ( hci_evt_desc_tab = 0x3ff9751c );');
|
|
Add('PROVIDE ( hci_evt_le_desc_tab = 0x3ff974b4 );');
|
|
Add('PROVIDE ( hci_fc_env = 0x3ffb9340 );');
|
|
Add('PROVIDE ( jd_decomp = 0x400613e8 );');
|
|
Add('PROVIDE ( jd_prepare = 0x40060fa8 );');
|
|
Add('PROVIDE ( ke_env = 0x3ffb93cc );');
|
|
Add('PROVIDE ( lb_default_handler = 0x3ff982b8 );');
|
|
Add('PROVIDE ( lb_default_state_tab_p_get = 0x4001c198 );');
|
|
Add('PROVIDE ( lb_env = 0x3ffb9424 );');
|
|
Add('PROVIDE ( lb_hci_cmd_handler_tab_p_get = 0x4001c18c );');
|
|
Add('PROVIDE ( lb_state = 0x3ffb94e8 );');
|
|
Add('PROVIDE ( lc_default_handler = 0x3ff98648 );');
|
|
Add('PROVIDE ( lc_default_state_tab_p_get = 0x4002f494 );');
|
|
Add('PROVIDE ( lc_env = 0x3ffb94ec );');
|
|
Add('PROVIDE ( lc_hci_cmd_handler_tab_p_get = 0x4002f488 );');
|
|
Add('PROVIDE ( lc_state = 0x3ffb9508 );');
|
|
Add('PROVIDE ( ld_acl_br_sizes = 0x3ff98a2a );');
|
|
Add('PROVIDE ( ld_acl_br_types = 0x3ff98a36 );');
|
|
Add('PROVIDE ( ld_acl_edr_sizes = 0x3ff98a14 );');
|
|
Add('PROVIDE ( ld_acl_edr_types = 0x3ff98a22 );');
|
|
Add('PROVIDE ( ld_env = 0x3ffb9510 );');
|
|
Add('PROVIDE ( ld_pcm_settings_dft = 0x3ff98a0c );');
|
|
Add('PROVIDE ( ld_sched_params = 0x3ffb96c0 );');
|
|
Add('PROVIDE ( ld_sync_train_channels = 0x3ff98a3c );');
|
|
Add('PROVIDE ( llc_default_handler = 0x3ff98b3c );');
|
|
Add('PROVIDE ( llc_default_state_tab_p_get = 0x40046058 );');
|
|
Add('PROVIDE ( llc_env = 0x3ffb96d0 );');
|
|
Add('PROVIDE ( llc_hci_acl_data_tx_handler = 0x40042398 );');
|
|
Add('PROVIDE ( llc_hci_cmd_handler_tab_p_get = 0x40042358 );');
|
|
Add('PROVIDE ( llc_hci_command_handler = 0x40042360 );');
|
|
Add('PROVIDE ( llcp_pdu_handler_tab_p_get = 0x40043f64 );');
|
|
Add('PROVIDE ( llc_state = 0x3ffb96f8 );');
|
|
Add('PROVIDE ( lldesc_build_chain = 0x4000a850 );');
|
|
Add('PROVIDE ( lldesc_num2link = 0x4000a948 );');
|
|
Add('PROVIDE ( lldesc_set_owner = 0x4000a974 );');
|
|
Add('PROVIDE ( lld_evt_deferred_elt_push = 0x400466b4 );');
|
|
Add('PROVIDE ( lld_evt_deferred_elt_pop = 0x400466dc );');
|
|
Add('PROVIDE ( lld_evt_winsize_change = 0x40046730 );');
|
|
Add('PROVIDE ( lld_evt_rxwin_compute = 0x400467c8 );');
|
|
Add('PROVIDE ( lld_evt_slave_time_compute = 0x40046818 );');
|
|
Add('PROVIDE ( lld_evt_env = 0x3ffb9704 );');
|
|
Add('PROVIDE ( lld_evt_elt_wait_get = 0x400468e4 );');
|
|
Add('PROVIDE ( lld_evt_get_next_free_slot = 0x4004692c );');
|
|
Add('PROVIDE ( lld_pdu_adv_pk_desc_tab = 0x3ff98c70 );');
|
|
Add('PROVIDE ( lld_pdu_llcp_pk_desc_tab = 0x3ff98b68 );');
|
|
Add('PROVIDE ( lld_pdu_tx_flush_list = 0x4004a760 );');
|
|
Add('PROVIDE ( lld_pdu_pack = 0x4004ab14 );');
|
|
Add('PROVIDE ( LLM_AA_CT1 = 0x3ff98d8a );');
|
|
Add('PROVIDE ( LLM_AA_CT2 = 0x3ff98d88 );');
|
|
Add('PROVIDE ( llm_default_handler = 0x3ff98d80 );');
|
|
Add('PROVIDE ( llm_default_state_tab_p_get = 0x4004e718 );');
|
|
Add('PROVIDE ( llm_hci_cmd_handler_tab_p_get = 0x4004c920 );');
|
|
Add('PROVIDE ( llm_le_env = 0x3ffb976c );');
|
|
Add('PROVIDE ( llm_local_cmds = 0x3ff98d38 );');
|
|
Add('PROVIDE ( llm_local_data_len_values = 0x3ff98d1c );');
|
|
Add('PROVIDE ( llm_local_le_feats = 0x3ff98d30 );');
|
|
Add('PROVIDE ( llm_local_le_states = 0x3ff98d28 );');
|
|
Add('PROVIDE ( llm_state = 0x3ffb985c );');
|
|
Add('PROVIDE ( lm_default_handler = 0x3ff990e0 );');
|
|
Add('PROVIDE ( lm_default_state_tab_p_get = 0x40054268 );');
|
|
Add('PROVIDE ( lm_env = 0x3ffb9860 );');
|
|
Add('PROVIDE ( lm_hci_cmd_handler_tab_p_get = 0x4005425c );');
|
|
Add('PROVIDE ( lm_local_supp_feats = 0x3ff990ee );');
|
|
Add('PROVIDE ( lm_n_page_tab = 0x3ff990e8 );');
|
|
Add('PROVIDE ( lmp_desc_tab = 0x3ff96e6c );');
|
|
Add('PROVIDE ( lmp_ext_desc_tab = 0x3ff96d9c );');
|
|
Add('PROVIDE ( lm_state = 0x3ffb9a1c );');
|
|
Add('PROVIDE ( maxSecretKey_256 = 0x3ff97448 );');
|
|
Add('PROVIDE ( mmu_init = 0x400095a4 );');
|
|
Add('PROVIDE ( MultiplyBigHexByUint32_256 = 0x40016214 );');
|
|
Add('PROVIDE ( MultiplyBigHexModP256 = 0x400160b8 );');
|
|
Add('PROVIDE ( MultiplyByU32ModP256 = 0x40015fdc );');
|
|
Add('PROVIDE ( multofup = 0x4000ab8c );');
|
|
Add('PROVIDE ( mz_adler32 = 0x4005edbc );');
|
|
Add('PROVIDE ( mz_crc32 = 0x4005ee88 );');
|
|
Add('PROVIDE ( mz_free = 0x4005eed4 );');
|
|
Add('PROVIDE ( notEqual256 = 0x40015b04 );');
|
|
Add('PROVIDE ( one_bits = 0x3ff971f8 );');
|
|
Add('PROVIDE ( phy_get_romfuncs = 0x40004100 );');
|
|
Add('PROVIDE ( _Pri_4_HandlerAddress = 0x3ffe0648 );');
|
|
Add('PROVIDE ( _Pri_5_HandlerAddress = 0x3ffe064c );');
|
|
Add('PROVIDE ( r_btdm_option_data = 0x3ffae6e0 );');
|
|
Add('PROVIDE ( r_bt_util_buf_acl_rx_alloc = 0x40010218 );');
|
|
Add('PROVIDE ( r_bt_util_buf_acl_rx_free = 0x40010234 );');
|
|
Add('PROVIDE ( r_bt_util_buf_acl_tx_alloc = 0x40010268 );');
|
|
Add('PROVIDE ( r_bt_util_buf_acl_tx_free = 0x40010280 );');
|
|
Add('PROVIDE ( r_bt_util_buf_init = 0x400100e4 );');
|
|
Add('PROVIDE ( r_bt_util_buf_lmp_tx_alloc = 0x400101d0 );');
|
|
Add('PROVIDE ( r_bt_util_buf_lmp_tx_free = 0x400101ec );');
|
|
Add('PROVIDE ( r_bt_util_buf_sync_clear = 0x400103c8 );');
|
|
Add('PROVIDE ( r_bt_util_buf_sync_init = 0x400102c4 );');
|
|
Add('PROVIDE ( r_bt_util_buf_sync_rx_alloc = 0x40010468 );');
|
|
Add('PROVIDE ( r_bt_util_buf_sync_rx_free = 0x4001049c );');
|
|
Add('PROVIDE ( r_bt_util_buf_sync_tx_alloc = 0x400103ec );');
|
|
Add('PROVIDE ( r_bt_util_buf_sync_tx_free = 0x40010428 );');
|
|
Add('PROVIDE ( r_co_bdaddr_compare = 0x40014324 );');
|
|
Add('PROVIDE ( r_co_bytes_to_string = 0x400142e4 );');
|
|
Add('PROVIDE ( r_co_list_check_size_available = 0x400142c4 );');
|
|
Add('PROVIDE ( r_co_list_extract = 0x4001404c );');
|
|
Add('PROVIDE ( r_co_list_extract_after = 0x40014118 );');
|
|
Add('PROVIDE ( r_co_list_find = 0x4001419c );');
|
|
Add('PROVIDE ( r_co_list_init = 0x40013f14 );');
|
|
Add('PROVIDE ( r_co_list_insert_after = 0x40014254 );');
|
|
Add('PROVIDE ( r_co_list_insert_before = 0x40014200 );');
|
|
Add('PROVIDE ( r_co_list_merge = 0x400141bc );');
|
|
Add('PROVIDE ( r_co_list_pool_init = 0x40013f30 );');
|
|
Add('PROVIDE ( r_co_list_pop_front = 0x40014028 );');
|
|
Add('PROVIDE ( r_co_list_push_back = 0x40013fb8 );');
|
|
Add('PROVIDE ( r_co_list_push_front = 0x40013ff4 );');
|
|
Add('PROVIDE ( r_co_list_size = 0x400142ac );');
|
|
Add('PROVIDE ( r_co_nb_good_channels = 0x40014360 );');
|
|
Add('PROVIDE ( r_co_slot_to_duration = 0x40014348 );');
|
|
Add('PROVIDE ( r_dbg_init = 0x40014394 );');
|
|
Add('PROVIDE ( r_dbg_platform_reset_complete = 0x400143d0 );');
|
|
Add('PROVIDE ( r_dbg_swdiag_init = 0x40014470 );');
|
|
Add('PROVIDE ( r_dbg_swdiag_read = 0x400144a4 );');
|
|
Add('PROVIDE ( r_dbg_swdiag_write = 0x400144d0 );');
|
|
Add('PROVIDE ( r_E1 = 0x400108e8 );');
|
|
Add('PROVIDE ( r_E21 = 0x40010968 );');
|
|
Add('PROVIDE ( r_E22 = 0x400109b4 );');
|
|
Add('PROVIDE ( r_E3 = 0x40010a58 );');
|
|
Add('PROVIDE ( lm_n192_mod_mul = 0x40011dc0 );');
|
|
Add('PROVIDE ( lm_n192_mod_add = 0x40011e9c );');
|
|
Add('PROVIDE ( lm_n192_mod_sub = 0x40011eec );');
|
|
Add('PROVIDE ( r_ea_alarm_clear = 0x40015ab4 );');
|
|
Add('PROVIDE ( r_ea_alarm_set = 0x40015a10 );');
|
|
Add('PROVIDE ( r_ea_elt_cancel = 0x400150d0 );');
|
|
Add('PROVIDE ( r_ea_elt_create = 0x40015264 );');
|
|
Add('PROVIDE ( r_ea_elt_insert = 0x400152a8 );');
|
|
Add('PROVIDE ( r_ea_elt_remove = 0x400154f0 );');
|
|
Add('PROVIDE ( r_ea_finetimer_isr = 0x400155d4 );');
|
|
Add('PROVIDE ( r_ea_init = 0x40015228 );');
|
|
Add('PROVIDE ( r_ea_interval_create = 0x4001555c );');
|
|
Add('PROVIDE ( r_ea_interval_delete = 0x400155a8 );');
|
|
Add('PROVIDE ( r_ea_interval_duration_req = 0x4001597c );');
|
|
Add('PROVIDE ( r_ea_interval_insert = 0x4001557c );');
|
|
Add('PROVIDE ( r_ea_interval_remove = 0x40015590 );');
|
|
Add('PROVIDE ( ea_conflict_check = 0x40014e9c );');
|
|
Add('PROVIDE ( ea_prog_timer = 0x40014f88 );');
|
|
Add('PROVIDE ( r_ea_offset_req = 0x40015748 );');
|
|
Add('PROVIDE ( r_ea_sleep_check = 0x40015928 );');
|
|
Add('PROVIDE ( r_ea_sw_isr = 0x40015724 );');
|
|
Add('PROVIDE ( r_ea_time_get_halfslot_rounded = 0x40015894 );');
|
|
Add('PROVIDE ( r_ea_time_get_slot_rounded = 0x400158d4 );');
|
|
Add('PROVIDE ( r_ecc_abort_key256_generation = 0x40017070 );');
|
|
Add('PROVIDE ( r_ecc_generate_key256 = 0x40016e00 );');
|
|
Add('PROVIDE ( r_ecc_gen_new_public_key = 0x400170c0 );');
|
|
Add('PROVIDE ( r_ecc_gen_new_secret_key = 0x400170e4 );');
|
|
Add('PROVIDE ( r_ecc_get_debug_Keys = 0x40017224 );');
|
|
Add('PROVIDE ( r_ecc_init = 0x40016dbc );');
|
|
Add('PROVIDE ( ecc_point_multiplication_uint8_256 = 0x40016804);');
|
|
Add('PROVIDE ( RecvBuff = 0x3ffe009c );');
|
|
Add('PROVIDE ( r_em_buf_init = 0x4001729c );');
|
|
Add('PROVIDE ( r_em_buf_rx_buff_addr_get = 0x400173e8 );');
|
|
Add('PROVIDE ( r_em_buf_rx_free = 0x400173c4 );');
|
|
Add('PROVIDE ( r_em_buf_tx_buff_addr_get = 0x40017404 );');
|
|
Add('PROVIDE ( r_em_buf_tx_free = 0x4001741c );');
|
|
Add('PROVIDE ( r_F1_256 = 0x400133e4 );');
|
|
Add('PROVIDE ( r_F2_256 = 0x40013568 );');
|
|
Add('PROVIDE ( r_F3_256 = 0x40013664 );');
|
|
Add('PROVIDE ( RFPLL_ICP_TABLE = 0x3ffb8b7c );');
|
|
Add('PROVIDE ( r_G_256 = 0x40013470 );');
|
|
Add('PROVIDE ( r_H3 = 0x40013760 );');
|
|
Add('PROVIDE ( r_H4 = 0x40013830 );');
|
|
Add('PROVIDE ( r_h4tl_init = 0x40017878 );');
|
|
Add('PROVIDE ( r_h4tl_start = 0x40017924 );');
|
|
Add('PROVIDE ( r_h4tl_stop = 0x40017934 );');
|
|
Add('PROVIDE ( r_h4tl_write = 0x400178d0 );');
|
|
Add('PROVIDE ( r_H5 = 0x400138dc );');
|
|
Add('PROVIDE ( r_hashConcat = 0x40013a38 );');
|
|
Add('PROVIDE ( r_hci_acl_tx_data_alloc = 0x4001951c );');
|
|
Add('PROVIDE ( r_hci_acl_tx_data_received = 0x40019654 );');
|
|
Add('PROVIDE ( r_hci_bt_acl_bdaddr_register = 0x40018900 );');
|
|
Add('PROVIDE ( r_hci_bt_acl_bdaddr_unregister = 0x400189ac );');
|
|
Add('PROVIDE ( r_hci_bt_acl_conhdl_register = 0x4001895c );');
|
|
Add('PROVIDE ( r_hci_cmd_get_max_param_size = 0x400192d0 );');
|
|
Add('PROVIDE ( r_hci_cmd_received = 0x400192f8 );');
|
|
Add('PROVIDE ( r_hci_evt_filter_add = 0x40018a64 );');
|
|
Add('PROVIDE ( r_hci_evt_mask_set = 0x400189e4 );');
|
|
Add('PROVIDE ( r_hci_fc_acl_buf_size_set = 0x40017988 );');
|
|
Add('PROVIDE ( r_hci_fc_acl_en = 0x400179d8 );');
|
|
Add('PROVIDE ( r_hci_fc_acl_packet_sent = 0x40017a3c );');
|
|
Add('PROVIDE ( r_hci_fc_check_host_available_nb_acl_packets = 0x40017aa4 );');
|
|
Add('PROVIDE ( r_hci_fc_check_host_available_nb_sync_packets = 0x40017ac8 );');
|
|
Add('PROVIDE ( r_hci_fc_host_nb_acl_pkts_complete = 0x40017a6c );');
|
|
Add('PROVIDE ( r_hci_fc_host_nb_sync_pkts_complete = 0x40017a88 );');
|
|
Add('PROVIDE ( r_hci_fc_init = 0x40017974 );');
|
|
Add('PROVIDE ( r_hci_fc_sync_buf_size_set = 0x400179b0 );');
|
|
Add('PROVIDE ( r_hci_fc_sync_en = 0x40017a30 );');
|
|
Add('PROVIDE ( r_hci_fc_sync_packet_sent = 0x40017a54 );');
|
|
Add('PROVIDE ( r_hci_init = 0x40018538 );');
|
|
Add('PROVIDE ( r_hci_look_for_cmd_desc = 0x40018454 );');
|
|
Add('PROVIDE ( r_hci_look_for_dbg_evt_desc = 0x400184c4 );');
|
|
Add('PROVIDE ( r_hci_look_for_evt_desc = 0x400184a0 );');
|
|
Add('PROVIDE ( r_hci_look_for_le_evt_desc = 0x400184e0 );');
|
|
Add('PROVIDE ( r_hci_reset = 0x4001856c );');
|
|
Add('PROVIDE ( r_hci_send_2_host = 0x400185bc );');
|
|
Add('PROVIDE ( r_hci_sync_tx_data_alloc = 0x40019754 );');
|
|
Add('PROVIDE ( r_hci_sync_tx_data_received = 0x400197c0 );');
|
|
Add('PROVIDE ( r_hci_tl_init = 0x40019290 );');
|
|
Add('PROVIDE ( r_hci_tl_send = 0x40019228 );');
|
|
Add('PROVIDE ( r_hci_util_pack = 0x40019874 );');
|
|
Add('PROVIDE ( r_hci_util_unpack = 0x40019998 );');
|
|
Add('PROVIDE ( r_hci_voice_settings_get = 0x40018bdc );');
|
|
Add('PROVIDE ( r_hci_voice_settings_set = 0x40018be8 );');
|
|
Add('PROVIDE ( r_HMAC = 0x40013968 );');
|
|
Add('PROVIDE ( r_import_rf_phy_func = 0x3ffb8354 );');
|
|
Add('PROVIDE ( r_import_rf_phy_func_p = 0x3ffafd64 );');
|
|
Add('PROVIDE ( r_ip_funcs = 0x3ffae710 );');
|
|
Add('PROVIDE ( r_ip_funcs_p = 0x3ffae70c );');
|
|
Add('PROVIDE ( r_ke_check_malloc = 0x40019de0 );');
|
|
Add('PROVIDE ( r_ke_event_callback_set = 0x40019ba8 );');
|
|
Add('PROVIDE ( r_ke_event_clear = 0x40019c2c );');
|
|
Add('PROVIDE ( r_ke_event_flush = 0x40019ccc );');
|
|
Add('PROVIDE ( r_ke_event_get = 0x40019c78 );');
|
|
Add('PROVIDE ( r_ke_event_get_all = 0x40019cc0 );');
|
|
Add('PROVIDE ( r_ke_event_init = 0x40019b90 );');
|
|
Add('PROVIDE ( r_ke_event_schedule = 0x40019cdc );');
|
|
Add('PROVIDE ( r_ke_event_set = 0x40019be0 );');
|
|
Add('PROVIDE ( r_ke_flush = 0x4001a374 );');
|
|
Add('PROVIDE ( r_ke_free = 0x4001a014 );');
|
|
Add('PROVIDE ( r_ke_get_max_mem_usage = 0x4001a1c8 );');
|
|
Add('PROVIDE ( r_ke_get_mem_usage = 0x4001a1a0 );');
|
|
Add('PROVIDE ( r_ke_init = 0x4001a318 );');
|
|
Add('PROVIDE ( r_ke_is_free = 0x4001a184 );');
|
|
Add('PROVIDE ( r_ke_malloc = 0x40019eb4 );');
|
|
Add('PROVIDE ( r_ke_mem_init = 0x40019d3c );');
|
|
Add('PROVIDE ( r_ke_mem_is_empty = 0x40019d8c );');
|
|
Add('PROVIDE ( r_ke_msg_alloc = 0x4001a1e0 );');
|
|
Add('PROVIDE ( r_ke_msg_dest_id_get = 0x4001a2e0 );');
|
|
Add('PROVIDE ( r_ke_msg_discard = 0x4001a850 );');
|
|
Add('PROVIDE ( r_ke_msg_forward = 0x4001a290 );');
|
|
Add('PROVIDE ( r_ke_msg_forward_new_id = 0x4001a2ac );');
|
|
Add('PROVIDE ( r_ke_msg_free = 0x4001a2cc );');
|
|
Add('PROVIDE ( r_ke_msg_in_queue = 0x4001a2f8 );');
|
|
Add('PROVIDE ( r_ke_msg_save = 0x4001a858 );');
|
|
Add('PROVIDE ( r_ke_msg_send = 0x4001a234 );');
|
|
Add('PROVIDE ( r_ke_msg_send_basic = 0x4001a26c );');
|
|
Add('PROVIDE ( r_ke_msg_src_id_get = 0x4001a2ec );');
|
|
Add('PROVIDE ( r_ke_queue_extract = 0x40055fd0 );');
|
|
Add('PROVIDE ( r_ke_queue_insert = 0x40056020 );');
|
|
Add('PROVIDE ( r_ke_sleep_check = 0x4001a3d8 );');
|
|
Add('PROVIDE ( r_ke_state_get = 0x4001a7d8 );');
|
|
Add('PROVIDE ( r_ke_state_set = 0x4001a6fc );');
|
|
Add('PROVIDE ( r_ke_stats_get = 0x4001a3f0 );');
|
|
Add('PROVIDE ( r_ke_task_check = 0x4001a8a4 );');
|
|
Add('PROVIDE ( r_ke_task_create = 0x4001a674 );');
|
|
Add('PROVIDE ( r_ke_task_delete = 0x4001a6c0 );');
|
|
Add('PROVIDE ( r_ke_task_init = 0x4001a650 );');
|
|
Add('PROVIDE ( r_ke_task_msg_flush = 0x4001a860 );');
|
|
Add('PROVIDE ( r_ke_timer_active = 0x4001ac08 );');
|
|
Add('PROVIDE ( r_ke_timer_adjust_all = 0x4001ac30 );');
|
|
Add('PROVIDE ( r_ke_timer_clear = 0x4001ab90 );');
|
|
Add('PROVIDE ( r_ke_timer_init = 0x4001aa9c );');
|
|
Add('PROVIDE ( r_ke_timer_set = 0x4001aac0 );');
|
|
Add('PROVIDE ( r_ke_timer_sleep_check = 0x4001ac50 );');
|
|
Add('PROVIDE ( r_KPrimC = 0x40010ad4 );');
|
|
Add('PROVIDE ( r_lb_clk_adj_activate = 0x4001ae70 );');
|
|
Add('PROVIDE ( r_lb_clk_adj_id_get = 0x4001af14 );');
|
|
Add('PROVIDE ( r_lb_clk_adj_period_update = 0x4001af20 );');
|
|
Add('PROVIDE ( r_lb_init = 0x4001acd4 );');
|
|
Add('PROVIDE ( r_lb_mst_key = 0x4001afc0 );');
|
|
Add('PROVIDE ( r_lb_mst_key_cmp = 0x4001af74 );');
|
|
Add('PROVIDE ( r_lb_mst_key_restart_enc = 0x4001b0d4 );');
|
|
Add('PROVIDE ( r_lb_mst_start_act_bcst_enc = 0x4001b198 );');
|
|
Add('PROVIDE ( r_lb_mst_stop_act_bcst_enc = 0x4001b24c );');
|
|
Add('PROVIDE ( r_lb_reset = 0x4001ad38 );');
|
|
Add('PROVIDE ( r_lb_send_lmp = 0x4001adbc );');
|
|
Add('PROVIDE ( r_lb_send_pdu_clk_adj = 0x4001af3c );');
|
|
Add('PROVIDE ( r_lb_util_get_csb_mode = 0x4001ada4 );');
|
|
Add('PROVIDE ( r_lb_util_get_nb_broadcast = 0x4001ad80 );');
|
|
Add('PROVIDE ( r_lb_util_get_res_lt_addr = 0x4001ad98 );');
|
|
Add('PROVIDE ( r_lb_util_set_nb_broadcast = 0x4001ad8c );');
|
|
Add('PROVIDE ( r_lc_afh_set = 0x4001cc74 );');
|
|
Add('PROVIDE ( r_lc_afh_start = 0x4001d240 );');
|
|
Add('PROVIDE ( r_lc_auth_cmp = 0x4001cd54 );');
|
|
Add('PROVIDE ( r_lc_calc_link_key = 0x4001ce7c );');
|
|
Add('PROVIDE ( r_lc_chg_pkt_type_cmp = 0x4001d038 );');
|
|
Add('PROVIDE ( r_lc_chg_pkt_type_cont = 0x4001cfbc );');
|
|
Add('PROVIDE ( r_lc_chg_pkt_type_retry = 0x4001d0ac );');
|
|
Add('PROVIDE ( r_lc_chk_to = 0x4001d2a8 );');
|
|
Add('PROVIDE ( r_lc_cmd_stat_send = 0x4001c914 );');
|
|
Add('PROVIDE ( r_lc_comb_key_svr = 0x4001d30c );');
|
|
Add('PROVIDE ( r_lc_con_cmp = 0x4001d44c );');
|
|
Add('PROVIDE ( r_lc_con_cmp_evt_send = 0x4001d4fc );');
|
|
Add('PROVIDE ( r_lc_conn_seq_done = 0x40021334 );');
|
|
Add('PROVIDE ( r_lc_detach = 0x4002037c );');
|
|
Add('PROVIDE ( r_lc_dhkey = 0x4001d564 );');
|
|
Add('PROVIDE ( r_lc_enc_cmp = 0x4001d8bc );');
|
|
Add('PROVIDE ( r_lc_enc_key_refresh = 0x4001d720 );');
|
|
Add('PROVIDE ( r_lc_end_chk_colli = 0x4001d858 );');
|
|
Add('PROVIDE ( r_lc_end_of_sniff_nego = 0x4001d9a4 );');
|
|
Add('PROVIDE ( r_lc_enter_sniff_mode = 0x4001ddb8 );');
|
|
Add('PROVIDE ( r_lc_epr_change_lk = 0x4001db38 );');
|
|
Add('PROVIDE ( r_lc_epr_cmp = 0x4001da88 );');
|
|
Add('PROVIDE ( r_lc_epr_resp = 0x4001e0b4 );');
|
|
Add('PROVIDE ( r_lc_epr_rsw_cmp = 0x4001dd40 );');
|
|
Add('PROVIDE ( r_lc_ext_feat = 0x40020d6c );');
|
|
Add('PROVIDE ( r_lc_feat = 0x40020984 );');
|
|
Add('PROVIDE ( r_lc_hl_connect = 0x400209e8 );');
|
|
Add('PROVIDE ( r_lc_init = 0x4001c948 );');
|
|
Add('PROVIDE ( r_lc_init_calc_f3 = 0x4001deb0 );');
|
|
Add('PROVIDE ( r_lc_initiator_epr = 0x4001e064 );');
|
|
Add('PROVIDE ( r_lc_init_passkey_loop = 0x4001dfc0 );');
|
|
Add('PROVIDE ( r_lc_init_start_mutual_auth = 0x4001df60 );');
|
|
Add('PROVIDE ( r_lc_key_exch_end = 0x4001e140 );');
|
|
Add('PROVIDE ( r_lc_legacy_pair = 0x4001e1c0 );');
|
|
Add('PROVIDE ( r_lc_local_switch = 0x4001e22c );');
|
|
Add('PROVIDE ( r_lc_local_trans_mode = 0x4001e2e4 );');
|
|
Add('PROVIDE ( r_lc_local_untrans_mode = 0x4001e3a0 );');
|
|
Add('PROVIDE ( r_lc_loc_auth = 0x40020ecc );');
|
|
Add('PROVIDE ( r_lc_locepr_lkref = 0x4001d648 );');
|
|
Add('PROVIDE ( r_lc_locepr_rsw = 0x4001d5d0 );');
|
|
Add('PROVIDE ( r_lc_loc_sniff = 0x40020a6c );');
|
|
Add('PROVIDE ( r_lc_max_slot_mgt = 0x4001e410 );');
|
|
Add('PROVIDE ( r_lc_mst_key = 0x4001e7c0 );');
|
|
Add('PROVIDE ( r_lc_mst_qos_done = 0x4001ea80 );');
|
|
Add('PROVIDE ( r_lc_mst_send_mst_key = 0x4001e8f4 );');
|
|
Add('PROVIDE ( r_lc_mutual_auth_end = 0x4001e670 );');
|
|
Add('PROVIDE ( r_lc_mutual_auth_end2 = 0x4001e4f4 );');
|
|
Add('PROVIDE ( r_lc_packet_type = 0x40021038 );');
|
|
Add('PROVIDE ( r_lc_pair = 0x40020ddc );');
|
|
Add('PROVIDE ( r_lc_pairing_cont = 0x4001eafc );');
|
|
Add('PROVIDE ( r_lc_passkey_comm = 0x4001ed20 );');
|
|
Add('PROVIDE ( r_lc_prepare_all_links_for_clk_adj = 0x40021430 );');
|
|
Add('PROVIDE ( r_lc_proc_rcv_dhkey = 0x4001edec );');
|
|
Add('PROVIDE ( r_lc_ptt = 0x4001ee2c );');
|
|
Add('PROVIDE ( r_lc_ptt_cmp = 0x4001eeec );');
|
|
Add('PROVIDE ( r_lc_qos_setup = 0x4001ef50 );');
|
|
Add('PROVIDE ( r_lc_rd_rem_name = 0x4001efd0 );');
|
|
Add('PROVIDE ( r_lc_release = 0x4001f8a8 );');
|
|
Add('PROVIDE ( r_lc_rem_enc = 0x4001f124 );');
|
|
Add('PROVIDE ( r_lc_rem_name_cont = 0x4001f290 );');
|
|
Add('PROVIDE ( r_lc_rem_nego_trans_mode = 0x4001f1b4 );');
|
|
Add('PROVIDE ( r_lc_rem_sniff = 0x40020ca4 );');
|
|
Add('PROVIDE ( r_lc_rem_sniff_sub_rate = 0x40020b10 );');
|
|
Add('PROVIDE ( r_lc_rem_switch = 0x4001f070 );');
|
|
Add('PROVIDE ( r_lc_rem_trans_mode = 0x4001f314 );');
|
|
Add('PROVIDE ( r_lc_rem_unsniff = 0x400207a0 );');
|
|
Add('PROVIDE ( r_lc_rem_untrans_mode = 0x4001f36c );');
|
|
Add('PROVIDE ( r_lc_reset = 0x4001c99c );');
|
|
Add('PROVIDE ( r_lc_resp_auth = 0x4001f518 );');
|
|
Add('PROVIDE ( r_lc_resp_calc_f3 = 0x4001f710 );');
|
|
Add('PROVIDE ( r_lc_resp_num_comp = 0x40020074 );');
|
|
Add('PROVIDE ( r_lc_resp_oob_nonce = 0x4001f694 );');
|
|
Add('PROVIDE ( r_lc_resp_oob_wait_nonce = 0x4001f66c );');
|
|
Add('PROVIDE ( r_lc_resp_pair = 0x400208a4 );');
|
|
Add('PROVIDE ( r_lc_resp_sec_auth = 0x4001f4a0 );');
|
|
Add('PROVIDE ( r_lc_resp_wait_dhkey_cont = 0x4001f86c );');
|
|
Add('PROVIDE ( r_lc_restart_enc = 0x4001f8ec );');
|
|
Add('PROVIDE ( r_lc_restart_enc_cont = 0x4001f940 );');
|
|
Add('PROVIDE ( r_lc_restore_afh_reporting = 0x4001f028 );');
|
|
Add('PROVIDE ( r_lc_restore_to = 0x4001f9e0 );');
|
|
Add('PROVIDE ( r_lc_ret_sniff_max_slot_chg = 0x4001fa30 );');
|
|
Add('PROVIDE ( r_lc_rsw_clean_up = 0x4001dc70 );');
|
|
Add('PROVIDE ( r_lc_rsw_done = 0x4001db94 );');
|
|
Add('PROVIDE ( r_lc_sco_baseband_ack = 0x40022b00 );');
|
|
Add('PROVIDE ( r_lc_sco_detach = 0x40021e40 );');
|
|
Add('PROVIDE ( r_lc_sco_host_accept = 0x40022118 );');
|
|
Add('PROVIDE ( r_lc_sco_host_reject = 0x400222b8 );');
|
|
Add('PROVIDE ( r_lc_sco_host_request = 0x40021f4c );');
|
|
Add('PROVIDE ( r_lc_sco_host_request_disc = 0x4002235c );');
|
|
Add('PROVIDE ( r_lc_sco_init = 0x40021dc8 );');
|
|
Add('PROVIDE ( r_lc_sco_peer_accept = 0x40022780 );');
|
|
Add('PROVIDE ( r_lc_sco_peer_accept_disc = 0x40022a08 );');
|
|
Add('PROVIDE ( r_lc_sco_peer_reject = 0x40022824 );');
|
|
Add('PROVIDE ( r_lc_sco_peer_reject_disc = 0x40022a8c );');
|
|
Add('PROVIDE ( r_lc_sco_peer_request = 0x4002240c );');
|
|
Add('PROVIDE ( r_lc_sco_peer_request_disc = 0x400228ec );');
|
|
Add('PROVIDE ( r_lc_sco_release = 0x40021eec );');
|
|
Add('PROVIDE ( r_lc_sco_reset = 0x40021dfc );');
|
|
Add('PROVIDE ( r_lc_sco_timeout = 0x40022bd4 );');
|
|
Add('PROVIDE ( r_lc_sec_auth_compute_sres = 0x4001f3ec );');
|
|
Add('PROVIDE ( r_lc_semi_key_cmp = 0x40020294 );');
|
|
Add('PROVIDE ( r_lc_send_enc_chg_evt = 0x4002134c );');
|
|
Add('PROVIDE ( r_lc_send_enc_mode = 0x40020220 );');
|
|
Add('PROVIDE ( r_lc_send_lmp = 0x4001c1a8 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_acc = 0x4001c21c );');
|
|
Add('PROVIDE ( r_lc_send_pdu_acc_ext4 = 0x4001c240 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_au_rand = 0x4001c308 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_auto_rate = 0x4001c5d0 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_clk_adj_ack = 0x4001c46c );');
|
|
Add('PROVIDE ( r_lc_send_pdu_clk_adj_req = 0x4001c494 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_comb_key = 0x4001c368 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_dhkey_chk = 0x4001c8e8 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_encaps_head = 0x4001c440 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_encaps_payl = 0x4001c410 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_enc_key_sz_req = 0x4001c670 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_esco_lk_rem_req = 0x4001c5a8 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_feats_ext_req = 0x4001c6ec );');
|
|
Add('PROVIDE ( r_lc_send_pdu_feats_res = 0x4001c694 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_in_rand = 0x4001c338 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_io_cap_res = 0x4001c72c );');
|
|
Add('PROVIDE ( r_lc_send_pdu_lsto = 0x4001c64c );');
|
|
Add('PROVIDE ( r_lc_send_pdu_max_slot = 0x4001c3c8 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_max_slot_req = 0x4001c3ec );');
|
|
Add('PROVIDE ( r_lc_send_pdu_not_acc = 0x4001c26c );');
|
|
Add('PROVIDE ( r_lc_send_pdu_not_acc_ext4 = 0x4001c294 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_num_comp_fail = 0x4001c770 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_pause_enc_aes_req = 0x4001c794 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_paus_enc_req = 0x4001c7c0 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_ptt_req = 0x4001c4c0 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_qos_req = 0x4001c82c );');
|
|
Add('PROVIDE ( r_lc_send_pdu_resu_enc_req = 0x4001c7e4 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_sco_lk_rem_req = 0x4001c580 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_set_afh = 0x4001c2c8 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_setup_cmp = 0x4001c808 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_slot_off = 0x4001c854 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_sniff_req = 0x4001c5f0 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_sp_cfm = 0x4001c518 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_sp_nb = 0x4001c4e8 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_sres = 0x4001c548 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_tim_acc = 0x4001c6cc );');
|
|
Add('PROVIDE ( r_lc_send_pdu_unit_key = 0x4001c398 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_unsniff_req = 0x4001c894 );');
|
|
Add('PROVIDE ( r_lc_send_pdu_vers_req = 0x4001c8b4 );');
|
|
Add('PROVIDE ( r_lc_skip_hl_oob_req = 0x400201bc );');
|
|
Add('PROVIDE ( r_lc_sniff_init = 0x40022cac );');
|
|
Add('PROVIDE ( r_lc_sniff_max_slot_chg = 0x40020590 );');
|
|
Add('PROVIDE ( r_lc_sniff_reset = 0x40022cc8 );');
|
|
Add('PROVIDE ( r_lc_sniff_slot_unchange = 0x40021100 );');
|
|
Add('PROVIDE ( r_lc_sniff_sub_mode = 0x400204fc );');
|
|
Add('PROVIDE ( r_lc_sp_end = 0x400213a8 );');
|
|
Add('PROVIDE ( r_lc_sp_fail = 0x40020470 );');
|
|
Add('PROVIDE ( r_lc_sp_oob_tid_fail = 0x400204cc );');
|
|
Add('PROVIDE ( r_lc_ssr_nego = 0x4002125c );');
|
|
Add('PROVIDE ( r_lc_start = 0x4001ca28 );');
|
|
Add('PROVIDE ( r_lc_start_enc = 0x4001fb28 );');
|
|
Add('PROVIDE ( r_lc_start_enc_key_size = 0x4001fd9c );');
|
|
Add('PROVIDE ( r_lc_start_key_exch = 0x4001fe10 );');
|
|
Add('PROVIDE ( r_lc_start_lmp_to = 0x4001fae8 );');
|
|
Add('PROVIDE ( r_lc_start_oob = 0x4001fffc );');
|
|
Add('PROVIDE ( r_lc_start_passkey = 0x4001feac );');
|
|
Add('PROVIDE ( r_lc_start_passkey_loop = 0x4001ff88 );');
|
|
Add('PROVIDE ( r_lc_stop_afh_report = 0x40020184 );');
|
|
Add('PROVIDE ( r_lc_stop_enc = 0x40020110 );');
|
|
Add('PROVIDE ( r_lc_switch_cmp = 0x40020448 );');
|
|
Add('PROVIDE ( r_lc_unit_key_svr = 0x400206d8 );');
|
|
Add('PROVIDE ( r_lc_unsniff = 0x40020c50 );');
|
|
Add('PROVIDE ( r_lc_unsniff_cmp = 0x40020810 );');
|
|
Add('PROVIDE ( r_lc_unsniff_cont = 0x40020750 );');
|
|
Add('PROVIDE ( r_lc_upd_to = 0x4002065c );');
|
|
Add('PROVIDE ( r_lc_util_convert_pref_rate_to_packet_type = 0x4002f9b0 );');
|
|
Add('PROVIDE ( r_lc_util_get_max_packet_size = 0x4002f4ac );');
|
|
Add('PROVIDE ( r_lc_util_get_offset_clke = 0x4002f538 );');
|
|
Add('PROVIDE ( r_lc_util_get_offset_clkn = 0x4002f51c );');
|
|
Add('PROVIDE ( r_lc_util_set_loc_trans_coll = 0x4002f500 );');
|
|
Add('PROVIDE ( r_lc_version = 0x40020a30 );');
|
|
Add('PROVIDE ( lc_set_encap_pdu_data_p192 = 0x4002e4c8 );');
|
|
Add('PROVIDE ( lc_set_encap_pdu_data_p256 = 0x4002e454 );');
|
|
Add('PROVIDE ( lm_get_auth_method = 0x40023420);');
|
|
Add('PROVIDE ( lmp_accepted_ext_handler = 0x40027290 );');
|
|
Add('PROVIDE ( lmp_not_accepted_ext_handler = 0x40029c54 );');
|
|
Add('PROVIDE ( lmp_clk_adj_handler = 0x40027468 );');
|
|
Add('PROVIDE ( lmp_clk_adj_ack_handler = 0x400274f4 );');
|
|
Add('PROVIDE ( lm_get_auth_method = 0x40023420);');
|
|
Add('PROVIDE ( lmp_accepted_ext_handler = 0x40027290 );');
|
|
Add('PROVIDE ( lmp_not_accepted_ext_handler = 0x40029c54 );');
|
|
Add('PROVIDE ( lmp_clk_adj_handler = 0x40027468 );');
|
|
Add('PROVIDE ( lmp_clk_adj_ack_handler = 0x400274f4 );');
|
|
Add('PROVIDE ( lmp_clk_adj_req_handler = 0x4002751c );');
|
|
Add('PROVIDE ( lmp_feats_res_ext_handler = 0x4002cac4 );');
|
|
Add('PROVIDE ( lmp_feats_req_ext_handler = 0x4002ccb0 );');
|
|
Add('PROVIDE ( lmp_pkt_type_tbl_req_handler = 0x40027574 );');
|
|
Add('PROVIDE ( lmp_esco_link_req_handler = 0x40027610 );');
|
|
Add('PROVIDE ( lmp_rmv_esco_link_req_handler = 0x400276e8 );');
|
|
Add('PROVIDE ( lmp_ch_class_req_handler = 0x40027730 );');
|
|
Add('PROVIDE ( lmp_ch_class_handler = 0x4002ca18 );');
|
|
Add('PROVIDE ( lmp_ssr_req_handler = 0x4002780c );');
|
|
Add('PROVIDE ( lmp_ssr_res_handler = 0x40027900 );');
|
|
Add('PROVIDE ( lmp_pause_enc_aes_req_handler = 0x400279a4 );');
|
|
Add('PROVIDE ( lmp_pause_enc_req_handler = 0x4002df90 );');
|
|
Add('PROVIDE ( lmp_resume_enc_req_handler = 0x4002e084 );');
|
|
Add('PROVIDE ( lmp_num_comparison_fail_handler = 0x40027a74 );');
|
|
Add('PROVIDE ( lmp_passkey_fail_handler = 0x40027aec );');
|
|
Add('PROVIDE ( lmp_keypress_notif_handler = 0x4002c5c8 );');
|
|
Add('PROVIDE ( lmp_pwr_ctrl_req_handler = 0x400263bc );');
|
|
Add('PROVIDE ( lmp_pwr_ctrl_res_handler = 0x40026480 );');
|
|
Add('PROVIDE ( lmp_auto_rate_handler = 0x40026548 );');
|
|
Add('PROVIDE ( lmp_pref_rate_handler = 0x4002657c );');
|
|
Add('PROVIDE ( lmp_name_req_handler = 0x40025050 );');
|
|
Add('PROVIDE ( lmp_name_res_handler = 0x400250bc );');
|
|
Add('PROVIDE ( lmp_not_accepted_handler = 0x400251d0 );');
|
|
Add('PROVIDE ( lmp_accepted_handler = 0x4002e894 );');
|
|
Add('PROVIDE ( lmp_clk_off_req_handler = 0x40025a44 );');
|
|
Add('PROVIDE ( lmp_clk_off_res_handler = 0x40025ab8 );');
|
|
Add('PROVIDE ( lmp_detach_handler = 0x40025b74 );');
|
|
Add('PROVIDE ( lmp_tempkey_handler = 0x4002b6b0 );');
|
|
Add('PROVIDE ( lmp_temprand_handler = 0x4002b74c );');
|
|
Add('PROVIDE ( lmp_sres_handler = 0x4002b840 );');
|
|
Add('PROVIDE ( lmp_aurand_handler = 0x4002bda0 );');
|
|
Add('PROVIDE ( lmp_unitkey_handler = 0x4002c13c );');
|
|
Add('PROVIDE ( lmp_combkey_handler = 0x4002c234 );');
|
|
Add('PROVIDE ( lmp_inrand_handler = 0x4002c414 );');
|
|
Add('PROVIDE ( lmp_oob_fail_handler = 0x40027b84 );');
|
|
Add('PROVIDE ( lmp_ping_req_handler = 0x40027c08 );');
|
|
Add('PROVIDE ( lmp_ping_res_handler = 0x40027c5c );');
|
|
Add('PROVIDE ( lmp_enc_mode_req_handler = 0x40025c60 );');
|
|
Add('PROVIDE ( lmp_enc_key_size_req_handler = 0x40025e54 );');
|
|
Add('PROVIDE ( lmp_switch_req_handler = 0x40025f84 );');
|
|
Add('PROVIDE ( lmp_start_enc_req_handler = 0x4002e124 );');
|
|
Add('PROVIDE ( lmp_stop_enc_req_handler = 0x4002de30 );');
|
|
Add('PROVIDE ( lmp_sniff_req_handler = 0x400260c8 );');
|
|
Add('PROVIDE ( lmp_unsniff_req_handler = 0x400261e0 );');
|
|
Add('PROVIDE ( lmp_incr_pwr_req_handler = 0x4002629c );');
|
|
Add('PROVIDE ( lmp_decr_pwr_req_handler = 0x400262f8 );');
|
|
Add('PROVIDE ( lmp_max_pwr_handler = 0x40026354 );');
|
|
Add('PROVIDE ( lmp_min_pwr_handler = 0x40026388 );');
|
|
Add('PROVIDE ( lmp_ver_req_handler = 0x400265f0 );');
|
|
Add('PROVIDE ( lmp_ver_res_handler = 0x40026670 );');
|
|
Add('PROVIDE ( lmp_qos_handler = 0x40026790 );');
|
|
Add('PROVIDE ( lmp_qos_req_handler = 0x40026844 );');
|
|
Add('PROVIDE ( lmp_sco_link_req_handler = 0x40026930 );');
|
|
Add('PROVIDE ( lmp_rmv_sco_link_req_handler = 0x40026a10 );');
|
|
Add('PROVIDE ( lmp_max_slot_handler = 0x40026a54 );');
|
|
Add('PROVIDE ( lmp_max_slot_req_handler = 0x40026aac );');
|
|
Add('PROVIDE ( lmp_timing_accu_req_handler = 0x40026b54 );');
|
|
Add('PROVIDE ( lmp_timing_accu_res_handler = 0x40026bcc );');
|
|
Add('PROVIDE ( lmp_setup_cmp_handler = 0x40026c84 );');
|
|
Add('PROVIDE ( lmp_feats_res_handler = 0x4002b548 );');
|
|
Add('PROVIDE ( lmp_feats_req_handler = 0x4002b620 );');
|
|
Add('PROVIDE ( lmp_host_con_req_handler = 0x4002b3d8 );');
|
|
Add('PROVIDE ( lmp_use_semi_perm_key_handler = 0x4002b4c4 );');
|
|
Add('PROVIDE ( lmp_slot_off_handler = 0x40026cc8 );');
|
|
Add('PROVIDE ( lmp_page_mode_req_handler = 0x40026d0c );');
|
|
Add('PROVIDE ( lmp_page_scan_mode_req_handler = 0x40026d4c );');
|
|
Add('PROVIDE ( lmp_supv_to_handler = 0x40026d94 );');
|
|
Add('PROVIDE ( lmp_test_activate_handler = 0x40026e7c );');
|
|
Add('PROVIDE ( lmp_test_ctrl_handler = 0x40026ee4 );');
|
|
Add('PROVIDE ( lmp_enc_key_size_mask_req_handler = 0x40027038 );');
|
|
Add('PROVIDE ( lmp_enc_key_size_mask_res_handler = 0x400270a4 );');
|
|
Add('PROVIDE ( lmp_set_afh_handler = 0x4002b2e4 );');
|
|
Add('PROVIDE ( lmp_encaps_hdr_handler = 0x40027120 );');
|
|
Add('PROVIDE ( lmp_encaps_payl_handler = 0x4002e590 );');
|
|
Add('PROVIDE ( lmp_sp_nb_handler = 0x4002acf0 );');
|
|
Add('PROVIDE ( lmp_sp_cfm_handler = 0x4002b170 );');
|
|
Add('PROVIDE ( lmp_dhkey_chk_handler = 0x4002ab48 );');
|
|
Add('PROVIDE ( lmp_pause_enc_aes_req_handler = 0x400279a4 );');
|
|
Add('PROVIDE ( lmp_io_cap_res_handler = 0x4002c670 );');
|
|
Add('PROVIDE ( lmp_io_cap_req_handler = 0x4002c7a4 );');
|
|
Add('PROVIDE ( lc_cmd_cmp_bd_addr_send = 0x4002cec4 );');
|
|
Add('PROVIDE ( ld_acl_tx_packet_type_select = 0x4002fb40 );');
|
|
Add('PROVIDE ( ld_acl_sched = 0x40033268 );');
|
|
Add('PROVIDE ( ld_acl_sniff_sched = 0x4003340c );');
|
|
Add('PROVIDE ( ld_acl_rx = 0x4003274c );');
|
|
Add('PROVIDE ( ld_acl_tx = 0x4002ffdc );');
|
|
Add('PROVIDE ( ld_acl_rx_sync = 0x4002fbec );');
|
|
Add('PROVIDE ( ld_acl_rx_sync2 = 0x4002fd8c );');
|
|
Add('PROVIDE ( ld_acl_rx_no_sync = 0x4002fe78 );');
|
|
Add('PROVIDE ( ld_acl_clk_isr = 0x40030cf8 );');
|
|
Add('PROVIDE ( ld_acl_rsw_frm_cbk = 0x40033bb0 );');
|
|
Add('PROVIDE ( ld_sco_modify = 0x40031778 );');
|
|
Add('PROVIDE ( lm_cmd_cmp_send = 0x40051838 );');
|
|
Add('PROVIDE ( ld_sco_frm_cbk = 0x400349dc );');
|
|
Add('PROVIDE ( ld_acl_sniff_frm_cbk = 0x4003482c );');
|
|
Add('PROVIDE ( ld_inq_end = 0x4003ab48 );');
|
|
Add('PROVIDE ( ld_inq_sched = 0x4003aba4 );');
|
|
Add('PROVIDE ( ld_inq_frm_cbk = 0x4003ae4c );');
|
|
Add('PROVIDE ( r_ld_acl_active_hop_types_get = 0x40036e10 );');
|
|
Add('PROVIDE ( r_ld_acl_afh_confirm = 0x40036d40 );');
|
|
Add('PROVIDE ( r_ld_acl_afh_prepare = 0x40036c84 );');
|
|
Add('PROVIDE ( r_ld_acl_afh_set = 0x40036b60 );');
|
|
Add('PROVIDE ( r_ld_acl_allowed_tx_packet_types_set = 0x40036810 );');
|
|
Add('PROVIDE ( r_ld_acl_bcst_rx_dec = 0x40036394 );');
|
|
Add('PROVIDE ( r_ld_acl_bit_off_get = 0x40036b18 );');
|
|
Add('PROVIDE ( r_ld_acl_clk_adj_set = 0x40036a00 );');
|
|
Add('PROVIDE ( r_ld_acl_clk_off_get = 0x40036b00 );');
|
|
Add('PROVIDE ( r_ld_acl_clk_set = 0x40036950 );');
|
|
Add('PROVIDE ( r_ld_acl_clock_offset_get = 0x400364c0 );');
|
|
Add('PROVIDE ( r_ld_acl_current_tx_power_get = 0x400368f0 );');
|
|
Add('PROVIDE ( r_ld_acl_data_flush = 0x400357bc );');
|
|
Add('PROVIDE ( r_ld_acl_data_tx = 0x4003544c );');
|
|
Add('PROVIDE ( r_ld_acl_edr_set = 0x4003678c );');
|
|
Add('PROVIDE ( r_ld_acl_enc_key_load = 0x40036404 );');
|
|
Add('PROVIDE ( r_ld_acl_flow_off = 0x40035400 );');
|
|
Add('PROVIDE ( r_ld_acl_flow_on = 0x4003541c );');
|
|
Add('PROVIDE ( r_ld_acl_flush_timeout_get = 0x40035f9c );');
|
|
Add('PROVIDE ( r_ld_acl_flush_timeout_set = 0x40035fe0 );');
|
|
Add('PROVIDE ( r_ld_acl_init = 0x40034d08 );');
|
|
Add('PROVIDE ( r_ld_acl_lmp_flush = 0x40035d80 );');
|
|
Add('PROVIDE ( r_ld_acl_lmp_tx = 0x40035b34 );');
|
|
Add('PROVIDE ( r_ld_acl_lsto_get = 0x400366b4 );');
|
|
Add('PROVIDE ( r_ld_acl_lsto_set = 0x400366f8 );');
|
|
Add('PROVIDE ( r_ld_acl_reset = 0x40034d24 );');
|
|
Add('PROVIDE ( r_ld_acl_role_get = 0x40036b30 );');
|
|
Add('PROVIDE ( r_ld_acl_rssi_delta_get = 0x40037028 );');
|
|
Add('PROVIDE ( r_ld_acl_rsw_req = 0x40035e74 );');
|
|
Add('PROVIDE ( r_ld_acl_rx_enc = 0x40036344 );');
|
|
Add('PROVIDE ( r_ld_acl_rx_max_slot_get = 0x40036e58 );');
|
|
Add('PROVIDE ( r_ld_acl_rx_max_slot_set = 0x40036ea0 );');
|
|
Add('PROVIDE ( r_ld_acl_slot_offset_get = 0x4003653c );');
|
|
Add('PROVIDE ( r_ld_acl_slot_offset_set = 0x40036658 );');
|
|
Add('PROVIDE ( r_ld_acl_sniff = 0x4003617c );');
|
|
Add('PROVIDE ( r_ld_acl_sniff_trans = 0x400360a8 );');
|
|
Add('PROVIDE ( r_ld_acl_ssr_set = 0x40036274 );');
|
|
Add('PROVIDE ( r_ld_acl_start = 0x40034ddc );');
|
|
Add('PROVIDE ( r_ld_acl_stop = 0x4003532c );');
|
|
Add('PROVIDE ( r_ld_acl_test_mode_set = 0x40036f24 );');
|
|
Add('PROVIDE ( r_ld_acl_timing_accuracy_set = 0x4003673c );');
|
|
Add('PROVIDE ( r_ld_acl_t_poll_get = 0x40036024 );');
|
|
Add('PROVIDE ( r_ld_acl_t_poll_set = 0x40036068 );');
|
|
Add('PROVIDE ( r_ld_acl_tx_enc = 0x400362f8 );');
|
|
Add('PROVIDE ( r_ld_acl_unsniff = 0x400361e0 );');
|
|
Add('PROVIDE ( r_ld_active_check = 0x4003cac4 );');
|
|
Add('PROVIDE ( r_ld_afh_ch_assess_data_get = 0x4003caec );');
|
|
Add('PROVIDE ( r_ld_bcst_acl_data_tx = 0x40038d3c );');
|
|
Add('PROVIDE ( r_ld_bcst_acl_init = 0x40038bd0 );');
|
|
Add('PROVIDE ( r_ld_bcst_acl_reset = 0x40038bdc );');
|
|
Add('PROVIDE ( r_ld_bcst_acl_start = 0x4003882c );');
|
|
Add('PROVIDE ( r_ld_bcst_afh_update = 0x40038f3c );');
|
|
Add('PROVIDE ( r_ld_bcst_enc_key_load = 0x4003906c );');
|
|
Add('PROVIDE ( r_ld_bcst_lmp_tx = 0x40038bf8 );');
|
|
Add('PROVIDE ( r_ld_bcst_tx_enc = 0x40038ff8 );');
|
|
Add('PROVIDE ( r_ld_bd_addr_get = 0x4003ca20 );');
|
|
Add('PROVIDE ( r_ld_channel_assess = 0x4003c184 );');
|
|
Add('PROVIDE ( r_ld_class_of_dev_get = 0x4003ca34 );');
|
|
Add('PROVIDE ( r_ld_class_of_dev_set = 0x4003ca50 );');
|
|
Add('PROVIDE ( r_ld_csb_rx_afh_update = 0x40039af4 );');
|
|
Add('PROVIDE ( r_ld_csb_rx_init = 0x40039690 );');
|
|
Add('PROVIDE ( r_ld_csb_rx_reset = 0x4003969c );');
|
|
Add('PROVIDE ( r_ld_csb_rx_start = 0x4003972c );');
|
|
Add('PROVIDE ( r_ld_csb_rx_stop = 0x40039bb8 );');
|
|
Add('PROVIDE ( r_ld_csb_tx_afh_update = 0x4003a5fc );');
|
|
Add('PROVIDE ( r_ld_csb_tx_clr_data = 0x4003a71c );');
|
|
Add('PROVIDE ( r_ld_csb_tx_dis = 0x4003a5e8 );');
|
|
Add('PROVIDE ( r_ld_csb_tx_en = 0x4003a1c0 );');
|
|
Add('PROVIDE ( r_ld_csb_tx_init = 0x4003a0e8 );');
|
|
Add('PROVIDE ( r_ld_csb_tx_reset = 0x4003a0f8 );');
|
|
Add('PROVIDE ( r_ld_csb_tx_set_data = 0x4003a6c0 );');
|
|
Add('PROVIDE ( r_ld_fm_clk_isr = 0x4003a7a8 );');
|
|
Add('PROVIDE ( r_ld_fm_frame_isr = 0x4003a82c );');
|
|
Add('PROVIDE ( r_ld_fm_init = 0x4003a760 );');
|
|
Add('PROVIDE ( r_ld_fm_prog_check = 0x4003ab28 );');
|
|
Add('PROVIDE ( r_ld_fm_prog_disable = 0x4003a984 );');
|
|
Add('PROVIDE ( r_ld_fm_prog_enable = 0x4003a944 );');
|
|
Add('PROVIDE ( r_ld_fm_prog_push = 0x4003a9d4 );');
|
|
Add('PROVIDE ( r_ld_fm_reset = 0x4003a794 );');
|
|
Add('PROVIDE ( r_ld_fm_rx_isr = 0x4003a7f4 );');
|
|
Add('PROVIDE ( r_ld_fm_sket_isr = 0x4003a8a4 );');
|
|
Add('PROVIDE ( r_ld_init = 0x4003c294 );');
|
|
Add('PROVIDE ( r_ld_inq_init = 0x4003b15c );');
|
|
Add('PROVIDE ( r_ld_inq_reset = 0x4003b168 );');
|
|
Add('PROVIDE ( r_ld_inq_start = 0x4003b1f0 );');
|
|
Add('PROVIDE ( r_ld_inq_stop = 0x4003b4f0 );');
|
|
Add('PROVIDE ( r_ld_iscan_eir_get = 0x4003c118 );');
|
|
Add('PROVIDE ( r_ld_iscan_eir_set = 0x4003bfa0 );');
|
|
Add('PROVIDE ( r_ld_iscan_init = 0x4003b9f0 );');
|
|
Add('PROVIDE ( r_ld_iscan_reset = 0x4003ba14 );');
|
|
Add('PROVIDE ( r_ld_iscan_restart = 0x4003ba44 );');
|
|
Add('PROVIDE ( r_ld_iscan_start = 0x4003bb28 );');
|
|
Add('PROVIDE ( r_ld_iscan_stop = 0x4003bf1c );');
|
|
Add('PROVIDE ( r_ld_iscan_tx_pwr_get = 0x4003c138 );');
|
|
Add('PROVIDE ( r_ld_page_init = 0x4003d808 );');
|
|
Add('PROVIDE ( r_ld_page_reset = 0x4003d814 );');
|
|
Add('PROVIDE ( r_ld_page_start = 0x4003d848 );');
|
|
Add('PROVIDE ( r_ld_page_stop = 0x4003da54 );');
|
|
Add('PROVIDE ( r_ld_pca_coarse_clock_adjust = 0x4003e324 );');
|
|
Add('PROVIDE ( r_ld_pca_init = 0x4003deb4 );');
|
|
Add('PROVIDE ( r_ld_pca_initiate_clock_dragging = 0x4003e4ac );');
|
|
Add('PROVIDE ( r_ld_pca_local_config = 0x4003df6c );');
|
|
Add('PROVIDE ( r_ld_pca_mws_frame_sync = 0x4003e104 );');
|
|
Add('PROVIDE ( r_ld_pca_mws_moment_offset_gt = 0x4003e278 );');
|
|
Add('PROVIDE ( r_ld_pca_mws_moment_offset_lt = 0x4003e280 );');
|
|
Add('PROVIDE ( r_ld_pca_reporting_enable = 0x4003e018 );');
|
|
Add('PROVIDE ( r_ld_pca_reset = 0x4003df0c );');
|
|
Add('PROVIDE ( r_ld_pca_update_target_offset = 0x4003e050 );');
|
|
Add('PROVIDE ( r_ld_pscan_evt_handler = 0x4003f238 );');
|
|
Add('PROVIDE ( r_ld_pscan_init = 0x4003f474 );');
|
|
Add('PROVIDE ( r_ld_pscan_reset = 0x4003f498 );');
|
|
Add('PROVIDE ( r_ld_pscan_restart = 0x4003f4b8 );');
|
|
Add('PROVIDE ( r_ld_pscan_start = 0x4003f514 );');
|
|
Add('PROVIDE ( r_ld_pscan_stop = 0x4003f618 );');
|
|
Add('PROVIDE ( r_ld_read_clock = 0x4003c9e4 );');
|
|
Add('PROVIDE ( r_ld_reset = 0x4003c714 );');
|
|
Add('PROVIDE ( r_ld_sched_acl_add = 0x4003f978 );');
|
|
Add('PROVIDE ( r_ld_sched_acl_remove = 0x4003f99c );');
|
|
Add('PROVIDE ( r_ld_sched_compute = 0x4003f6f8 );');
|
|
Add('PROVIDE ( r_ld_sched_init = 0x4003f7ac );');
|
|
Add('PROVIDE ( r_ld_sched_inq_add = 0x4003f8a8 );');
|
|
Add('PROVIDE ( r_ld_sched_inq_remove = 0x4003f8d0 );');
|
|
Add('PROVIDE ( r_ld_sched_iscan_add = 0x4003f7e8 );');
|
|
Add('PROVIDE ( r_ld_sched_iscan_remove = 0x4003f808 );');
|
|
Add('PROVIDE ( r_ld_sched_page_add = 0x4003f910 );');
|
|
Add('PROVIDE ( r_ld_sched_page_remove = 0x4003f938 );');
|
|
Add('PROVIDE ( r_ld_sched_pscan_add = 0x4003f828 );');
|
|
Add('PROVIDE ( r_ld_sched_pscan_remove = 0x4003f848 );');
|
|
Add('PROVIDE ( r_ld_sched_reset = 0x4003f7d4 );');
|
|
Add('PROVIDE ( r_ld_sched_sco_add = 0x4003fa4c );');
|
|
Add('PROVIDE ( r_ld_sched_sco_remove = 0x4003fa9c );');
|
|
Add('PROVIDE ( r_ld_sched_sniff_add = 0x4003f9c4 );');
|
|
Add('PROVIDE ( r_ld_sched_sniff_remove = 0x4003fa0c );');
|
|
Add('PROVIDE ( r_ld_sched_sscan_add = 0x4003f868 );');
|
|
Add('PROVIDE ( r_ld_sched_sscan_remove = 0x4003f888 );');
|
|
Add('PROVIDE ( r_ld_sco_audio_isr = 0x40037cc8 );');
|
|
Add('PROVIDE ( r_ld_sco_data_tx = 0x40037ee8 );');
|
|
Add('PROVIDE ( r_ld_sco_start = 0x40037110 );');
|
|
Add('PROVIDE ( r_ld_sco_stop = 0x40037c40 );');
|
|
Add('PROVIDE ( r_ld_sco_update = 0x40037a74 );');
|
|
Add('PROVIDE ( r_ld_sscan_activated = 0x4004031c );');
|
|
Add('PROVIDE ( r_ld_sscan_init = 0x400402f0 );');
|
|
Add('PROVIDE ( r_ld_sscan_reset = 0x400402fc );');
|
|
Add('PROVIDE ( r_ld_sscan_start = 0x40040384 );');
|
|
Add('PROVIDE ( r_ld_strain_init = 0x400409f4 );');
|
|
Add('PROVIDE ( r_ld_strain_reset = 0x40040a00 );');
|
|
Add('PROVIDE ( r_ld_strain_start = 0x40040a8c );');
|
|
Add('PROVIDE ( r_ld_strain_stop = 0x40040df0 );');
|
|
Add('PROVIDE ( r_ld_timing_accuracy_get = 0x4003caac );');
|
|
Add('PROVIDE ( r_ld_util_active_master_afh_map_get = 0x4004131c );');
|
|
Add('PROVIDE ( r_ld_util_active_master_afh_map_set = 0x40041308 );');
|
|
Add('PROVIDE ( r_ld_util_bch_create = 0x40040fcc );');
|
|
Add('PROVIDE ( r_ld_util_fhs_pk = 0x400411c8 );');
|
|
Add('PROVIDE ( r_ld_util_fhs_unpk = 0x40040e54 );');
|
|
Add('PROVIDE ( r_ld_util_stp_pk = 0x400413f4 );');
|
|
Add('PROVIDE ( r_ld_util_stp_unpk = 0x40041324 );');
|
|
Add('PROVIDE ( r_ld_version_get = 0x4003ca6c );');
|
|
Add('PROVIDE ( r_ld_wlcoex_set = 0x4003caf8 );');
|
|
Add('PROVIDE ( r_llc_ch_assess_get_current_ch_map = 0x40041574 );');
|
|
Add('PROVIDE ( r_llc_ch_assess_get_local_ch_map = 0x4004150c );');
|
|
Add('PROVIDE ( r_llc_ch_assess_local = 0x40041494 );');
|
|
Add('PROVIDE ( r_llc_ch_assess_merge_ch = 0x40041588 );');
|
|
Add('PROVIDE ( r_llc_ch_assess_reass_ch = 0x400415c0 );');
|
|
Add('PROVIDE ( r_llc_common_cmd_complete_send = 0x40044eac );');
|
|
Add('PROVIDE ( r_llc_common_cmd_status_send = 0x40044ee0 );');
|
|
Add('PROVIDE ( r_llc_common_enc_change_evt_send = 0x40044f6c );');
|
|
Add('PROVIDE ( r_llc_common_enc_key_ref_comp_evt_send = 0x40044f38 );');
|
|
Add('PROVIDE ( r_llc_common_flush_occurred_send = 0x40044f0c );');
|
|
Add('PROVIDE ( r_llc_common_nb_of_pkt_comp_evt_send = 0x40045000 );');
|
|
Add('PROVIDE ( r_llc_con_update_complete_send = 0x40044d68 );');
|
|
Add('PROVIDE ( r_llc_con_update_finished = 0x4004518c );');
|
|
Add('PROVIDE ( r_llc_con_update_ind = 0x40045038 );');
|
|
Add('PROVIDE ( r_llc_discon_event_complete_send = 0x40044a30 );');
|
|
Add('PROVIDE ( r_llc_end_evt_defer = 0x40046330 );');
|
|
Add('PROVIDE ( r_llc_feats_rd_event_send = 0x40044e0c );');
|
|
Add('PROVIDE ( r_llc_init = 0x40044778 );');
|
|
Add('PROVIDE ( r_llc_le_con_cmp_evt_send = 0x40044a78 );');
|
|
Add('PROVIDE ( r_llc_llcp_ch_map_update_pdu_send = 0x40043f94 );');
|
|
Add('PROVIDE ( r_llc_llcp_con_param_req_pdu_send = 0x400442fc );');
|
|
Add('PROVIDE ( r_llc_llcp_con_param_rsp_pdu_send = 0x40044358 );');
|
|
Add('PROVIDE ( r_llc_llcp_con_update_pdu_send = 0x400442c4 );');
|
|
Add('PROVIDE ( r_llc_llcp_enc_req_pdu_send = 0x40044064 );');
|
|
Add('PROVIDE ( r_llc_llcp_enc_rsp_pdu_send = 0x40044160 );');
|
|
Add('PROVIDE ( r_llc_llcp_feats_req_pdu_send = 0x400443b4 );');
|
|
Add('PROVIDE ( r_llc_llcp_feats_rsp_pdu_send = 0x400443f0 );');
|
|
Add('PROVIDE ( r_llc_llcp_get_autorize = 0x4004475c );');
|
|
Add('PROVIDE ( r_llc_llcp_length_req_pdu_send = 0x40044574 );');
|
|
Add('PROVIDE ( r_llc_llcp_length_rsp_pdu_send = 0x400445ac );');
|
|
Add('PROVIDE ( r_llc_llcp_pause_enc_req_pdu_send = 0x40043fd8 );');
|
|
Add('PROVIDE ( r_llc_llcp_pause_enc_rsp_pdu_send = 0x40044010 );');
|
|
Add('PROVIDE ( r_llc_llcp_ping_req_pdu_send = 0x4004454c );');
|
|
Add('PROVIDE ( r_llc_llcp_ping_rsp_pdu_send = 0x40044560 );');
|
|
Add('PROVIDE ( r_llc_llcp_recv_handler = 0x40044678 );');
|
|
Add('PROVIDE ( r_llc_llcp_reject_ind_pdu_send = 0x4004425c );');
|
|
Add('PROVIDE ( r_llc_llcp_start_enc_req_pdu_send = 0x4004441c );');
|
|
Add('PROVIDE ( r_llc_llcp_start_enc_rsp_pdu_send = 0x400441f8 );');
|
|
Add('PROVIDE ( r_llc_llcp_terminate_ind_pdu_send = 0x400444b0 );');
|
|
Add('PROVIDE ( r_llc_llcp_tester_send = 0x400445e4 );');
|
|
Add('PROVIDE ( r_llc_llcp_unknown_rsp_send_pdu = 0x40044534 );');
|
|
Add('PROVIDE ( r_llc_llcp_version_ind_pdu_send = 0x40043f6c );');
|
|
Add('PROVIDE ( r_llc_lsto_con_update = 0x40045098 );');
|
|
Add('PROVIDE ( r_llc_ltk_req_send = 0x40044dc0 );');
|
|
Add('PROVIDE ( r_llc_map_update_finished = 0x40045260 );');
|
|
Add('PROVIDE ( r_llc_map_update_ind = 0x400450f0 );');
|
|
Add('PROVIDE ( r_llc_pdu_acl_tx_ack_defer = 0x400464dc );');
|
|
Add('PROVIDE ( r_llc_pdu_defer = 0x40046528 );');
|
|
Add('PROVIDE ( r_llc_pdu_llcp_tx_ack_defer = 0x400463ac );');
|
|
Add('PROVIDE ( r_llc_reset = 0x400447b8 );');
|
|
Add('PROVIDE ( r_llc_start = 0x400447f4 );');
|
|
Add('PROVIDE ( r_llc_stop = 0x400449ac );');
|
|
Add('PROVIDE ( r_llc_util_bw_mgt = 0x4004629c );');
|
|
Add('PROVIDE ( r_llc_util_clear_operation_ptr = 0x40046234 );');
|
|
Add('PROVIDE ( r_llc_util_dicon_procedure = 0x40046130 );');
|
|
Add('PROVIDE ( r_llc_util_get_free_conhdl = 0x400460c8 );');
|
|
Add('PROVIDE ( r_llc_util_get_nb_active_link = 0x40046100 );');
|
|
Add('PROVIDE ( r_llc_util_set_auth_payl_to_margin = 0x400461f4 );');
|
|
Add('PROVIDE ( r_llc_util_set_llcp_discard_enable = 0x400461c8 );');
|
|
Add('PROVIDE ( r_llc_util_update_channel_map = 0x400461ac );');
|
|
Add('PROVIDE ( r_llc_version_rd_event_send = 0x40044e60 );');
|
|
Add('PROVIDE ( r_lld_adv_start = 0x40048b38 );');
|
|
Add('PROVIDE ( r_lld_adv_stop = 0x40048ea0 );');
|
|
Add('PROVIDE ( r_lld_ch_map_ind = 0x4004a2f4 );');
|
|
Add('PROVIDE ( r_lld_con_param_req = 0x40049f0c );');
|
|
Add('PROVIDE ( r_lld_con_param_rsp = 0x40049e00 );');
|
|
Add('PROVIDE ( r_lld_con_start = 0x400491f8 );');
|
|
Add('PROVIDE ( r_lld_con_stop = 0x40049fdc );');
|
|
Add('PROVIDE ( r_lld_con_update_after_param_req = 0x40049bcc );');
|
|
Add('PROVIDE ( r_lld_con_update_ind = 0x4004a30c );');
|
|
Add('PROVIDE ( r_lld_con_update_req = 0x40049b60 );');
|
|
Add('PROVIDE ( r_lld_core_reset = 0x40048a9c );');
|
|
Add('PROVIDE ( r_lld_crypt_isr = 0x4004a324 );');
|
|
Add('PROVIDE ( r_lld_evt_adv_create = 0x400481f4 );');
|
|
Add('PROVIDE ( r_lld_evt_canceled = 0x400485c8 );');
|
|
Add('PROVIDE ( r_lld_evt_channel_next = 0x40046aac );');
|
|
Add('PROVIDE ( r_lld_evt_deffered_elt_handler = 0x400482bc );');
|
|
Add('PROVIDE ( r_lld_evt_delete_elt_handler = 0x40046974 );');
|
|
Add('PROVIDE ( r_lld_evt_delete_elt_push = 0x40046a3c );');
|
|
Add('PROVIDE ( r_lld_evt_drift_compute = 0x40047670 );');
|
|
Add('PROVIDE ( r_lld_evt_elt_delete = 0x40047538 );');
|
|
Add('PROVIDE ( r_lld_evt_elt_insert = 0x400474c8 );');
|
|
Add('PROVIDE ( r_lld_evt_end = 0x400483e8 );');
|
|
Add('PROVIDE ( r_lld_evt_end_isr = 0x4004862c );');
|
|
Add('PROVIDE ( r_lld_evt_init = 0x40046b3c );');
|
|
Add('PROVIDE ( r_lld_evt_init_evt = 0x40046cd0 );');
|
|
Add('PROVIDE ( r_lld_evt_move_to_master = 0x40047ba0 );');
|
|
Add('PROVIDE ( r_lld_evt_move_to_slave = 0x40047e18 );');
|
|
Add('PROVIDE ( r_lld_evt_prevent_stop = 0x40047adc );');
|
|
Add('PROVIDE ( r_lld_evt_restart = 0x40046d50 );');
|
|
Add('PROVIDE ( r_lld_evt_rx = 0x40048578 );');
|
|
Add('PROVIDE ( r_lld_evt_rx_isr = 0x40048678 );');
|
|
Add('PROVIDE ( r_lld_evt_scan_create = 0x40047ae8 );');
|
|
Add('PROVIDE ( r_lld_evt_schedule = 0x40047908 );');
|
|
Add('PROVIDE ( r_lld_evt_schedule_next = 0x400477dc );');
|
|
Add('PROVIDE ( r_lld_evt_schedule_next_instant = 0x400476a8 );');
|
|
Add('PROVIDE ( r_lld_evt_slave_update = 0x40048138 );');
|
|
Add('PROVIDE ( r_lld_evt_update_create = 0x40047cd8 );');
|
|
Add('PROVIDE ( r_lld_get_mode = 0x40049ff8 );');
|
|
Add('PROVIDE ( r_lld_init = 0x4004873c );');
|
|
Add('PROVIDE ( r_lld_move_to_master = 0x400499e0 );');
|
|
Add('PROVIDE ( r_lld_move_to_slave = 0x4004a024 );');
|
|
Add('PROVIDE ( r_lld_pdu_adv_pack = 0x4004b488 );');
|
|
Add('PROVIDE ( r_lld_pdu_check = 0x4004ac34 );');
|
|
Add('PROVIDE ( r_lld_pdu_data_send = 0x4004b018 );');
|
|
Add('PROVIDE ( r_lld_pdu_data_tx_push = 0x4004aecc );');
|
|
Add('PROVIDE ( r_lld_pdu_rx_handler = 0x4004b4d4 );');
|
|
Add('PROVIDE ( r_lld_pdu_send_packet = 0x4004b774 );');
|
|
Add('PROVIDE ( r_lld_pdu_tx_flush = 0x4004b414 );');
|
|
Add('PROVIDE ( r_lld_pdu_tx_loop = 0x4004ae40 );');
|
|
Add('PROVIDE ( r_lld_pdu_tx_prog = 0x4004b120 );');
|
|
Add('PROVIDE ( r_lld_pdu_tx_push = 0x4004b080 );');
|
|
Add('PROVIDE ( r_lld_ral_renew_req = 0x4004a73c );');
|
|
Add('PROVIDE ( r_lld_scan_start = 0x40048ee0 );');
|
|
Add('PROVIDE ( r_lld_scan_stop = 0x40049190 );');
|
|
Add('PROVIDE ( r_lld_test_mode_rx = 0x4004a540 );');
|
|
Add('PROVIDE ( r_lld_test_mode_tx = 0x4004a350 );');
|
|
Add('PROVIDE ( r_lld_test_stop = 0x4004a710 );');
|
|
Add('PROVIDE ( r_lld_util_anchor_point_move = 0x4004bacc );');
|
|
Add('PROVIDE ( r_lld_util_compute_ce_max = 0x4004bc0c );');
|
|
Add('PROVIDE ( r_lld_util_connection_param_set = 0x4004ba40 );');
|
|
Add('PROVIDE ( r_lld_util_dle_set_cs_fields = 0x4004ba90 );');
|
|
Add('PROVIDE ( r_lld_util_eff_tx_time_set = 0x4004bd88 );');
|
|
Add('PROVIDE ( r_lld_util_elt_programmed = 0x4004bce0 );');
|
|
Add('PROVIDE ( r_lld_util_flush_list = 0x4004bbd8 );');
|
|
Add('PROVIDE ( r_lld_util_freq2chnl = 0x4004b9e4 );');
|
|
Add('PROVIDE ( r_lld_util_get_bd_address = 0x4004b8ac );');
|
|
Add('PROVIDE ( r_lld_util_get_local_offset = 0x4004ba10 );');
|
|
Add('PROVIDE ( r_lld_util_get_peer_offset = 0x4004ba24 );');
|
|
Add('PROVIDE ( r_lld_util_get_tx_pkt_cnt = 0x4004bd80 );');
|
|
Add('PROVIDE ( r_lld_util_instant_get = 0x4004b890 );');
|
|
Add('PROVIDE ( r_lld_util_instant_ongoing = 0x4004bbfc );');
|
|
Add('PROVIDE ( r_lld_util_priority_set = 0x4004bd10 );');
|
|
Add('PROVIDE ( r_lld_util_priority_update = 0x4004bd78 );');
|
|
Add('PROVIDE ( r_lld_util_ral_force_rpa_renew = 0x4004b980 );');
|
|
Add('PROVIDE ( r_lld_util_set_bd_address = 0x4004b8f8 );');
|
|
Add('PROVIDE ( r_lld_wlcoex_set = 0x4004bd98 );');
|
|
Add('PROVIDE ( r_llm_ble_ready = 0x4004cc34 );');
|
|
Add('PROVIDE ( r_llm_common_cmd_complete_send = 0x4004d288 );');
|
|
Add('PROVIDE ( r_llm_common_cmd_status_send = 0x4004d2b4 );');
|
|
Add('PROVIDE ( r_llm_con_req_ind = 0x4004cc54 );');
|
|
Add('PROVIDE ( r_llm_con_req_tx_cfm = 0x4004d158 );');
|
|
Add('PROVIDE ( r_llm_create_con = 0x4004de78 );');
|
|
Add('PROVIDE ( r_llm_encryption_done = 0x4004dff8 );');
|
|
Add('PROVIDE ( r_llm_encryption_start = 0x4004e128 );');
|
|
Add('PROVIDE ( r_llm_end_evt_defer = 0x4004eb6c );');
|
|
Add('PROVIDE ( r_llm_init = 0x4004c9f8 );');
|
|
Add('PROVIDE ( r_llm_le_adv_report_ind = 0x4004cdf4 );');
|
|
Add('PROVIDE ( r_llm_pdu_defer = 0x4004ec48 );');
|
|
Add('PROVIDE ( r_llm_ral_clear = 0x4004e1fc );');
|
|
Add('PROVIDE ( r_llm_ral_dev_add = 0x4004e23c );');
|
|
Add('PROVIDE ( r_llm_ral_dev_rm = 0x4004e3bc );');
|
|
Add('PROVIDE ( r_llm_ral_get_rpa = 0x4004e400 );');
|
|
Add('PROVIDE ( r_llm_ral_set_timeout = 0x4004e4a0 );');
|
|
Add('PROVIDE ( r_llm_ral_update = 0x4004e4f8 );');
|
|
Add('PROVIDE ( r_llm_set_adv_data = 0x4004d960 );');
|
|
Add('PROVIDE ( r_llm_set_adv_en = 0x4004d7ec );');
|
|
Add('PROVIDE ( r_llm_set_adv_param = 0x4004d5f4 );');
|
|
Add('PROVIDE ( r_llm_set_scan_en = 0x4004db64 );');
|
|
Add('PROVIDE ( r_llm_set_scan_param = 0x4004dac8 );');
|
|
Add('PROVIDE ( r_llm_set_scan_rsp_data = 0x4004da14 );');
|
|
Add('PROVIDE ( r_llm_test_mode_start_rx = 0x4004d534 );');
|
|
Add('PROVIDE ( r_llm_test_mode_start_tx = 0x4004d2fc );');
|
|
Add('PROVIDE ( r_llm_util_adv_data_update = 0x4004e8fc );');
|
|
Add('PROVIDE ( r_llm_util_apply_bd_addr = 0x4004e868 );');
|
|
Add('PROVIDE ( r_llm_util_bd_addr_in_ral = 0x4004eb08 );');
|
|
Add('PROVIDE ( r_llm_util_bd_addr_in_wl = 0x4004e788 );');
|
|
Add('PROVIDE ( r_llm_util_bd_addr_wl_position = 0x4004e720 );');
|
|
Add('PROVIDE ( r_llm_util_bl_add = 0x4004e9ac );');
|
|
Add('PROVIDE ( r_llm_util_bl_check = 0x4004e930 );');
|
|
Add('PROVIDE ( r_llm_util_bl_rem = 0x4004ea70 );');
|
|
Add('PROVIDE ( r_llm_util_check_address_validity = 0x4004e7e4 );');
|
|
Add('PROVIDE ( r_llm_util_check_evt_mask = 0x4004e8b0 );');
|
|
Add('PROVIDE ( r_llm_util_check_map_validity = 0x4004e800 );');
|
|
Add('PROVIDE ( r_llm_util_get_channel_map = 0x4004e8d4 );');
|
|
Add('PROVIDE ( r_llm_util_get_supp_features = 0x4004e8e8 );');
|
|
Add('PROVIDE ( r_llm_util_set_public_addr = 0x4004e89c );');
|
|
Add('PROVIDE ( r_llm_wl_clr = 0x4004dc54 );');
|
|
Add('PROVIDE ( r_llm_wl_dev_add = 0x4004dcc0 );');
|
|
Add('PROVIDE ( r_llm_wl_dev_add_hdl = 0x4004dd38 );');
|
|
Add('PROVIDE ( r_llm_wl_dev_rem = 0x4004dcfc );');
|
|
Add('PROVIDE ( r_llm_wl_dev_rem_hdl = 0x4004dde0 );');
|
|
Add('PROVIDE ( r_lm_acl_disc = 0x4004f148 );');
|
|
Add('PROVIDE ( r_LM_AddSniff = 0x40022d20 );');
|
|
Add('PROVIDE ( r_lm_add_sync = 0x40051358 );');
|
|
Add('PROVIDE ( r_lm_afh_activate_timer = 0x4004f444 );');
|
|
Add('PROVIDE ( r_lm_afh_ch_ass_en_get = 0x4004f3f8 );');
|
|
Add('PROVIDE ( r_lm_afh_host_ch_class_get = 0x4004f410 );');
|
|
Add('PROVIDE ( r_lm_afh_master_ch_map_get = 0x4004f43c );');
|
|
Add('PROVIDE ( r_lm_afh_peer_ch_class_set = 0x4004f418 );');
|
|
Add('PROVIDE ( r_lm_check_active_sync = 0x40051334 );');
|
|
Add('PROVIDE ( r_LM_CheckEdrFeatureRequest = 0x4002f90c );');
|
|
Add('PROVIDE ( r_LM_CheckSwitchInstant = 0x4002f8c0 );');
|
|
Add('PROVIDE ( r_lm_check_sync_hl_rsp = 0x4005169c );');
|
|
Add('PROVIDE ( r_lm_clk_adj_ack_pending_clear = 0x4004f514 );');
|
|
Add('PROVIDE ( r_lm_clk_adj_instant_pending_set = 0x4004f4d8 );');
|
|
Add('PROVIDE ( r_LM_ComputePacketType = 0x4002f554 );');
|
|
Add('PROVIDE ( r_LM_ComputeSniffSubRate = 0x400233ac );');
|
|
Add('PROVIDE ( r_lm_debug_key_compare_192 = 0x4004f3a8 );');
|
|
Add('PROVIDE ( r_lm_debug_key_compare_256 = 0x4004f3d0 );');
|
|
Add('PROVIDE ( r_lm_dhkey_calc_init = 0x40013234 );');
|
|
Add('PROVIDE ( r_lm_dhkey_compare = 0x400132d8 );');
|
|
Add('PROVIDE ( r_lm_dut_mode_en_get = 0x4004f3ec );');
|
|
Add('PROVIDE ( r_LM_ExtractMaxEncKeySize = 0x4001aca4 );');
|
|
Add('PROVIDE ( r_lm_f1 = 0x40012bb8 );');
|
|
Add('PROVIDE ( r_lm_f2 = 0x40012cfc );');
|
|
Add('PROVIDE ( r_lm_f3 = 0x40013050 );');
|
|
Add('PROVIDE ( r_lm_g = 0x40012f90 );');
|
|
Add('PROVIDE ( r_LM_GetAFHSwitchInstant = 0x4002f86c );');
|
|
Add('PROVIDE ( r_lm_get_auth_en = 0x4004f1ac );');
|
|
Add('PROVIDE ( r_lm_get_common_pkt_types = 0x4002fa1c );');
|
|
Add('PROVIDE ( r_LM_GetConnectionAcceptTimeout = 0x4004f1f4 );');
|
|
Add('PROVIDE ( r_LM_GetFeature = 0x4002f924 );');
|
|
Add('PROVIDE ( r_LM_GetLinkTimeout = 0x400233ec );');
|
|
Add('PROVIDE ( r_LM_GetLocalNameSeg = 0x4004f200 );');
|
|
Add('PROVIDE ( r_lm_get_loopback_mode = 0x4004f248 );');
|
|
Add('PROVIDE ( r_LM_GetMasterEncKeySize = 0x4001b29c );');
|
|
Add('PROVIDE ( r_LM_GetMasterEncRand = 0x4001b288 );');
|
|
Add('PROVIDE ( r_LM_GetMasterKey = 0x4001b260 );');
|
|
Add('PROVIDE ( r_LM_GetMasterKeyRand = 0x4001b274 );');
|
|
Add('PROVIDE ( r_lm_get_min_sync_intv = 0x400517a8 );');
|
|
Add('PROVIDE ( r_lm_get_nb_acl = 0x4004ef9c );');
|
|
Add('PROVIDE ( r_lm_get_nb_sync_link = 0x4005179c );');
|
|
Add('PROVIDE ( r_lm_get_nonce = 0x400131c4 );');
|
|
Add('PROVIDE ( r_lm_get_oob_local_commit = 0x4004f374 );');
|
|
Add('PROVIDE ( r_lm_get_oob_local_data_192 = 0x4004f2d4 );');
|
|
Add('PROVIDE ( r_lm_get_oob_local_data_256 = 0x4004f318 );');
|
|
Add('PROVIDE ( r_LM_GetPINType = 0x4004f1e8 );');
|
|
Add('PROVIDE ( r_lm_get_priv_key_192 = 0x4004f278 );');
|
|
Add('PROVIDE ( r_lm_get_priv_key_256 = 0x4004f2b8 );');
|
|
Add('PROVIDE ( r_lm_get_pub_key_192 = 0x4004f258 );');
|
|
Add('PROVIDE ( r_lm_get_pub_key_256 = 0x4004f298 );');
|
|
Add('PROVIDE ( r_LM_GetQoSParam = 0x4002f6e0 );');
|
|
Add('PROVIDE ( r_lm_get_sec_con_host_supp = 0x4004f1d4 );');
|
|
Add('PROVIDE ( r_LM_GetSniffSubratingParam = 0x4002325c );');
|
|
Add('PROVIDE ( r_lm_get_sp_en = 0x4004f1c0 );');
|
|
Add('PROVIDE ( r_LM_GetSwitchInstant = 0x4002f7f8 );');
|
|
Add('PROVIDE ( r_lm_get_synchdl = 0x4005175c );');
|
|
Add('PROVIDE ( r_lm_get_sync_param = 0x400503b4 );');
|
|
Add('PROVIDE ( r_lm_init = 0x4004ed34 );');
|
|
Add('PROVIDE ( r_lm_init_sync = 0x400512d8 );');
|
|
Add('PROVIDE ( r_lm_is_acl_con = 0x4004f47c );');
|
|
Add('PROVIDE ( r_lm_is_acl_con_role = 0x4004f49c );');
|
|
Add('PROVIDE ( r_lm_is_clk_adj_ack_pending = 0x4004f4e8 );');
|
|
Add('PROVIDE ( r_lm_is_clk_adj_instant_pending = 0x4004f4c8 );');
|
|
Add('PROVIDE ( r_lm_local_ext_fr_configured = 0x4004f540 );');
|
|
Add('PROVIDE ( r_lm_look_for_stored_link_key = 0x4002f948 );');
|
|
Add('PROVIDE ( r_lm_look_for_sync = 0x40051774 );');
|
|
Add('PROVIDE ( r_lm_lt_addr_alloc = 0x4004ef1c );');
|
|
Add('PROVIDE ( r_lm_lt_addr_free = 0x4004ef74 );');
|
|
Add('PROVIDE ( r_lm_lt_addr_reserve = 0x4004ef48 );');
|
|
Add('PROVIDE ( r_LM_MakeCof = 0x4002f84c );');
|
|
Add('PROVIDE ( r_LM_MakeRandVec = 0x400112d8 );');
|
|
Add('PROVIDE ( r_lm_master_clk_adj_req_handler = 0x40054180 );');
|
|
Add('PROVIDE ( r_LM_MaxSlot = 0x4002f694 );');
|
|
Add('PROVIDE ( r_lm_modif_sync = 0x40051578 );');
|
|
Add('PROVIDE ( r_lm_n_is_zero = 0x40012170 );');
|
|
Add('PROVIDE ( r_lm_num_clk_adj_ack_pending_set = 0x4004f500 );');
|
|
Add('PROVIDE ( r_lm_oob_f1 = 0x40012e54 );');
|
|
Add('PROVIDE ( r_lm_pca_sscan_link_get = 0x4004f560 );');
|
|
Add('PROVIDE ( r_lm_pca_sscan_link_set = 0x4004f550 );');
|
|
Add('PROVIDE ( nvds_null_read = 0x400542a0 );');
|
|
Add('PROVIDE ( nvds_null_write = 0x400542a8 );');
|
|
Add('PROVIDE ( nvds_null_erase = 0x400542b0 );');
|
|
Add('PROVIDE ( nvds_read = 0x400542c4 );');
|
|
Add('PROVIDE ( nvds_write = 0x400542fc );');
|
|
Add('PROVIDE ( nvds_erase = 0x40054334 );');
|
|
Add('PROVIDE ( nvds_init_memory = 0x40054358 );');
|
|
Add('PROVIDE ( r_lmp_pack = 0x4001135c );');
|
|
Add('PROVIDE ( r_lmp_unpack = 0x4001149c );');
|
|
Add('PROVIDE ( r_lm_read_features = 0x4004f0d8 );');
|
|
Add('PROVIDE ( r_LM_RemoveSniff = 0x40023124 );');
|
|
Add('PROVIDE ( r_LM_RemoveSniffSubrating = 0x400233c4 );');
|
|
Add('PROVIDE ( r_lm_remove_sync = 0x400517c8 );');
|
|
Add('PROVIDE ( r_lm_reset_sync = 0x40051304 );');
|
|
Add('PROVIDE ( r_lm_role_switch_finished = 0x4004f028 );');
|
|
Add('PROVIDE ( r_lm_role_switch_start = 0x4004efe0 );');
|
|
Add('PROVIDE ( r_lm_sco_nego_end = 0x40051828 );');
|
|
Add('PROVIDE ( r_LM_SniffSubrateNegoRequired = 0x40023334 );');
|
|
Add('PROVIDE ( r_LM_SniffSubratingHlReq = 0x40023154 );');
|
|
Add('PROVIDE ( r_LM_SniffSubratingPeerReq = 0x400231dc );');
|
|
Add('PROVIDE ( r_lm_sp_debug_mode_get = 0x4004f398 );');
|
|
Add('PROVIDE ( r_lm_sp_n192_convert_wnaf = 0x400123c0 );');
|
|
Add('PROVIDE ( r_lm_sp_n_one = 0x400123a4 );');
|
|
Add('PROVIDE ( r_lm_sp_p192_add = 0x40012828 );');
|
|
Add('PROVIDE ( r_lm_sp_p192_dbl = 0x4001268c );');
|
|
Add('PROVIDE ( r_lm_sp_p192_invert = 0x40012b6c );');
|
|
Add('PROVIDE ( r_lm_sp_p192_point_jacobian_to_affine = 0x40012468 );');
|
|
Add('PROVIDE ( r_lm_sp_p192_points_jacobian_to_affine = 0x400124e4 );');
|
|
Add('PROVIDE ( r_lm_sp_p192_point_to_inf = 0x40012458 );');
|
|
Add('PROVIDE ( r_lm_sp_pre_compute_points = 0x40012640 );');
|
|
Add('PROVIDE ( r_lm_sp_sha256_calculate = 0x400121a0 );');
|
|
Add('PROVIDE ( r_LM_SuppressAclPacket = 0x4002f658 );');
|
|
Add('PROVIDE ( r_lm_sync_flow_ctrl_en_get = 0x4004f404 );');
|
|
Add('PROVIDE ( r_LM_UpdateAclEdrPacketType = 0x4002f5d8 );');
|
|
Add('PROVIDE ( r_LM_UpdateAclPacketType = 0x4002f584 );');
|
|
Add('PROVIDE ( r_modules_funcs = 0x3ffafd6c );');
|
|
Add('PROVIDE ( r_modules_funcs_p = 0x3ffafd68 );');
|
|
Add('PROVIDE ( r_nvds_del = 0x400544c4 );');
|
|
Add('PROVIDE ( r_nvds_get = 0x40054488 );');
|
|
Add('PROVIDE ( r_nvds_init = 0x40054410 );');
|
|
Add('PROVIDE ( r_nvds_lock = 0x400544fc );');
|
|
Add('PROVIDE ( r_nvds_put = 0x40054534 );');
|
|
Add('PROVIDE ( rom_abs_temp = 0x400054f0 );');
|
|
Add('PROVIDE ( rom_bb_bss_bw_40_en = 0x4000401c );');
|
|
Add('PROVIDE ( rom_bb_bss_cbw40_dig = 0x40003bac );');
|
|
Add('PROVIDE ( rom_bb_rx_ht20_cen_bcov_en = 0x40003734 );');
|
|
Add('PROVIDE ( rom_bb_tx_ht20_cen = 0x40003760 );');
|
|
Add('PROVIDE ( rom_bb_wdg_test_en = 0x40003b70 );');
|
|
Add('PROVIDE ( rom_cbw2040_cfg = 0x400040b0 );');
|
|
Add('PROVIDE ( rom_check_noise_floor = 0x40003c78 );');
|
|
Add('PROVIDE ( rom_chip_i2c_readReg = 0x40004110 );');
|
|
Add('PROVIDE ( rom_chip_i2c_writeReg = 0x40004168 );');
|
|
Add('PROVIDE ( rom_chip_v7_bt_init = 0x40004d8c );');
|
|
Add('PROVIDE ( rom_chip_v7_rx_init = 0x40004cec );');
|
|
Add('PROVIDE ( rom_chip_v7_rx_rifs_en = 0x40003d90 );');
|
|
Add('PROVIDE ( rom_chip_v7_tx_init = 0x40004d18 );');
|
|
Add('PROVIDE ( rom_clk_force_on_vit = 0x40003710 );');
|
|
Add('PROVIDE ( rom_correct_rf_ana_gain = 0x400062a8 );');
|
|
Add('PROVIDE ( rom_dc_iq_est = 0x400055c8 );');
|
|
Add('PROVIDE ( rom_disable_agc = 0x40002fa4 );');
|
|
Add('PROVIDE ( rom_enable_agc = 0x40002fcc );');
|
|
Add('PROVIDE ( rom_en_pwdet = 0x4000506c );');
|
|
Add('PROVIDE ( rom_gen_rx_gain_table = 0x40003e3c );');
|
|
Add('PROVIDE ( rom_get_data_sat = 0x4000312c );');
|
|
Add('PROVIDE ( rom_get_fm_sar_dout = 0x40005204 );');
|
|
Add('PROVIDE ( rom_get_power_db = 0x40005fc8 );');
|
|
Add('PROVIDE ( rom_get_pwctrl_correct = 0x400065d4 );');
|
|
Add('PROVIDE ( rom_get_rfcal_rxiq_data = 0x40005bbc );');
|
|
Add('PROVIDE ( rom_get_rf_gain_qdb = 0x40006290 );');
|
|
Add('PROVIDE ( rom_get_sar_dout = 0x40006564 );');
|
|
Add('PROVIDE ( rom_i2c_readReg = 0x40004148 );');
|
|
Add('PROVIDE ( rom_i2c_readReg_Mask = 0x400041c0 );');
|
|
Add('PROVIDE ( rom_i2c_writeReg = 0x400041a4 );');
|
|
Add('PROVIDE ( rom_i2c_writeReg_Mask = 0x400041fc );');
|
|
Add('PROVIDE ( rom_index_to_txbbgain = 0x40004df8 );');
|
|
Add('PROVIDE ( rom_iq_est_disable = 0x40005590 );');
|
|
Add('PROVIDE ( rom_iq_est_enable = 0x40005514 );');
|
|
Add('PROVIDE ( rom_linear_to_db = 0x40005f64 );');
|
|
Add('PROVIDE ( rom_loopback_mode_en = 0x400030f8 );');
|
|
Add('PROVIDE ( rom_meas_tone_pwr_db = 0x40006004 );');
|
|
Add('PROVIDE ( rom_mhz2ieee = 0x4000404c );');
|
|
Add('PROVIDE ( rom_noise_floor_auto_set = 0x40003bdc );');
|
|
Add('PROVIDE ( rom_pbus_debugmode = 0x40004458 );');
|
|
Add('PROVIDE ( rom_pbus_force_mode = 0x40004270 );');
|
|
Add('PROVIDE ( rom_pbus_force_test = 0x400043c0 );');
|
|
Add('PROVIDE ( rom_pbus_rd = 0x40004414 );');
|
|
Add('PROVIDE ( rom_pbus_rd_addr = 0x40004334 );');
|
|
Add('PROVIDE ( rom_pbus_rd_shift = 0x40004374 );');
|
|
Add('PROVIDE ( rom_pbus_rx_dco_cal = 0x40005620 );');
|
|
Add('PROVIDE ( rom_pbus_set_dco = 0x40004638 );');
|
|
Add('PROVIDE ( rom_pbus_set_rxgain = 0x40004480 );');
|
|
Add('PROVIDE ( rom_pbus_workmode = 0x4000446c );');
|
|
Add('PROVIDE ( rom_pbus_xpd_rx_off = 0x40004508 );');
|
|
Add('PROVIDE ( rom_pbus_xpd_rx_on = 0x4000453c );');
|
|
Add('PROVIDE ( rom_pbus_xpd_tx_off = 0x40004590 );');
|
|
Add('PROVIDE ( rom_pbus_xpd_tx_on = 0x400045e0 );');
|
|
Add('PROVIDE ( rom_phy_disable_agc = 0x40002f6c );');
|
|
Add('PROVIDE ( rom_phy_disable_cca = 0x40003000 );');
|
|
Add('PROVIDE ( rom_phy_enable_agc = 0x40002f88 );');
|
|
Add('PROVIDE ( rom_phy_enable_cca = 0x4000302c );');
|
|
Add('PROVIDE ( rom_phy_freq_correct = 0x40004b44 );');
|
|
Add('PROVIDE ( rom_phyFuns = 0x3ffae0c0 );');
|
|
Add('PROVIDE ( rom_phy_get_noisefloor = 0x40003c2c );');
|
|
Add('PROVIDE ( rom_phy_get_vdd33 = 0x4000642c );');
|
|
Add('PROVIDE ( rom_pow_usr = 0x40003044 );');
|
|
Add('PROVIDE ( rom_read_sar_dout = 0x400051c0 );');
|
|
Add('PROVIDE ( rom_restart_cal = 0x400046e0 );');
|
|
Add('PROVIDE ( rom_rfcal_pwrctrl = 0x40006058 );');
|
|
Add('PROVIDE ( rom_rfcal_rxiq = 0x40005b4c );');
|
|
Add('PROVIDE ( rom_rfcal_txcap = 0x40005dec );');
|
|
Add('PROVIDE ( rom_rfpll_reset = 0x40004680 );');
|
|
Add('PROVIDE ( rom_rfpll_set_freq = 0x400047f8 );');
|
|
Add('PROVIDE ( rom_rtc_mem_backup = 0x40003db4 );');
|
|
Add('PROVIDE ( rom_rtc_mem_recovery = 0x40003df4 );');
|
|
Add('PROVIDE ( rom_rx_gain_force = 0x4000351c );');
|
|
Add('PROVIDE ( rom_rxiq_cover_mg_mp = 0x40005a68 );');
|
|
Add('PROVIDE ( rom_rxiq_get_mis = 0x400058e4 );');
|
|
Add('PROVIDE ( rom_rxiq_set_reg = 0x40005a00 );');
|
|
Add('PROVIDE ( rom_set_cal_rxdc = 0x400030b8 );');
|
|
Add('PROVIDE ( rom_set_chan_cal_interp = 0x40005ce0 );');
|
|
Add('PROVIDE ( rom_set_channel_freq = 0x40004880 );');
|
|
Add('PROVIDE ( rom_set_loopback_gain = 0x40003060 );');
|
|
Add('PROVIDE ( rom_set_noise_floor = 0x40003d48 );');
|
|
Add('PROVIDE ( rom_set_pbus_mem = 0x400031a4 );');
|
|
Add('PROVIDE ( rom_set_rf_freq_offset = 0x40004ca8 );');
|
|
Add('PROVIDE ( rom_set_rxclk_en = 0x40003594 );');
|
|
Add('PROVIDE ( rom_set_txcap_reg = 0x40005d50 );');
|
|
Add('PROVIDE ( rom_set_txclk_en = 0x40003564 );');
|
|
Add('PROVIDE ( rom_spur_coef_cfg = 0x40003ac8 );');
|
|
Add('PROVIDE ( rom_spur_reg_write_one_tone = 0x400037f0 );');
|
|
Add('PROVIDE ( rom_start_tx_tone = 0x400036b4 );');
|
|
Add('PROVIDE ( rom_start_tx_tone_step = 0x400035d0 );');
|
|
Add('PROVIDE ( rom_stop_tx_tone = 0x40003f98 );');
|
|
Add('PROVIDE ( _rom_store = 0x4000d66c );');
|
|
Add('PROVIDE ( _rom_store_table = 0x4000d4f8 );');
|
|
Add('PROVIDE ( rom_target_power_add_backoff = 0x40006268 );');
|
|
Add('PROVIDE ( rom_tx_atten_set_interp = 0x400061cc );');
|
|
Add('PROVIDE ( rom_txbbgain_to_index = 0x40004dc0 );');
|
|
Add('PROVIDE ( rom_txcal_work_mode = 0x4000510c );');
|
|
Add('PROVIDE ( rom_txdc_cal_init = 0x40004e10 );');
|
|
Add('PROVIDE ( rom_txdc_cal_v70 = 0x40004ea4 );');
|
|
Add('PROVIDE ( rom_txiq_cover = 0x4000538c );');
|
|
Add('PROVIDE ( rom_txiq_get_mis_pwr = 0x400052dc );');
|
|
Add('PROVIDE ( rom_txiq_set_reg = 0x40005154 );');
|
|
Add('PROVIDE ( rom_tx_pwctrl_bg_init = 0x4000662c );');
|
|
Add('PROVIDE ( rom_txtone_linear_pwr = 0x40005290 );');
|
|
Add('PROVIDE ( rom_wait_rfpll_cal_end = 0x400047a8 );');
|
|
Add('PROVIDE ( rom_write_gain_mem = 0x4000348c );');
|
|
Add('PROVIDE ( rom_write_rfpll_sdm = 0x40004740 );');
|
|
Add('PROVIDE ( roundup2 = 0x4000ab7c );');
|
|
Add('PROVIDE ( r_plf_funcs_p = 0x3ffb8360 );');
|
|
Add('PROVIDE ( r_rf_rw_bt_init = 0x40054868 );');
|
|
Add('PROVIDE ( r_rf_rw_init = 0x40054b0c );');
|
|
Add('PROVIDE ( r_rf_rw_le_init = 0x400549d0 );');
|
|
Add('PROVIDE ( r_rwble_activity_ongoing_check = 0x40054d8c );');
|
|
Add('PROVIDE ( r_rwble_init = 0x40054bf4 );');
|
|
Add('PROVIDE ( r_rwble_isr = 0x40054e08 );');
|
|
Add('PROVIDE ( r_rwble_reset = 0x40054ce8 );');
|
|
Add('PROVIDE ( r_rwble_sleep_check = 0x40054d78 );');
|
|
Add('PROVIDE ( r_rwble_version = 0x40054dac );');
|
|
Add('PROVIDE ( r_rwbt_init = 0x40055160 );');
|
|
Add('PROVIDE ( r_rwbt_isr = 0x40055248 );');
|
|
Add('PROVIDE ( r_rwbt_reset = 0x400551bc );');
|
|
Add('PROVIDE ( r_rwbt_sleep_check = 0x4005577c );');
|
|
Add('PROVIDE ( r_rwbt_sleep_enter = 0x400557a4 );');
|
|
Add('PROVIDE ( r_rwbt_sleep_wakeup = 0x400557fc );');
|
|
Add('PROVIDE ( r_rwbt_sleep_wakeup_end = 0x400558cc );');
|
|
Add('PROVIDE ( r_rwbt_version = 0x4005520c );');
|
|
Add('PROVIDE ( r_rwip_assert_err = 0x40055f88 );');
|
|
Add('PROVIDE ( r_rwip_check_wakeup_boundary = 0x400558fc );');
|
|
Add('PROVIDE ( r_rwip_ext_wakeup_enable = 0x40055f3c );');
|
|
Add('PROVIDE ( r_rwip_init = 0x4005595c );');
|
|
Add('PROVIDE ( r_rwip_pca_clock_dragging_only = 0x40055f48 );');
|
|
Add('PROVIDE ( r_rwip_prevent_sleep_clear = 0x40055ec8 );');
|
|
Add('PROVIDE ( r_rwip_prevent_sleep_set = 0x40055e64 );');
|
|
Add('PROVIDE ( r_rwip_reset = 0x40055ab8 );');
|
|
Add('PROVIDE ( r_rwip_schedule = 0x40055b38 );');
|
|
Add('PROVIDE ( r_rwip_sleep = 0x40055b5c );');
|
|
Add('PROVIDE ( r_rwip_sleep_enable = 0x40055f30 );');
|
|
Add('PROVIDE ( r_rwip_version = 0x40055b20 );');
|
|
Add('PROVIDE ( r_rwip_wakeup = 0x40055dc4 );');
|
|
Add('PROVIDE ( r_rwip_wakeup_delay_set = 0x40055e4c );');
|
|
Add('PROVIDE ( r_rwip_wakeup_end = 0x40055e18 );');
|
|
Add('PROVIDE ( r_rwip_wlcoex_set = 0x40055f60 );');
|
|
Add('PROVIDE ( r_SHA_256 = 0x40013a90 );');
|
|
Add('PROVIDE ( rwip_coex_cfg = 0x3ff9914c );');
|
|
Add('PROVIDE ( rwip_priority = 0x3ff99159 );');
|
|
Add('PROVIDE ( rwip_rf = 0x3ffbdb28 );');
|
|
Add('PROVIDE ( rwip_rf_p_get = 0x400558f4 );');
|
|
Add('PROVIDE ( r_XorKey = 0x400112c0 );');
|
|
Add('PROVIDE ( sha_blk_bits = 0x3ff99290 );');
|
|
Add('PROVIDE ( sha_blk_bits_bytes = 0x3ff99288 );');
|
|
Add('PROVIDE ( sha_blk_hash_bytes = 0x3ff9928c );');
|
|
Add('PROVIDE ( sig_matrix = 0x3ffae293 );');
|
|
Add('PROVIDE ( sip_after_tx_complete = 0x4000b358 );');
|
|
Add('PROVIDE ( sip_alloc_to_host_evt = 0x4000ab9c );');
|
|
Add('PROVIDE ( sip_get_ptr = 0x4000b34c );');
|
|
Add('PROVIDE ( sip_get_state = 0x4000ae2c );');
|
|
Add('PROVIDE ( sip_init_attach = 0x4000ae58 );');
|
|
Add('PROVIDE ( sip_install_rx_ctrl_cb = 0x4000ae10 );');
|
|
Add('PROVIDE ( sip_install_rx_data_cb = 0x4000ae20 );');
|
|
Add('PROVIDE ( sip_is_active = 0x4000b3c0 );');
|
|
Add('PROVIDE ( sip_post_init = 0x4000aed8 );');
|
|
Add('PROVIDE ( sip_reclaim_from_host_cmd = 0x4000adbc );');
|
|
Add('PROVIDE ( sip_reclaim_tx_data_pkt = 0x4000ad5c );');
|
|
Add('PROVIDE ( sip_send = 0x4000af54 );');
|
|
Add('PROVIDE ( sip_to_host_chain_append = 0x4000aef8 );');
|
|
Add('PROVIDE ( sip_to_host_evt_send_done = 0x4000ac04 );');
|
|
Add('PROVIDE ( slc_add_credits = 0x4000baf4 );');
|
|
Add('PROVIDE ( slc_enable = 0x4000b64c );');
|
|
Add('PROVIDE ( slc_from_host_chain_fetch = 0x4000b7e8 );');
|
|
Add('PROVIDE ( slc_from_host_chain_recycle = 0x4000bb10 );');
|
|
Add('PROVIDE ( slc_has_pkt_to_host = 0x4000b5fc );');
|
|
Add('PROVIDE ( slc_init_attach = 0x4000b918 );');
|
|
Add('PROVIDE ( slc_init_credit = 0x4000badc );');
|
|
Add('PROVIDE ( slc_reattach = 0x4000b62c );');
|
|
Add('PROVIDE ( slc_send_to_host_chain = 0x4000b6a0 );');
|
|
Add('PROVIDE ( slc_set_host_io_max_window = 0x4000b89c );');
|
|
Add('PROVIDE ( slc_to_host_chain_recycle = 0x4000b758 );');
|
|
Add('PROVIDE ( specialModP256 = 0x4001600c );');
|
|
Add('PROVIDE ( __stack = 0x3ffe3f20 );');
|
|
Add('PROVIDE ( __stack_app = 0x3ffe7e30 );');
|
|
Add('PROVIDE ( _stack_sentry = 0x3ffe1320 );');
|
|
Add('PROVIDE ( _stack_sentry_app = 0x3ffe5230 );');
|
|
Add('PROVIDE ( _start = 0x40000704 );');
|
|
Add('PROVIDE ( start_tb_console = 0x4005a980 );');
|
|
Add('PROVIDE ( _stat_r = 0x4000bcb4 );');
|
|
Add('PROVIDE ( _stext = 0x40000560 );');
|
|
Add('PROVIDE ( SubtractBigHex256 = 0x40015bcc );');
|
|
Add('PROVIDE ( SubtractBigHexMod256 = 0x40015e8c );');
|
|
Add('PROVIDE ( SubtractBigHexUint32_256 = 0x40015f8c );');
|
|
Add('PROVIDE ( SubtractFromSelfBigHex256 = 0x40015c20 );');
|
|
Add('PROVIDE ( SubtractFromSelfBigHexSign256 = 0x40015dc8 );');
|
|
Add('PROVIDE ( sw_to_hw = 0x3ffb8d40 );');
|
|
Add('PROVIDE ( syscall_table_ptr_app = 0x3ffae020 );');
|
|
Add('PROVIDE ( syscall_table_ptr_pro = 0x3ffae024 );');
|
|
Add('PROVIDE ( tdefl_compress = 0x400600bc );');
|
|
Add('PROVIDE ( tdefl_compress_buffer = 0x400607f4 );');
|
|
Add('PROVIDE ( tdefl_compress_mem_to_mem = 0x40060900 );');
|
|
Add('PROVIDE ( tdefl_compress_mem_to_output = 0x400608e0 );');
|
|
Add('PROVIDE ( tdefl_get_adler32 = 0x400608d8 );');
|
|
Add('PROVIDE ( tdefl_get_prev_return_status = 0x400608d0 );');
|
|
Add('PROVIDE ( tdefl_init = 0x40060810 );');
|
|
Add('PROVIDE ( tdefl_write_image_to_png_file_in_memory = 0x4006091c );');
|
|
Add('PROVIDE ( tdefl_write_image_to_png_file_in_memory_ex = 0x40060910 );');
|
|
Add('PROVIDE ( tinfl_decompress = 0x4005ef30 );');
|
|
Add('PROVIDE ( tinfl_decompress_mem_to_callback = 0x40060090 );');
|
|
Add('PROVIDE ( tinfl_decompress_mem_to_mem = 0x40060050 );');
|
|
Add('PROVIDE ( UartDev = 0x3ffe019c );');
|
|
Add('PROVIDE ( user_code_start = 0x3ffe0400 );');
|
|
Add('PROVIDE ( veryBigHexP256 = 0x3ff9736c );');
|
|
Add('PROVIDE ( xthal_bcopy = 0x4000c098 );');
|
|
Add('PROVIDE ( xthal_copy123 = 0x4000c124 );');
|
|
Add('PROVIDE ( xthal_get_ccompare = 0x4000c078 );');
|
|
Add('PROVIDE ( xthal_get_ccount = 0x4000c050 );');
|
|
Add('PROVIDE ( xthal_get_interrupt = 0x4000c1e4 );');
|
|
Add('PROVIDE ( xthal_get_intread = 0x4000c1e4 );');
|
|
Add('PROVIDE ( Xthal_intlevel = 0x3ff9c2b4 );');
|
|
Add('PROVIDE ( xthal_memcpy = 0x4000c0bc );');
|
|
Add('PROVIDE ( xthal_set_ccompare = 0x4000c058 );');
|
|
Add('PROVIDE ( xthal_set_intclear = 0x4000c1ec );');
|
|
Add('PROVIDE ( _xtos_set_intlevel = 0x4000bfdc );');
|
|
Add('PROVIDE ( g_ticks_per_us_pro = 0x3ffe01e0 );');
|
|
Add('PROVIDE ( g_ticks_per_us_app = 0x3ffe40f0 );');
|
|
Add('PROVIDE ( esp_rom_spiflash_config_param = 0x40063238 );');
|
|
Add('PROVIDE ( esp_rom_spiflash_read_user_cmd = 0x400621b0 );');
|
|
Add('PROVIDE ( esp_rom_spiflash_write_encrypted_disable = 0x40062e60 );');
|
|
Add('PROVIDE ( esp_rom_spiflash_write_encrypted_enable = 0x40062df4 );');
|
|
Add('PROVIDE ( esp_rom_spiflash_prepare_encrypted_data = 0x40062e1c );');
|
|
Add('PROVIDE ( esp_rom_spiflash_select_qio_pins = 0x40061ddc );');
|
|
Add('PROVIDE ( esp_rom_spiflash_attach = 0x40062a6c );');
|
|
Add('PROVIDE ( esp_rom_spiflash_config_clk = 0x40062bc8 );');
|
|
Add('PROVIDE ( g_rom_spiflash_chip = 0x3ffae270 );');
|
|
Add('PROVIDE ( hci_le_rd_rem_used_feats_cmd_handler = 0x400417b4 );');
|
|
Add('PROVIDE ( llcp_length_req_handler = 0x40043808 );');
|
|
Add('PROVIDE ( llcp_unknown_rsp_handler = 0x40043ba8 );');
|
|
Add('PROVIDE ( FilePacketSendDeflatedReqMsgProc = 0x40008b24 );');
|
|
Add('PROVIDE ( FilePacketSendReqMsgProc = 0x40008860 );');
|
|
Add('PROVIDE ( FlashDwnLdDeflatedStartMsgProc = 0x40008ad8 );');
|
|
Add('PROVIDE ( FlashDwnLdParamCfgMsgProc = 0x4000891c );');
|
|
Add('PROVIDE ( FlashDwnLdStartMsgProc = 0x40008820 );');
|
|
Add('PROVIDE ( FlashDwnLdStopDeflatedReqMsgProc = 0x40008c18 );');
|
|
Add('PROVIDE ( FlashDwnLdStopReqMsgProc = 0x400088ec );');
|
|
Add('PROVIDE ( MemDwnLdStartMsgProc = 0x40008948 );');
|
|
Add('PROVIDE ( MemDwnLdStopReqMsgProc = 0x400089dc );');
|
|
Add('PROVIDE ( MemPacketSendReqMsgProc = 0x40008978 );');
|
|
Add('PROVIDE ( uart_baudrate_detect = 0x40009034 );');
|
|
Add('PROVIDE ( uart_buff_switch = 0x400093c0 );');
|
|
Add('PROVIDE ( UartConnCheck = 0x40008738 );');
|
|
Add('PROVIDE ( UartConnectProc = 0x40008a04 );');
|
|
Add('PROVIDE ( UartDwnLdProc = 0x40008ce8 );');
|
|
Add('PROVIDE ( UartRegReadProc = 0x40008a58 );');
|
|
Add('PROVIDE ( UartRegWriteProc = 0x40008a14 );');
|
|
Add('PROVIDE ( UartSetBaudProc = 0x40008aac );');
|
|
Add('PROVIDE ( UartSpiAttachProc = 0x40008a6c );');
|
|
Add('PROVIDE ( UartSpiReadProc = 0x40008a80 );');
|
|
Add('PROVIDE ( VerifyFlashMd5Proc = 0x40008c44 );');
|
|
Add('PROVIDE ( GetUartDevice = 0x40009598 );');
|
|
Add('PROVIDE ( RcvMsg = 0x4000954c );');
|
|
Add('PROVIDE ( SendMsg = 0x40009384 );');
|
|
Add('PROVIDE ( UartGetCmdLn = 0x40009564 );');
|
|
Add('PROVIDE ( UartRxString = 0x400092fc );');
|
|
Add('PROVIDE ( Uart_Init = 0x40009120 );');
|
|
Add('PROVIDE ( recv_packet = 0x40009424 );');
|
|
Add('PROVIDE ( send_packet = 0x40009340 );');
|
|
Add('PROVIDE ( uartAttach = 0x40008fd0 );');
|
|
Add('PROVIDE ( uart_div_modify = 0x400090cc );');
|
|
Add('PROVIDE ( uart_rx_intr_handler = 0x40008f4c );');
|
|
Add('PROVIDE ( uart_rx_one_char = 0x400092d0 );');
|
|
Add('PROVIDE ( uart_rx_one_char_block = 0x400092a4 );');
|
|
Add('PROVIDE ( uart_rx_readbuff = 0x40009394 );');
|
|
Add('PROVIDE ( uart_tx_flush = 0x40009258 );');
|
|
Add('PROVIDE ( uart_tx_one_char = 0x40009200 );');
|
|
Add('PROVIDE ( uart_tx_one_char2 = 0x4000922c );');
|
|
Add('PROVIDE ( uart_tx_switch = 0x40009028 );');
|
|
Add('PROVIDE ( gpio_output_set = 0x40009b24 );');
|
|
Add('PROVIDE ( gpio_output_set_high = 0x40009b5c );');
|
|
Add('PROVIDE ( gpio_input_get = 0x40009b88 );');
|
|
Add('PROVIDE ( gpio_input_get_high = 0x40009b9c );');
|
|
Add('PROVIDE ( gpio_matrix_in = 0x40009edc );');
|
|
Add('PROVIDE ( gpio_matrix_out = 0x40009f0c );');
|
|
Add('PROVIDE ( gpio_pad_select_gpio = 0x40009fdc );');
|
|
Add('PROVIDE ( gpio_pad_set_drv = 0x4000a11c );');
|
|
Add('PROVIDE ( gpio_pad_pulldown = 0x4000a348 );');
|
|
Add('PROVIDE ( gpio_pad_pullup = 0x4000a22c );');
|
|
Add('PROVIDE ( gpio_pad_hold = 0x4000a734 );');
|
|
Add('PROVIDE ( gpio_pad_unhold = 0x4000a484 );');
|
|
Add('PROVIDE ( ets_aes_crypt = 0x4005c9b8 );');
|
|
Add('PROVIDE ( ets_aes_disable = 0x4005c8f8 );');
|
|
Add('PROVIDE ( ets_aes_enable = 0x4005c8cc );');
|
|
Add('PROVIDE ( ets_aes_set_endian = 0x4005c928 );');
|
|
Add('PROVIDE ( ets_aes_setkey_dec = 0x4005c994 );');
|
|
Add('PROVIDE ( ets_aes_setkey_enc = 0x4005c97c );');
|
|
Add('PROVIDE ( ets_bigint_disable = 0x4005c4e0 );');
|
|
Add('PROVIDE ( ets_bigint_enable = 0x4005c498 );');
|
|
Add('PROVIDE ( ets_bigint_mod_mult_getz = 0x4005c818 );');
|
|
Add('PROVIDE ( ets_bigint_mod_mult_prepare = 0x4005c7b4 );');
|
|
Add('PROVIDE ( ets_bigint_mod_power_getz = 0x4005c614 );');
|
|
Add('PROVIDE ( ets_bigint_mod_power_prepare = 0x4005c54c );');
|
|
Add('PROVIDE ( ets_bigint_montgomery_mult_getz = 0x4005c7a4 );');
|
|
Add('PROVIDE ( ets_bigint_montgomery_mult_prepare = 0x4005c6fc );');
|
|
Add('PROVIDE ( ets_bigint_mult_getz = 0x4005c6e8 );');
|
|
Add('PROVIDE ( ets_bigint_mult_prepare = 0x4005c630 );');
|
|
Add('PROVIDE ( ets_bigint_wait_finish = 0x4005c520 );');
|
|
Add('PROVIDE ( ets_post = 0x4000673c );');
|
|
Add('PROVIDE ( ets_run = 0x400066bc );');
|
|
Add('PROVIDE ( ets_set_idle_cb = 0x40006674 );');
|
|
Add('PROVIDE ( ets_task = 0x40006688 );');
|
|
Add('PROVIDE ( ets_efuse_get_8M_clock = 0x40008710 );');
|
|
Add('PROVIDE ( ets_efuse_get_spiconfig = 0x40008658 );');
|
|
Add('PROVIDE ( ets_efuse_program_op = 0x40008628 );');
|
|
Add('PROVIDE ( ets_efuse_read_op = 0x40008600 );');
|
|
Add('PROVIDE ( ets_intr_lock = 0x400067b0 );');
|
|
Add('PROVIDE ( ets_intr_unlock = 0x400067c4 );');
|
|
Add('PROVIDE ( ets_isr_attach = 0x400067ec );');
|
|
Add('PROVIDE ( ets_waiti0 = 0x400067d8 );');
|
|
Add('PROVIDE ( intr_matrix_set = 0x4000681c );');
|
|
Add('PROVIDE ( check_pos = 0x400068b8 );');
|
|
Add('PROVIDE ( ets_set_appcpu_boot_addr = 0x4000689c );');
|
|
Add('PROVIDE ( ets_set_startup_callback = 0x4000688c );');
|
|
Add('PROVIDE ( ets_set_user_start = 0x4000687c );');
|
|
Add('PROVIDE ( ets_unpack_flash_code = 0x40007018 );');
|
|
Add('PROVIDE ( ets_unpack_flash_code_legacy = 0x4000694c );');
|
|
Add('PROVIDE ( rom_main = 0x400076c4 );');
|
|
Add('PROVIDE ( ets_write_char_uart = 0x40007cf8 );');
|
|
Add('PROVIDE ( ets_install_putc1 = 0x40007d18 );');
|
|
Add('PROVIDE ( ets_install_putc2 = 0x40007d38 );');
|
|
Add('PROVIDE ( ets_install_uart_printf = 0x40007d28 );');
|
|
Add('PROVIDE ( ets_printf = 0x40007d54 );');
|
|
Add('PROVIDE ( rtc_boot_control = 0x4000821c );');
|
|
Add('PROVIDE ( rtc_get_reset_reason = 0x400081d4 );');
|
|
Add('PROVIDE ( rtc_get_wakeup_cause = 0x400081f4 );');
|
|
Add('PROVIDE ( rtc_select_apb_bridge = 0x40008288 );');
|
|
Add('PROVIDE ( set_rtc_memory_crc = 0x40008208 );');
|
|
Add('PROVIDE ( software_reset = 0x4000824c );');
|
|
Add('PROVIDE ( software_reset_cpu = 0x40008264 );');
|
|
Add('PROVIDE ( ets_secure_boot_check = 0x4005cb40 );');
|
|
Add('PROVIDE ( ets_secure_boot_check_finish = 0x4005cc04 );');
|
|
Add('PROVIDE ( ets_secure_boot_check_start = 0x4005cbcc );');
|
|
Add('PROVIDE ( ets_secure_boot_finish = 0x4005ca84 );');
|
|
Add('PROVIDE ( ets_secure_boot_hash = 0x4005cad4 );');
|
|
Add('PROVIDE ( ets_secure_boot_obtain = 0x4005cb14 );');
|
|
Add('PROVIDE ( ets_secure_boot_rd_abstract = 0x4005cba8 );');
|
|
Add('PROVIDE ( ets_secure_boot_rd_iv = 0x4005cb84 );');
|
|
Add('PROVIDE ( ets_secure_boot_start = 0x4005ca34 );');
|
|
Add('PROVIDE ( ets_sha_disable = 0x4005c0a8 );');
|
|
Add('PROVIDE ( ets_sha_enable = 0x4005c07c );');
|
|
Add('PROVIDE ( ets_sha_finish = 0x4005c104 );');
|
|
Add('PROVIDE ( ets_sha_init = 0x4005c0d4 );');
|
|
Add('PROVIDE ( ets_sha_update = 0x4005c2a0 );');
|
|
Add('PROVIDE ( ets_delay_us = 0x40008534 );');
|
|
Add('PROVIDE ( ets_get_cpu_frequency = 0x4000855c );');
|
|
Add('PROVIDE ( ets_get_detected_xtal_freq = 0x40008588 );');
|
|
Add('PROVIDE ( ets_get_xtal_scale = 0x4000856c );');
|
|
Add('PROVIDE ( ets_update_cpu_frequency_rom = 0x40008550 );');
|
|
Add('PROVIDE ( hci_tl_env = 0x3ffb8154 );');
|
|
Add('PROVIDE ( ld_acl_env = 0x3ffb8258 );');
|
|
Add('PROVIDE ( ea_env = 0x3ffb80ec );');
|
|
Add('PROVIDE ( lc_sco_data_path_config = 0x3ffb81f8 );');
|
|
Add('PROVIDE ( lc_sco_env = 0x3ffb81fc );');
|
|
Add('PROVIDE ( ld_active_ch_map = 0x3ffb8334 );');
|
|
Add('PROVIDE ( ld_bcst_acl_env = 0x3ffb8274 );');
|
|
Add('PROVIDE ( ld_csb_rx_env = 0x3ffb8278 );');
|
|
Add('PROVIDE ( ld_csb_tx_env = 0x3ffb827c );');
|
|
Add('PROVIDE ( ld_env = 0x3ffb9510 );');
|
|
Add('PROVIDE ( ld_fm_env = 0x3ffb8284 );');
|
|
Add('PROVIDE ( ld_inq_env = 0x3ffb82e4 );');
|
|
Add('PROVIDE ( ld_iscan_env = 0x3ffb82e8 );');
|
|
Add('PROVIDE ( ld_page_env = 0x3ffb82f0 );');
|
|
Add('PROVIDE ( ld_pca_env = 0x3ffb82f4 );');
|
|
Add('PROVIDE ( ld_pscan_env = 0x3ffb8308 );');
|
|
Add('PROVIDE ( ld_sched_env = 0x3ffb830c );');
|
|
Add('PROVIDE ( ld_sched_params = 0x3ffb96c0 );');
|
|
Add('PROVIDE ( ld_sco_env = 0x3ffb824c );');
|
|
Add('PROVIDE ( ld_sscan_env = 0x3ffb832c );');
|
|
Add('PROVIDE ( ld_strain_env = 0x3ffb8330 );');
|
|
Add('PROVIDE ( LM_Sniff = 0x3ffb8230 );');
|
|
Add('PROVIDE ( LM_SniffSubRate = 0x3ffb8214 );');
|
|
Add('PROVIDE ( prbs_64bytes = 0x3ff98992 );');
|
|
Add('PROVIDE ( nvds_env = 0x3ffb8364 );');
|
|
Add('PROVIDE ( nvds_magic_number = 0x3ff9912a );');
|
|
Add('PROVIDE ( TASK_DESC_LLD = 0x3ff98b58 );');
|
|
Add('/* esp32.rom.libgcc.ld */');
|
|
Add('__absvdi2 = 0x4006387c;');
|
|
Add('__absvsi2 = 0x40063868;');
|
|
Add('__adddf3 = 0x40002590;');
|
|
Add('__addsf3 = 0x400020e8;');
|
|
Add('__addvdi3 = 0x40002cbc;');
|
|
Add('__addvsi3 = 0x40002c98;');
|
|
Add('__ashldi3 = 0x4000c818;');
|
|
Add('__ashrdi3 = 0x4000c830;');
|
|
Add('__bswapdi2 = 0x40064b08;');
|
|
Add('__bswapsi2 = 0x40064ae0;');
|
|
Add('__clrsbdi2 = 0x40064b7c;');
|
|
Add('__clrsbsi2 = 0x40064b64;');
|
|
Add('__clzdi2 = 0x4000ca50;');
|
|
Add('__clzsi2 = 0x4000c7e8;');
|
|
Add('__cmpdi2 = 0x40063820;');
|
|
Add('__ctzdi2 = 0x4000ca64;');
|
|
Add('__ctzsi2 = 0x4000c7f0;');
|
|
Add('__divdc3 = 0x400645a4;');
|
|
Add('__divdf3 = 0x40002954;');
|
|
Add('__divdi3 = 0x4000ca84;');
|
|
Add('__divsi3 = 0x4000c7b8;');
|
|
Add('__eqdf2 = 0x400636a8;');
|
|
Add('__eqsf2 = 0x40063374;');
|
|
Add('__extendsfdf2 = 0x40002c34;');
|
|
Add('__ffsdi2 = 0x4000ca2c;');
|
|
Add('__ffssi2 = 0x4000c804;');
|
|
Add('__fixdfdi = 0x40002ac4;');
|
|
Add('__fixdfsi = 0x40002a78;');
|
|
Add('__fixsfdi = 0x4000244c;');
|
|
Add('__fixsfsi = 0x4000240c;');
|
|
Add('__fixunsdfsi = 0x40002b30;');
|
|
Add('__fixunssfdi = 0x40002504;');
|
|
Add('__fixunssfsi = 0x400024ac;');
|
|
Add('__floatdidf = 0x4000c988;');
|
|
Add('__floatdisf = 0x4000c8c0;');
|
|
Add('__floatsidf = 0x4000c944;');
|
|
Add('__floatsisf = 0x4000c870;');
|
|
Add('__floatundidf = 0x4000c978;');
|
|
Add('__floatundisf = 0x4000c8b0;');
|
|
Add('__floatunsidf = 0x4000c938;');
|
|
Add('__floatunsisf = 0x4000c864;');
|
|
Add('__gcc_bcmp = 0x40064a70;');
|
|
Add('__gedf2 = 0x40063768;');
|
|
Add('__gesf2 = 0x4006340c;');
|
|
Add('__gtdf2 = 0x400636dc;');
|
|
Add('__gtsf2 = 0x400633a0;');
|
|
Add('__ledf2 = 0x40063704;');
|
|
Add('__lesf2 = 0x400633c0;');
|
|
Add('__lshrdi3 = 0x4000c84c;');
|
|
Add('__ltdf2 = 0x40063790;');
|
|
Add('__ltsf2 = 0x4006342c;');
|
|
Add('__moddi3 = 0x4000cd4c;');
|
|
Add('__modsi3 = 0x4000c7c0;');
|
|
Add('__muldc3 = 0x40063c90;');
|
|
Add('__muldf3 = 0x4006358c;');
|
|
Add('__muldi3 = 0x4000c9fc;');
|
|
Add('__mulsf3 = 0x400632c8;');
|
|
Add('__mulsi3 = 0x4000c7b0;');
|
|
Add('__mulvdi3 = 0x40002d78;');
|
|
Add('__mulvsi3 = 0x40002d60;');
|
|
Add('__nedf2 = 0x400636a8;');
|
|
Add('__negdf2 = 0x400634a0;');
|
|
Add('__negdi2 = 0x4000ca14;');
|
|
Add('__negsf2 = 0x400020c0;');
|
|
Add('__negvdi2 = 0x40002e98;');
|
|
Add('__negvsi2 = 0x40002e78;');
|
|
Add('__nesf2 = 0x40063374;');
|
|
Add('__nsau_data = 0x3ff96544;');
|
|
Add('__paritysi2 = 0x40002f3c;');
|
|
Add('__popcount_tab = 0x3ff96544;');
|
|
Add('__popcountdi2 = 0x40002ef8;');
|
|
Add('__popcountsi2 = 0x40002ed0;');
|
|
Add('__powidf2 = 0x400638e4;');
|
|
Add('__subdf3 = 0x400026e4;');
|
|
Add('__subsf3 = 0x400021d0;');
|
|
Add('__subvdi3 = 0x40002d20;');
|
|
Add('__subvsi3 = 0x40002cf8;');
|
|
Add('__truncdfsf2 = 0x40002b90;');
|
|
Add('__ucmpdi2 = 0x40063840;');
|
|
Add('__udiv_w_sdiv = 0x40064bec;');
|
|
Add('__udivdi3 = 0x4000cff8;');
|
|
Add('__udivmoddi4 = 0x40064bf4;');
|
|
Add('__udivsi3 = 0x4000c7c8;');
|
|
Add('__umoddi3 = 0x4000d280;');
|
|
Add('__umodsi3 = 0x4000c7d0;');
|
|
Add('__umulsidi3 = 0x4000c7d8;');
|
|
Add('__unorddf2 = 0x400637f4;');
|
|
Add('__unordsf2 = 0x40063478;');
|
|
Add('/* esp32.rom.newlib-data.ld */');
|
|
Add('_ctype_ = 0x3ff96354;');
|
|
Add('__ctype_ptr__ = 0x3ff96350;');
|
|
Add('_daylight = 0x3ffae0a4;');
|
|
Add('environ = 0x3ffae0b4;');
|
|
Add('_global_impure_ptr = 0x3ffae0b0;');
|
|
Add('__mb_cur_max = 0x3ff96530;');
|
|
Add('__month_lengths = 0x3ff9609c;');
|
|
Add('__sf_fake_stderr = 0x3ff96458;');
|
|
Add('__sf_fake_stdin = 0x3ff96498;');
|
|
Add('__sf_fake_stdout = 0x3ff96478;');
|
|
Add('_timezone = 0x3ffae0a0;');
|
|
Add('_tzname = 0x3ffae030;');
|
|
Add('__wctomb = 0x3ff96540;');
|
|
Add('/* esp32.rom.syscalls.ld */');
|
|
Add('close = 0x40001778;');
|
|
Add('open = 0x4000178c;');
|
|
Add('read = 0x400017dc;');
|
|
Add('sbrk = 0x400017f4;');
|
|
Add('times = 0x40001808;');
|
|
Add('write = 0x4000181c;');
|
|
Add('/* esp32.newlib-funcs.ld */');
|
|
Add('abs = 0x40056340;');
|
|
Add('__ascii_wctomb = 0x40058ef0;');
|
|
Add('atoi = 0x400566c4;');
|
|
Add('_atoi_r = 0x400566d4;');
|
|
Add('atol = 0x400566ec;');
|
|
Add('_atol_r = 0x400566fc;');
|
|
Add('bzero = 0x4000c1f4;');
|
|
Add('_cleanup = 0x40001df8;');
|
|
Add('_cleanup_r = 0x40001d48;');
|
|
Add('creat = 0x40000e8c;');
|
|
Add('div = 0x40056348;');
|
|
Add('__dummy_lock = 0x4000c728;');
|
|
Add('__dummy_lock_try = 0x4000c730;');
|
|
Add('__env_lock = 0x40001fd4;');
|
|
Add('__env_unlock = 0x40001fe0;');
|
|
Add('fclose = 0x400020ac;');
|
|
Add('_fclose_r = 0x40001fec;');
|
|
Add('fflush = 0x40059394;');
|
|
Add('_fflush_r = 0x40059320;');
|
|
Add('_findenv_r = 0x40001f44;');
|
|
Add('__fp_lock_all = 0x40001f1c;');
|
|
Add('__fp_unlock_all = 0x40001f30;');
|
|
Add('__fputwc = 0x40058da0;');
|
|
Add('fputwc = 0x40058ea8;');
|
|
Add('_fputwc_r = 0x40058e4c;');
|
|
Add('_fwalk = 0x4000c738;');
|
|
Add('_fwalk_reent = 0x4000c770;');
|
|
Add('_getenv_r = 0x40001fbc;');
|
|
Add('isalnum = 0x40000f04;');
|
|
Add('isalpha = 0x40000f18;');
|
|
Add('isascii = 0x4000c20c;');
|
|
Add('_isatty_r = 0x40000ea0;');
|
|
Add('isblank = 0x40000f2c;');
|
|
Add('iscntrl = 0x40000f50;');
|
|
Add('isdigit = 0x40000f64;');
|
|
Add('isgraph = 0x40000f94;');
|
|
Add('islower = 0x40000f78;');
|
|
Add('isprint = 0x40000fa8;');
|
|
Add('ispunct = 0x40000fc0;');
|
|
Add('isspace = 0x40000fd4;');
|
|
Add('isupper = 0x40000fe8;');
|
|
Add('__itoa = 0x40056678;');
|
|
Add('itoa = 0x400566b4;');
|
|
Add('labs = 0x40056370;');
|
|
Add('ldiv = 0x40056378;');
|
|
Add('longjmp = 0x400562cc;');
|
|
Add('memccpy = 0x4000c220;');
|
|
Add('memchr = 0x4000c244;');
|
|
Add('memcmp = 0x4000c260;');
|
|
Add('memcpy = 0x4000c2c8;');
|
|
Add('memmove = 0x4000c3c0;');
|
|
Add('memrchr = 0x4000c400;');
|
|
Add('memset = 0x4000c44c;');
|
|
Add('qsort = 0x40056424;');
|
|
Add('rand = 0x40001058;');
|
|
Add('rand_r = 0x400010d4;');
|
|
Add('__sccl = 0x4000c498;');
|
|
Add('__sclose = 0x400011b8;');
|
|
Add('__seofread = 0x40001148;');
|
|
Add('setjmp = 0x40056268;');
|
|
Add('__sflush_r = 0x400591e0;');
|
|
Add('__sfmoreglue = 0x40001dc8;');
|
|
Add('__sfp = 0x40001e90;');
|
|
Add('__sfp_lock_acquire = 0x40001e08;');
|
|
Add('__sfp_lock_release = 0x40001e14;');
|
|
Add('__sfvwrite_r = 0x4005893c;');
|
|
Add('__sinit = 0x40001e38;');
|
|
Add('__sinit_lock_acquire = 0x40001e20;');
|
|
Add('__sinit_lock_release = 0x40001e2c;');
|
|
Add('__smakebuf_r = 0x40059108;');
|
|
Add('srand = 0x40001004;');
|
|
Add('__sread = 0x40001118;');
|
|
Add('__srefill_r = 0x400593d4;');
|
|
Add('__sseek = 0x40001184;');
|
|
Add('strcasecmp = 0x400011cc;');
|
|
Add('strcasestr = 0x40001210;');
|
|
Add('strcat = 0x4000c518;');
|
|
Add('strchr = 0x4000c53c;');
|
|
Add('strcmp = 0x40001274;');
|
|
Add('strcoll = 0x40001398;');
|
|
Add('strcpy = 0x400013ac;');
|
|
Add('strcspn = 0x4000c558;');
|
|
Add('strdup = 0x4000143c;');
|
|
Add('_strdup_r = 0x40001450;');
|
|
Add('strlcat = 0x40001470;');
|
|
Add('strlcpy = 0x4000c584;');
|
|
Add('strlen = 0x400014c0;');
|
|
Add('strlwr = 0x40001524;');
|
|
Add('strncasecmp = 0x40001550;');
|
|
Add('strncat = 0x4000c5c4;');
|
|
Add('strncmp = 0x4000c5f4;');
|
|
Add('strncpy = 0x400015d4;');
|
|
Add('strndup = 0x400016b0;');
|
|
Add('_strndup_r = 0x400016c4;');
|
|
Add('strnlen = 0x4000c628;');
|
|
Add('strrchr = 0x40001708;');
|
|
Add('strsep = 0x40001734;');
|
|
Add('strspn = 0x4000c648;');
|
|
Add('strstr = 0x4000c674;');
|
|
Add('__strtok_r = 0x4000c6a8;');
|
|
Add('strtok_r = 0x4000c70c;');
|
|
Add('strtol = 0x4005681c;');
|
|
Add('_strtol_r = 0x40056714;');
|
|
Add('strtoul = 0x4005692c;');
|
|
Add('_strtoul_r = 0x40056834;');
|
|
Add('strupr = 0x4000174c;');
|
|
Add('__submore = 0x40058f3c;');
|
|
Add('__swbuf = 0x40058cb4;');
|
|
Add('__swbuf_r = 0x40058bec;');
|
|
Add('__swrite = 0x40001150;');
|
|
Add('__swsetup_r = 0x40058cc8;');
|
|
Add('toascii = 0x4000c720;');
|
|
Add('tolower = 0x40001868;');
|
|
Add('toupper = 0x40001884;');
|
|
Add('__tzcalc_limits = 0x400018a0;');
|
|
Add('__tz_lock = 0x40001a04;');
|
|
Add('__tz_unlock = 0x40001a10;');
|
|
Add('ungetc = 0x400590f4;');
|
|
Add('_ungetc_r = 0x40058fa0;');
|
|
Add('__utoa = 0x400561f0;');
|
|
Add('utoa = 0x40056258;');
|
|
Add('wcrtomb = 0x40058920;');
|
|
Add('_wcrtomb_r = 0x400588d8;');
|
|
Add('_wctomb_r = 0x40058f14;');
|
|
Add('/* esp32.peripherals.ld */');
|
|
Add('PROVIDE ( UART0 = 0x3ff40000 );');
|
|
Add('PROVIDE ( SPI1 = 0x3ff42000 );');
|
|
Add('PROVIDE ( SPI0 = 0x3ff43000 );');
|
|
Add('PROVIDE ( GPIO = 0x3ff44000 );');
|
|
Add('PROVIDE ( SIGMADELTA = 0x3ff44f00 );');
|
|
Add('PROVIDE ( RTCCNTL = 0x3ff48000 );');
|
|
Add('PROVIDE ( RTCIO = 0x3ff48400 );');
|
|
Add('PROVIDE ( SENS = 0x3ff48800 );');
|
|
Add('PROVIDE ( HINF = 0x3ff4B000 );');
|
|
Add('PROVIDE ( UHCI1 = 0x3ff4C000 );');
|
|
Add('PROVIDE ( I2S0 = 0x3ff4F000 );');
|
|
Add('PROVIDE ( UART1 = 0x3ff50000 );');
|
|
Add('PROVIDE ( I2C0 = 0x3ff53000 );');
|
|
Add('PROVIDE ( UHCI0 = 0x3ff54000 );');
|
|
Add('PROVIDE ( HOST = 0x3ff55000 );');
|
|
Add('PROVIDE ( RMT = 0x3ff56000 );');
|
|
Add('PROVIDE ( RMTMEM = 0x3ff56800 );');
|
|
Add('PROVIDE ( PCNT = 0x3ff57000 );');
|
|
Add('PROVIDE ( SLC = 0x3ff58000 );');
|
|
Add('PROVIDE ( LEDC = 0x3ff59000 );');
|
|
Add('PROVIDE ( MCPWM0 = 0x3ff5E000 );');
|
|
Add('PROVIDE ( TIMERG0 = 0x3ff5F000 );');
|
|
Add('PROVIDE ( TIMERG1 = 0x3ff60000 );');
|
|
Add('PROVIDE ( SPI2 = 0x3ff64000 );');
|
|
Add('PROVIDE ( SPI3 = 0x3ff65000 );');
|
|
Add('PROVIDE ( SYSCON = 0x3ff66000 );');
|
|
Add('PROVIDE ( I2C1 = 0x3ff67000 );');
|
|
Add('PROVIDE ( SDMMC = 0x3ff68000 );');
|
|
Add('PROVIDE ( EMAC_DMA = 0x3ff69000 );');
|
|
Add('PROVIDE ( EMAC_EXT = 0x3ff69800 );');
|
|
Add('PROVIDE ( EMAC_MAC = 0x3ff6A000 );');
|
|
Add('PROVIDE ( CAN = 0x3ff6B000 );');
|
|
Add('PROVIDE ( MCPWM1 = 0x3ff6C000 );');
|
|
Add('PROVIDE ( I2S1 = 0x3ff6D000 );');
|
|
Add('PROVIDE ( UART2 = 0x3ff6E000 );');
|
|
end
|
|
else // for ESP8266 use internal linker script
|
|
begin
|
|
Add('/* esp8266_out.ld */');
|
|
Add('MEMORY');
|
|
Add('{');
|
|
Add(' iram0_0_seg (RX) : org = 0x40100000, len = 0xC000');
|
|
Add(' iram0_2_seg (RX) : org = 0x40200010 + (0x10000 & (0x100000 - 1)),');
|
|
Add(' len = 0xf0000 - 0x10');
|
|
Add(' dram0_0_seg (RW) : org = 0x3FFE8000, len = 0x18000');
|
|
Add(' rtc_data_seg(RW) : org = 0x60001200, len = 0x200');
|
|
Add('}');
|
|
Add('/* esp8266.project.ld */');
|
|
Add('ENTRY(call_start_cpu);');
|
|
Add('SECTIONS');
|
|
Add('{');
|
|
Add(' .rtc.data :');
|
|
Add(' {');
|
|
Add(' _rtc_data_start = ABSOLUTE(.);');
|
|
Add(' *( .rtc.data .rtc.data.* .rtc.rodata .rtc.rodata.*)');
|
|
Add(' _rtc_data_end = ABSOLUTE(.);');
|
|
Add(' } > rtc_data_seg');
|
|
Add(' .rtc.bss (NOLOAD) :');
|
|
Add(' {');
|
|
Add(' _rtc_bss_start = ABSOLUTE(.);');
|
|
Add(' *( .rtc.bss)');
|
|
Add(' _rtc_bss_end = ABSOLUTE(.);');
|
|
Add(' } > rtc_data_seg');
|
|
Add(' .rtc_noinit (NOLOAD):');
|
|
Add(' {');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' _rtc_noinit_start = ABSOLUTE(.);');
|
|
Add(' *(.rtc_noinit .rtc_noinit.*)');
|
|
Add(' . = ALIGN(4) ;');
|
|
Add(' _rtc_noinit_end = ABSOLUTE(.);');
|
|
Add(' } > rtc_data_seg');
|
|
Add(' ASSERT(((_rtc_noinit_end - ORIGIN(rtc_data_seg)) <= LENGTH(rtc_data_seg)),');
|
|
Add(' "RTC segment data does not fit.")');
|
|
Add(' .iram0.vectors :');
|
|
Add(' {');
|
|
Add(' _iram_start = ABSOLUTE(.);');
|
|
Add(' _init_start = ABSOLUTE(.);');
|
|
Add(' KEEP(*(.SystemInfoVector.text));');
|
|
Add(' . = 0x10;');
|
|
Add(' KEEP(*(.DebugExceptionVector.text));');
|
|
Add(' . = 0x20;');
|
|
Add(' KEEP(*(.NMIExceptionVector.text));');
|
|
Add(' . = 0x30;');
|
|
Add(' KEEP(*(.KernelExceptionVector.text));');
|
|
Add(' . = 0x50;');
|
|
Add(' KEEP(*(.UserExceptionVector.text));');
|
|
Add(' . = 0x70;');
|
|
Add(' KEEP(*(.DoubleExceptionVector.text));');
|
|
Add(' *(.text .literal)');
|
|
Add(' *(.*Vector.literal)');
|
|
Add(' *(.UserEnter.literal);');
|
|
Add(' *(.UserEnter.text);');
|
|
Add(' . = ALIGN (16);');
|
|
Add(' *(.entry.text)');
|
|
Add(' *(.init.literal)');
|
|
Add(' *(.init)');
|
|
Add(' _init_end = ABSOLUTE(.);');
|
|
Add(' } > iram0_0_seg');
|
|
Add(' .iram0.text :');
|
|
Add(' {');
|
|
Add(' _iram_text_start = ABSOLUTE(.);');
|
|
Add(' *( .iram1 .iram1.*)');
|
|
Add(' *libphy.a:( .literal .literal.* .text .text.*)');
|
|
Add(' *libspi_flash.a:spi_flash_raw.*( .literal .literal.* .text .text.*)');
|
|
Add(' *libpp.a:( .literal .literal.* .text .text.*)');
|
|
Add(' _iram_text_end = ABSOLUTE(.);');
|
|
Add(' } > iram0_0_seg');
|
|
Add(' .iram0.bss :');
|
|
Add(' {');
|
|
Add(' . = ALIGN (4);');
|
|
Add(' _iram_bss_start = ABSOLUTE(.);');
|
|
Add(' *libcore.a:( .bss .bss.* COMMON)');
|
|
Add(' *libfreertos.a:freertos_hooks.*( .bss .bss.* COMMON)');
|
|
Add(' *libfreertos.a:impure.*( .bss .bss.* COMMON)');
|
|
Add(' *libfreertos.a:timers.*( .bss .bss.* COMMON)');
|
|
Add(' *libfreertos.a:queue.*( .bss .bss.* COMMON)');
|
|
Add(' *libfreertos.a:stream_buffer.*( .bss .bss.* COMMON)');
|
|
Add(' *libfreertos.a:event_groups.*( .bss .bss.* COMMON)');
|
|
Add(' *libfreertos.a:list.*( .bss .bss.* COMMON)');
|
|
Add(' *libfreertos.a:tasks.*( .bss .bss.* COMMON)');
|
|
Add(' *liblwip.a:( .bss .bss.* COMMON)');
|
|
Add(' . = ALIGN (4);');
|
|
Add(' _iram_bss_end = ABSOLUTE(.);');
|
|
Add(' _iram_end = ABSOLUTE(.);');
|
|
Add(' } > iram0_0_seg');
|
|
Add(' ASSERT(((_iram_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),');
|
|
Add(' "IRAM0 segment data does not fit.")');
|
|
Add(' .dram0.data :');
|
|
Add(' {');
|
|
Add(' _data_start = ABSOLUTE(.);');
|
|
Add(' *(.gnu.linkonce.d.*)');
|
|
Add(' *(.data1)');
|
|
Add(' *(.sdata)');
|
|
Add(' *(.sdata.*)');
|
|
Add(' *(.gnu.linkonce.s.*)');
|
|
Add(' *(.sdata2)');
|
|
Add(' *(.sdata2.*)');
|
|
Add(' *(.gnu.linkonce.s2.*)');
|
|
Add(' *(.jcr)');
|
|
Add(' *(.dram0 .dram0.*)');
|
|
Add(' *( .data .data.* .dram1 .dram1.*)');
|
|
Add(' *libspi_flash.a:spi_flash_raw.*( .rodata .rodata.*)');
|
|
Add(' *liblog.a:( .rodata .rodata.*)');
|
|
Add(' _data_end = ABSOLUTE(.);');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' } > dram0_0_seg');
|
|
Add(' .noinit (NOLOAD):');
|
|
Add(' {');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' _noinit_start = ABSOLUTE(.);');
|
|
Add(' *(.noinit .noinit.*)');
|
|
Add(' . = ALIGN(4) ;');
|
|
Add(' _noinit_end = ABSOLUTE(.);');
|
|
Add(' } > dram0_0_seg');
|
|
Add(' .dram0.bss (NOLOAD) :');
|
|
Add(' {');
|
|
Add(' . = ALIGN (8);');
|
|
Add(' _bss_start = ABSOLUTE(.);');
|
|
Add(' *(EXCLUDE_FILE(*libcore.a *libfreertos.a:tasks.* *libfreertos.a:list.* *libfreertos.a:event_groups.* *libfreertos.a:stream_buffer.* *libfreertos.a:queue.* *libfreertos.a:timers.* *libfreertos.a:impure.* *libfreertos.a:freertos_hooks.* *liblwip.a) .bss EXCLUDE_FILE(*libcore.a *libfreertos.a:tasks.* *libfreertos.a:list.* *libfreertos.a:event_groups.* *libfreertos.a:stream_buffer.* *libfreertos.a:queue.* *libfreertos.a:timers.* *libfreertos.a:impure.* *libfreertos.a:freertos_hooks.* *liblwip.a) .bss.* EXCLUDE_FILE(*libcore.a *libfreertos.a:tasks.* *libfreertos.a:list.* *libfreertos.a:event_groups.* *libfreertos.a:stream_buffer.* *libfreertos.a:queue.* *libfreertos.a:timers.* *libfreertos.a:impure.* *libfreertos.a:freertos_hooks.* *liblwip.a) COMMON)');
|
|
Add(' *(.dynsbss)');
|
|
Add(' *(.sbss)');
|
|
Add(' *(.sbss.*)');
|
|
Add(' *(.gnu.linkonce.sb.*)');
|
|
Add(' *(.scommon)');
|
|
Add(' *(.sbss2)');
|
|
Add(' *(.sbss2.*)');
|
|
Add(' *(.gnu.linkonce.sb2.*)');
|
|
Add(' *(.dynbss)');
|
|
Add(' *(.share.mem)');
|
|
Add(' *(.gnu.linkonce.b.*)');
|
|
Add(' . = ALIGN (8);');
|
|
Add(' _bss_end = ABSOLUTE(.);');
|
|
Add(' } > dram0_0_seg');
|
|
Add(' ASSERT(((_bss_end - ORIGIN(dram0_0_seg)) <= LENGTH(dram0_0_seg)),');
|
|
Add(' "DRAM segment data does not fit.")');
|
|
Add(' .flash.text :');
|
|
Add(' {');
|
|
Add(' _stext = .;');
|
|
Add(' _text_start = ABSOLUTE(.);');
|
|
Add(' *(EXCLUDE_FILE(*libphy.a *libspi_flash.a:spi_flash_raw.* *libpp.a) .literal EXCLUDE_FILE(*libphy.a *libspi_flash.a:spi_flash_raw.* *libpp.a) .literal.* EXCLUDE_FILE(*libphy.a *libspi_flash.a:spi_flash_raw.* *libpp.a) .text EXCLUDE_FILE(*libphy.a *libspi_flash.a:spi_flash_raw.* *libpp.a) .text.* .wifi0iram .wifi0iram.*)');
|
|
Add(' *(.irom0.literal .irom0.text)');
|
|
Add(' *(.irom.literal .irom.text .irom.text.literal)');
|
|
Add(' *(.text2 .text2.* .literal2 .literal2.*)');
|
|
Add(' *(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)');
|
|
Add(' *(.irom0.text)');
|
|
Add(' *(.fini.literal)');
|
|
Add(' *(.fini)');
|
|
Add(' *(.gnu.version)');
|
|
Add(' _text_end = ABSOLUTE(.);');
|
|
Add(' _etext = .;');
|
|
Add(' _flash_cache_start = ABSOLUTE(0);');
|
|
Add(' } >iram0_2_seg');
|
|
Add(' .flash.rodata ALIGN(4) :');
|
|
Add(' {');
|
|
Add(' _rodata_start = ABSOLUTE(.);');
|
|
Add(' . = 0x8;');
|
|
Add(' *(.rodata_desc .rodata_desc.*)');
|
|
Add(' *(.rodata_custom_desc .rodata_custom_desc.*)');
|
|
Add(' *(.rodata2 .rodata2.*)');
|
|
Add(' *(EXCLUDE_FILE(*libspi_flash.a:spi_flash_raw.* *liblog.a) .rodata EXCLUDE_FILE(*libspi_flash.a:spi_flash_raw.* *liblog.a) .rodata.*)');
|
|
Add(' *(.irom1.text)');
|
|
Add(' *(.gnu.linkonce.r.*)');
|
|
Add(' *(.rodata1)');
|
|
Add(' __XT_EXCEPTION_TABLE_ = ABSOLUTE(.);');
|
|
Add(' *(.xt_except_table)');
|
|
Add(' *(.gcc_except_table .gcc_except_table.*)');
|
|
Add(' *(.gnu.linkonce.e.*)');
|
|
Add(' *(.gnu.version_r)');
|
|
Add(' . = (. + 3) & ~ 3;');
|
|
Add(' __eh_frame = ABSOLUTE(.);');
|
|
Add(' KEEP(*(.eh_frame))');
|
|
Add(' . = (. + 7) & ~ 3;');
|
|
Add(' __init_array_start = ABSOLUTE(.);');
|
|
Add(' KEEP (*(EXCLUDE_FILE (*crtend.* *crtbegin.*) .ctors .ctors.*))');
|
|
Add(' __init_array_end = ABSOLUTE(.);');
|
|
Add(' KEEP (*crtbegin.*(.dtors))');
|
|
Add(' KEEP (*(EXCLUDE_FILE (*crtend.*) .dtors))');
|
|
Add(' KEEP (*(SORT(.dtors.*)))');
|
|
Add(' KEEP (*(.dtors))');
|
|
Add(' __XT_EXCEPTION_DESCS_ = ABSOLUTE(.);');
|
|
Add(' *(.xt_except_desc)');
|
|
Add(' *(.gnu.linkonce.h.*)');
|
|
Add(' __XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);');
|
|
Add(' *(.xt_except_desc_end)');
|
|
Add(' *(.dynamic)');
|
|
Add(' *(.gnu.version_d)');
|
|
Add(' soc_reserved_memory_region_start = ABSOLUTE(.);');
|
|
Add(' KEEP (*(.reserved_memory_address))');
|
|
Add(' soc_reserved_memory_region_end = ABSOLUTE(.);');
|
|
Add(' _rodata_end = ABSOLUTE(.);');
|
|
Add(' _lit4_start = ABSOLUTE(.);');
|
|
Add(' *(*.lit4)');
|
|
Add(' *(.lit4.*)');
|
|
Add(' *(.gnu.linkonce.lit4.*)');
|
|
Add(' _lit4_end = ABSOLUTE(.);');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' _thread_local_start = ABSOLUTE(.);');
|
|
Add(' *(.tdata)');
|
|
Add(' *(.tdata.*)');
|
|
Add(' *(.tbss)');
|
|
Add(' *(.tbss.*)');
|
|
Add(' _thread_local_end = ABSOLUTE(.);');
|
|
Add(' . = ALIGN(4);');
|
|
Add(' } >iram0_2_seg');
|
|
Add('}');
|
|
Add('/* esp8266-rom.ld */');
|
|
Add('PROVIDE ( SPI_sector_erase = 0x400040c0 );');
|
|
Add('PROVIDE ( SPI_page_program = 0x40004174 );');
|
|
Add('PROVIDE ( SPI_read_data = 0x400042ac );');
|
|
Add('PROVIDE ( SPI_read_status = 0x400043c8 );');
|
|
Add('PROVIDE ( SPI_write_status = 0x40004400 );');
|
|
Add('PROVIDE ( SPI_write_enable = 0x4000443c );');
|
|
Add('PROVIDE ( Wait_SPI_Idle = 0x4000448c );');
|
|
Add('PROVIDE ( Enable_QMode = 0x400044c0 );');
|
|
Add('PROVIDE ( Disable_QMode = 0x40004508 );');
|
|
Add('PROVIDE ( Cache_Read_Enable = 0x40004678 );');
|
|
Add('PROVIDE ( Cache_Read_Disable = 0x400047f0 );');
|
|
Add('PROVIDE ( lldesc_build_chain = 0x40004f40 );');
|
|
Add('PROVIDE ( lldesc_num2link = 0x40005050 );');
|
|
Add('PROVIDE ( lldesc_set_owner = 0x4000507c );');
|
|
Add('PROVIDE ( __adddf3 = 0x4000c538 );');
|
|
Add('PROVIDE ( __addsf3 = 0x4000c180 );');
|
|
Add('PROVIDE ( __divdf3 = 0x4000cb94 );');
|
|
Add('PROVIDE ( __divdi3 = 0x4000ce60 );');
|
|
Add('PROVIDE ( __divsi3 = 0x4000dc88 );');
|
|
Add('PROVIDE ( __extendsfdf2 = 0x4000cdfc );');
|
|
Add('PROVIDE ( __fixdfsi = 0x4000ccb8 );');
|
|
Add('PROVIDE ( __fixunsdfsi = 0x4000cd00 );');
|
|
Add('PROVIDE ( __fixunssfsi = 0x4000c4c4 );');
|
|
Add('PROVIDE ( __floatsidf = 0x4000e2f0 );');
|
|
Add('PROVIDE ( __floatsisf = 0x4000e2ac );');
|
|
Add('PROVIDE ( __floatunsidf = 0x4000e2e8 );');
|
|
Add('PROVIDE ( __floatunsisf = 0x4000e2a4 );');
|
|
Add('PROVIDE ( __muldf3 = 0x4000c8f0 );');
|
|
Add('PROVIDE ( __muldi3 = 0x40000650 );');
|
|
Add('PROVIDE ( __mulsf3 = 0x4000c3dc );');
|
|
Add('PROVIDE ( __subdf3 = 0x4000c688 );');
|
|
Add('PROVIDE ( __subsf3 = 0x4000c268 );');
|
|
Add('PROVIDE ( __truncdfsf2 = 0x4000cd5c );');
|
|
Add('PROVIDE ( __udivdi3 = 0x4000d310 );');
|
|
Add('PROVIDE ( __udivsi3 = 0x4000e21c );');
|
|
Add('PROVIDE ( __umoddi3 = 0x4000d770 );');
|
|
Add('PROVIDE ( __umodsi3 = 0x4000e268 );');
|
|
Add('PROVIDE ( __umulsidi3 = 0x4000dcf0 );');
|
|
Add('PROVIDE ( bzero = 0x4000de84 );');
|
|
Add('PROVIDE ( memcmp = 0x4000dea8 );');
|
|
Add('PROVIDE ( memcpy = 0x4000df48 );');
|
|
Add('PROVIDE ( memmove = 0x4000e04c );');
|
|
Add('PROVIDE ( memset = 0x4000e190 );');
|
|
Add('PROVIDE ( strcmp = 0x4000bdc8 );');
|
|
Add('PROVIDE ( strcpy = 0x4000bec8 );');
|
|
Add('PROVIDE ( strlen = 0x4000bf4c );');
|
|
Add('PROVIDE ( strncmp = 0x4000bfa8 );');
|
|
Add('PROVIDE ( strncpy = 0x4000c0a0 );');
|
|
Add('PROVIDE ( strstr = 0x4000e1e0 );');
|
|
Add('PROVIDE ( gpio_input_get = 0x40004cf0 );');
|
|
Add('PROVIDE ( gpio_pin_wakeup_disable = 0x40004ed4 );');
|
|
Add('PROVIDE ( gpio_pin_wakeup_enable = 0x40004e90 );');
|
|
Add('PROVIDE ( ets_io_vprintf = 0x40001f00 );');
|
|
Add('PROVIDE ( uart_rx_one_char = 0x40003b8c );');
|
|
Add('PROVIDE ( rom_i2c_readReg = 0x40007268 );');
|
|
Add('PROVIDE ( rom_i2c_readReg_Mask = 0x4000729c );');
|
|
Add('PROVIDE ( rom_i2c_writeReg = 0x400072d8 );');
|
|
Add('PROVIDE ( rom_i2c_writeReg_Mask = 0x4000730c );');
|
|
Add('PROVIDE ( rom_software_reboot = 0x40000080 );');
|
|
Add('/* esp8266.peripherals.ld */');
|
|
Add('PROVIDE ( GPIO = 0x60000300);');
|
|
Add('PROVIDE ( uart0 = 0x60000000 );');
|
|
Add('PROVIDE ( uart1 = 0x60000f00 );');
|
|
Add('PROVIDE ( frc1 = 0x60000600 );');
|
|
Add('PROVIDE ( rtc_sys_info = 0x60001100 );');
|
|
Add('PROVIDE ( SLC0 = 0x60000B00 );');
|
|
Add('PROVIDE ( I2S0 = 0x60000e00 );');
|
|
Add('PROVIDE ( SPI1 = 0x60000100 );');
|
|
Add('PROVIDE ( SPI0 = 0x60000200 );');
|
|
end;
|
|
end;
|
|
{$endif XTENSA}
|
|
|
|
{ Write and Close response }
|
|
linkres.writetodisk;
|
|
linkres.free;
|
|
|
|
WriteResponseFile:=True;
|
|
|
|
end;
|
|
|
|
|
|
function TlinkerFreeRTOS.MakeExecutable:boolean;
|
|
var
|
|
StaticStr,
|
|
S,
|
|
binstr,
|
|
cmdstr,
|
|
mapstr: Ansistring;
|
|
success : boolean;
|
|
GCSectionsStr,
|
|
DynLinkStr,
|
|
StripStr,
|
|
FixedExeFileName: string;
|
|
t: Text;
|
|
hp: TCmdStrListItem;
|
|
filepath: TCmdStr;
|
|
begin
|
|
IDF_PATH:='';
|
|
{$ifdef xtensa}
|
|
if (target_info.system=system_xtensa_freertos) then
|
|
if (current_settings.controllertype = ct_esp32) then
|
|
IDF_PATH := 'IDF_PATH'
|
|
else
|
|
IDF_PATH := 'IDF_PATH8266';
|
|
{$endif xtensa}
|
|
|
|
{ for future use }
|
|
StaticStr:='';
|
|
StripStr:='';
|
|
mapstr:='';
|
|
DynLinkStr:='';
|
|
|
|
success:=true;
|
|
Result:=false;
|
|
|
|
{$ifdef xtensa}
|
|
if (target_info.system=system_xtensa_freertos) and (current_settings.controllertype = ct_esp32) then
|
|
begin
|
|
Info.ExeCmd[1]:='ld -g $OPT $DYNLINK $STATIC $GCSECTIONS $STRIP $MAP '+
|
|
'-u call_user_start_cpu0 -u ld_include_panic_highint_hdl -u esp_app_desc '+
|
|
'-u vfs_include_syscalls_impl -u pthread_include_pthread_impl '+
|
|
'-u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl '+
|
|
'-u newlib_include_locks_impl -u newlib_include_heap_impl -u newlib_include_syscalls_impl '+
|
|
'-u newlib_include_pthread_impl -u app_main -u uxTopUsedPriority '+
|
|
'-L. -o $EXE -T $RES';
|
|
end
|
|
else // esp8266
|
|
begin
|
|
Info.ExeCmd[1]:='ld -g $OPT $DYNLINK $STATIC $GCSECTIONS $STRIP $MAP '+
|
|
'-u call_user_start_cpu -u esp_app_desc '+
|
|
'-L. -o $EXE -T $RES';
|
|
end;
|
|
{$endif xtensa}
|
|
|
|
Replace(Info.ExeCmd[1],'$'+IDF_PATH,maybequoted(GetEnvironmentVariable(IDF_PATH)));
|
|
FixedExeFileName:=maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.elf')));
|
|
|
|
GCSectionsStr:='--gc-sections';
|
|
//if not(cs_link_extern in current_settings.globalswitches) then
|
|
if not(cs_link_nolink in current_settings.globalswitches) then
|
|
Message1(exec_i_linking,current_module.exefilename);
|
|
|
|
if (cs_link_map in current_settings.globalswitches) then
|
|
mapstr:='-Map '+maybequoted(ChangeFileExt(current_module.exefilename,'.map'));
|
|
|
|
{ Write used files and libraries }
|
|
WriteResponseFile();
|
|
|
|
{ Call linker }
|
|
SplitBinCmd(Info.ExeCmd[1],binstr,cmdstr);
|
|
Replace(cmdstr,'$OPT',Info.ExtraOptions);
|
|
if target_info.system=system_xtensa_freertos then
|
|
Replace(cmdstr,'$'+IDF_PATH,maybequoted(GetEnvironmentVariable(IDF_PATH)));
|
|
if not(cs_link_on_target in current_settings.globalswitches) then
|
|
begin
|
|
Replace(cmdstr,'$EXE',FixedExeFileName);
|
|
Replace(cmdstr,'$RES',(maybequoted(ScriptFixFileName(outputexedir+Info.ResName))));
|
|
Replace(cmdstr,'$STATIC',StaticStr);
|
|
Replace(cmdstr,'$STRIP',StripStr);
|
|
Replace(cmdstr,'$MAP',mapstr);
|
|
Replace(cmdstr,'$GCSECTIONS',GCSectionsStr);
|
|
Replace(cmdstr,'$DYNLINK',DynLinkStr);
|
|
end
|
|
else
|
|
begin
|
|
Replace(cmdstr,'$EXE',FixedExeFileName);
|
|
Replace(cmdstr,'$RES',maybequoted(ScriptFixFileName(outputexedir+Info.ResName)));
|
|
Replace(cmdstr,'$STATIC',StaticStr);
|
|
Replace(cmdstr,'$STRIP',StripStr);
|
|
Replace(cmdstr,'$MAP',mapstr);
|
|
Replace(cmdstr,'$GCSECTIONS',GCSectionsStr);
|
|
Replace(cmdstr,'$DYNLINK',DynLinkStr);
|
|
end;
|
|
success:=DoExec(FindUtil(utilsprefix+BinStr),cmdstr,true,false);
|
|
|
|
{ Remove ReponseFile }
|
|
if success and not(cs_link_nolink in current_settings.globalswitches) then
|
|
DeleteFile(outputexedir+Info.ResName);
|
|
|
|
{ Post process }
|
|
if success and not(cs_link_nolink in current_settings.globalswitches) then
|
|
success:=PostProcessExecutable(FixedExeFileName,false);
|
|
|
|
{$ifdef xtensa}
|
|
if success and (target_info.system=system_xtensa_freertos) then
|
|
if (current_settings.controllertype = ct_esp32) then
|
|
begin
|
|
binstr:='$'+IDF_PATH+'/components/esptool_py/esptool/esptool.py';
|
|
Replace(binstr,'$'+IDF_PATH,maybequoted(GetEnvironmentVariable(IDF_PATH)));
|
|
success:=DoExec(binstr,'--chip esp32 elf2image --flash_mode dio --flash_freq 40m '+
|
|
'--flash_size '+tostr(embedded_controllers[current_settings.controllertype].flashsize div (1024*1024))+'MB '+
|
|
'--elf-sha256-offset 0xb0 '+
|
|
'-o '+maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.bin')))+' '+
|
|
FixedExeFileName,
|
|
true,false);
|
|
end
|
|
else if (current_settings.controllertype = ct_esp8266) then
|
|
begin
|
|
binstr:='$'+IDF_PATH+'/components/esptool_py/esptool/esptool.py';
|
|
Replace(binstr,'$'+IDF_PATH,maybequoted(GetEnvironmentVariable(IDF_PATH)));
|
|
success:=DoExec(binstr,'--chip esp8266 elf2image --flash_mode dout --flash_freq 40m '+
|
|
'--flash_size '+tostr(embedded_controllers[current_settings.controllertype].flashsize div (1024*1024))+'MB '+
|
|
'--version=3 '+
|
|
'-o '+maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.bin')))+' '+
|
|
FixedExeFileName,
|
|
true,false);
|
|
end
|
|
else
|
|
{$endif xtensa}
|
|
if success then
|
|
success:=DoExec(FindUtil(utilsprefix+'objcopy'),'-O binary '+
|
|
FixedExeFileName+' '+
|
|
maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.bin'))),true,false);
|
|
MakeExecutable:=success; { otherwise a recursive call to link method }
|
|
end;
|
|
|
|
|
|
function TlinkerFreeRTOS.postprocessexecutable(const fn : string;isdll:boolean):boolean;
|
|
type
|
|
TElf32header=packed record
|
|
magic0123 : longint;
|
|
file_class : byte;
|
|
data_encoding : byte;
|
|
file_version : byte;
|
|
padding : array[$07..$0f] of byte;
|
|
|
|
e_type : word;
|
|
e_machine : word;
|
|
e_version : longint;
|
|
e_entry : longint; { entrypoint }
|
|
e_phoff : longint; { program header offset }
|
|
|
|
e_shoff : longint; { sections header offset }
|
|
e_flags : longint;
|
|
e_ehsize : word; { elf header size in bytes }
|
|
e_phentsize : word; { size of an entry in the program header array }
|
|
e_phnum : word; { 0..e_phnum-1 of entrys }
|
|
e_shentsize : word; { size of an entry in sections header array }
|
|
e_shnum : word; { 0..e_shnum-1 of entrys }
|
|
e_shstrndx : word; { index of string section header }
|
|
end;
|
|
TElf32sechdr=packed record
|
|
sh_name : longint;
|
|
sh_type : longint;
|
|
sh_flags : longint;
|
|
sh_addr : longint;
|
|
|
|
sh_offset : longint;
|
|
sh_size : longint;
|
|
sh_link : longint;
|
|
sh_info : longint;
|
|
|
|
sh_addralign : longint;
|
|
sh_entsize : longint;
|
|
end;
|
|
|
|
function MayBeSwapHeader(h : telf32header) : telf32header;
|
|
begin
|
|
result:=h;
|
|
if source_info.endian<>target_info.endian then
|
|
with h do
|
|
begin
|
|
result.e_type:=swapendian(e_type);
|
|
result.e_machine:=swapendian(e_machine);
|
|
result.e_version:=swapendian(e_version);
|
|
result.e_entry:=swapendian(e_entry);
|
|
result.e_phoff:=swapendian(e_phoff);
|
|
result.e_shoff:=swapendian(e_shoff);
|
|
result.e_flags:=swapendian(e_flags);
|
|
result.e_ehsize:=swapendian(e_ehsize);
|
|
result.e_phentsize:=swapendian(e_phentsize);
|
|
result.e_phnum:=swapendian(e_phnum);
|
|
result.e_shentsize:=swapendian(e_shentsize);
|
|
result.e_shnum:=swapendian(e_shnum);
|
|
result.e_shstrndx:=swapendian(e_shstrndx);
|
|
end;
|
|
end;
|
|
|
|
function MaybeSwapSecHeader(h : telf32sechdr) : telf32sechdr;
|
|
begin
|
|
result:=h;
|
|
if source_info.endian<>target_info.endian then
|
|
with h do
|
|
begin
|
|
result.sh_name:=swapendian(sh_name);
|
|
result.sh_type:=swapendian(sh_type);
|
|
result.sh_flags:=swapendian(sh_flags);
|
|
result.sh_addr:=swapendian(sh_addr);
|
|
result.sh_offset:=swapendian(sh_offset);
|
|
result.sh_size:=swapendian(sh_size);
|
|
result.sh_link:=swapendian(sh_link);
|
|
result.sh_info:=swapendian(sh_info);
|
|
result.sh_addralign:=swapendian(sh_addralign);
|
|
result.sh_entsize:=swapendian(sh_entsize);
|
|
end;
|
|
end;
|
|
|
|
var
|
|
f : file;
|
|
|
|
function ReadSectionName(pos : longint) : String;
|
|
var
|
|
oldpos : longint;
|
|
c : char;
|
|
begin
|
|
oldpos:=filepos(f);
|
|
seek(f,pos);
|
|
Result:='';
|
|
while true do
|
|
begin
|
|
blockread(f,c,1);
|
|
if c=#0 then
|
|
break;
|
|
Result:=Result+c;
|
|
end;
|
|
seek(f,oldpos);
|
|
end;
|
|
|
|
var
|
|
elfheader : TElf32header;
|
|
secheader : TElf32sechdr;
|
|
i : longint;
|
|
stringoffset : longint;
|
|
secname : string;
|
|
begin
|
|
postprocessexecutable:=false;
|
|
{ open file }
|
|
assign(f,fn);
|
|
{$push}{$I-}
|
|
reset(f,1);
|
|
if ioresult<>0 then
|
|
Message1(execinfo_f_cant_open_executable,fn);
|
|
{ read header }
|
|
blockread(f,elfheader,sizeof(tElf32header));
|
|
elfheader:=MayBeSwapHeader(elfheader);
|
|
seek(f,elfheader.e_shoff);
|
|
{ read string section header }
|
|
seek(f,elfheader.e_shoff+sizeof(TElf32sechdr)*elfheader.e_shstrndx);
|
|
blockread(f,secheader,sizeof(secheader));
|
|
secheader:=MaybeSwapSecHeader(secheader);
|
|
stringoffset:=secheader.sh_offset;
|
|
|
|
seek(f,elfheader.e_shoff);
|
|
status.datasize:=0;
|
|
for i:=0 to elfheader.e_shnum-1 do
|
|
begin
|
|
blockread(f,secheader,sizeof(secheader));
|
|
secheader:=MaybeSwapSecHeader(secheader);
|
|
secname:=ReadSectionName(stringoffset+secheader.sh_name);
|
|
if secname='.text' then
|
|
begin
|
|
Message1(execinfo_x_codesize,tostr(secheader.sh_size));
|
|
status.codesize:=secheader.sh_size;
|
|
end
|
|
else if secname='.data' then
|
|
begin
|
|
Message1(execinfo_x_initdatasize,tostr(secheader.sh_size));
|
|
inc(status.datasize,secheader.sh_size);
|
|
end
|
|
else if secname='.bss' then
|
|
begin
|
|
Message1(execinfo_x_uninitdatasize,tostr(secheader.sh_size));
|
|
inc(status.datasize,secheader.sh_size);
|
|
end;
|
|
|
|
end;
|
|
close(f);
|
|
{$pop}
|
|
if ioresult<>0 then
|
|
;
|
|
postprocessexecutable:=true;
|
|
end;
|
|
|
|
|
|
{*****************************************************************************
|
|
Initialize
|
|
*****************************************************************************}
|
|
|
|
initialization
|
|
{$ifdef arm}
|
|
RegisterLinker(ld_freertos,TlinkerFreeRTOS);
|
|
RegisterTarget(system_arm_freertos_info);
|
|
{$endif arm}
|
|
|
|
{$ifdef avr}
|
|
RegisterLinker(ld_freertos,TLinkerEmbedded);
|
|
RegisterTarget(system_avr_embedded_info);
|
|
{$endif avr}
|
|
|
|
{$ifdef i386}
|
|
RegisterLinker(ld_freertos,TLinkerEmbedded);
|
|
RegisterTarget(system_i386_embedded_info);
|
|
{$endif i386}
|
|
|
|
{$ifdef x86_64}
|
|
RegisterLinker(ld_freertos,TLinkerEmbedded);
|
|
RegisterTarget(system_x86_64_embedded_info);
|
|
{$endif x86_64}
|
|
|
|
{$ifdef i8086}
|
|
{ no need to register linker ld_embedded, because i8086_embedded uses the
|
|
regular msdos linker. In case a flat binary, relocated for a specific
|
|
segment address is needed (e.g. for a BIOS or a real mode bootloader), it
|
|
can be produced post-compilation with exe2bin or a similar tool. }
|
|
RegisterTarget(system_i8086_embedded_info);
|
|
{$endif i8086}
|
|
|
|
{$ifdef mipsel}
|
|
RegisterLinker(ld_freertos,TLinkerEmbedded);
|
|
RegisterTarget(system_mipsel_embedded_info);
|
|
{$endif mipsel}
|
|
|
|
{$ifdef m68k}
|
|
RegisterLinker(ld_freertos,TLinkerEmbedded);
|
|
RegisterTarget(system_m68k_embedded_info);
|
|
{$endif m68k}
|
|
|
|
{$ifdef riscv32}
|
|
RegisterLinker(ld_freertos,TLinkerEmbedded);
|
|
RegisterTarget(system_riscv32_embedded_info);
|
|
{$endif riscv32}
|
|
|
|
{$ifdef riscv64}
|
|
RegisterLinker(ld_freertos,TLinkerEmbedded);
|
|
RegisterTarget(system_riscv64_embedded_info);
|
|
{$endif riscv64}
|
|
|
|
{$ifdef xtensa}
|
|
RegisterLinker(ld_freertos,TlinkerFreeRTOS);
|
|
RegisterTarget(system_xtensa_freertos_info);
|
|
{$endif xtensa}
|
|
end.
|