⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adsp-bf537.ldf

📁 Using the Blackfin Processor SPORT to Emulate a SPI Interface
💻 LDF
📖 第 1 页 / 共 2 页
字号:
** reserve 0xFF807FEF-0xFF807FFF required by boot-loader. 
*/
#if !(defined(__WORKAROUND_AVOID_LDF_BLOCK_BOUNDARIES) && !DATAA_CACHE)
   RESERVE(___bldr1=0xFF807FEF,___bldr1l=17)
#endif


#if defined(USE_SCRATCHPAD_STACK) || defined(USE_SCRATCHPAD_HEAP)
   stack_and_heap_scratchpad
   {
      INPUT_SECTION_ALIGN(4)
      RESERVE(stack_and_heap_in_scratchpad, stack_and_heap_in_scratchpad_length, 0, 4)
#if defined(USE_SCRATCHPAD_STACK) && defined(USE_SCRATCHPAD_HEAP)
      ldf_stack_space = stack_and_heap_in_scratchpad;
      ldf_stack_end = (ldf_stack_space + ((stack_and_heap_in_scratchpad_length *STACK_SIZE) / STACKHEAP_SIZE) - 4 ) & 0xfffffffc;
      ldf_heap_space = ldf_stack_end + 4;
      ldf_heap_end = ldf_stack_space + stack_and_heap_in_scratchpad_length;
      ldf_heap_length = ldf_heap_end - ldf_heap_space;
#elif defined(USE_SCRATCHPAD_STACK)
      ldf_stack_space = stack_and_heap_in_scratchpad;
      ldf_stack_end = ldf_stack_space + stack_and_heap_in_scratchpad_length;
#elif defined(USE_SCRATCHPAD_HEAP)
      ldf_heap_space = stack_and_heap_in_scratchpad;
      ldf_heap_end = ldf_heap_space + stack_and_heap_in_scratchpad_length;
      ldf_heap_length = ldf_heap_end - ldf_heap_space;
#endif
   } > MEM_L1_SCRATCH
#endif 

   L1_code
   {
      INPUT_SECTION_ALIGN(4)
#if INSTR_CACHE 
      ___l1_code_cache = 1;
#else
      ___l1_code_cache = 0;
      INPUT_SECTIONS( $OBJECTS(L1_code) $LIBRARIES(L1_code))
      INPUT_SECTIONS( $OBJECTS(cplb_code) $LIBRARIES(cplb_code))
      INPUT_SECTIONS( $OBJECTS(cplb) $LIBRARIES(cplb))
      INPUT_SECTIONS( $OBJS_LIBS_INTERNAL(program) )
      INPUT_SECTIONS( $OBJS_LIBS_NOT_EXTERNAL(program) )
      INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))
#endif
   } >MEM_L1_CODE_CACHE

   L1_code_sram
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(L1_code) $LIBRARIES(L1_code))
      INPUT_SECTIONS( $OBJECTS(cplb_code) $LIBRARIES(cplb_code))
      INPUT_SECTIONS( $OBJECTS(cplb) $LIBRARIES(cplb))
      INPUT_SECTIONS( $OBJECTS(noncache_code) $LIBRARIES(noncache_code))
      INPUT_SECTIONS( $OBJS_LIBS_INTERNAL(program) )
      INPUT_SECTIONS( $OBJS_LIBS_NOT_EXTERNAL(program) )
      INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))
   } >MEM_L1_CODE

#if DATAB_CACHE 

   cache_L1_data_b
   {
      INPUT_SECTION_ALIGN(4)
      ___l1_data_cache_b = 1;
   } >MEM_L1_DATA_B_CACHE

#endif

   L1_data_b
   {
      INPUT_SECTION_ALIGN(4)
#if !DATAB_CACHE 
      ___l1_data_cache_b = 0;
#endif
      INPUT_SECTIONS( $OBJECTS(L1_data_b) $LIBRARIES(L1_data_b))
      INPUT_SECTIONS( $OBJECTS(L1_data) $LIBRARIES(L1_data))
#if !defined(USE_SDRAM) && (defined(__cplusplus) || defined(USER_CRT))
      INPUT_SECTIONS( $OBJECTS(.frt) $LIBRARIES(.frt) )
      INPUT_SECTIONS( $OBJECTS(.frtl) $LIBRARIES(.frtl) )
      INPUT_SECTIONS( $OBJECTS(ctor) $LIBRARIES(ctor) )
      INPUT_SECTIONS( $OBJECTS(ctorl) $LIBRARIES(ctorl) )
      INPUT_SECTIONS( $OBJECTS(.gdt) $LIBRARIES(.gdt) )
      INPUT_SECTIONS( $OBJECTS(.gdtl) $LIBRARIES(.gdtl) )
#endif
      INPUT_SECTIONS( $OBJS_LIBS_INTERNAL(data1) )
      INPUT_SECTIONS( $OBJS_LIBS_NOT_EXTERNAL(data1) )
      INPUT_SECTIONS( $OBJECTS(constdata) $LIBRARIES(constdata))
      INPUT_SECTIONS( $OBJECTS(voldata) $LIBRARIES(voldata))
      INPUT_SECTIONS( $OBJECTS(data1) $LIBRARIES(data1))
#if defined(__cplusplus) || defined(USER_CRT) 
      INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )
      INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )
      INPUT_SECTIONS( $OBJECTS(.rtti) $LIBRARIES(.rtti) )
      INPUT_SECTIONS( $OBJECTS(vtbl) $LIBRARIES(vtbl) )
#endif
      INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))
   } >MEM_L1_DATA_B

   bsz_L1_data_b ZERO_INIT
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(L1_bsz) $LIBRARIES(L1_bsz))
      INPUT_SECTIONS( $OBJS_LIBS_INTERNAL(bsz) )
      INPUT_SECTIONS( $OBJS_LIBS_NOT_EXTERNAL(bsz) )
      INPUT_SECTIONS( $OBJECTS(bsz) $LIBRARIES(bsz))
   } >MEM_L1_DATA_B

#if DATAA_CACHE

   cache_L1_data_a
   {
      INPUT_SECTION_ALIGN(4)
      ___l1_data_cache_a = 1;
   } >MEM_L1_DATA_A_CACHE

#endif

   L1_data_a
   {
      INPUT_SECTION_ALIGN(4)
#if !DATAA_CACHE 
      ___l1_data_cache_a = 0;
#endif
      INPUT_SECTIONS( $OBJECTS(L1_data_a) $LIBRARIES(L1_data_a))
      INPUT_SECTIONS( $OBJECTS(L1_data) $LIBRARIES(L1_data))
#if !defined(USE_SDRAM)
#  if defined(__MEMINIT__)
      INPUT_SECTIONS( $OBJECTS(bsz_init) $LIBRARIES(bsz_init))
#  endif
#endif
#if USE_L1DATA_STACK && USE_L1DATA_HEAP
      RESERVE(stack_and_heap_in_L1_data_a, stack_and_heap_in_L1_data_a_length = STACKHEAP_SIZE, 4)
#elif USE_L1DATA_HEAP
      RESERVE(stack_and_heap_in_L1_data_a, stack_and_heap_in_L1_data_a_length = HEAP_SIZE, 4)
#elif USE_L1DATA_STACK
      RESERVE(stack_and_heap_in_L1_data_a, stack_and_heap_in_L1_data_a_length = STACK_SIZE, 4)
#endif
      INPUT_SECTIONS( $OBJS_LIBS_INTERNAL(data1) )
      INPUT_SECTIONS( $OBJS_LIBS_NOT_EXTERNAL(data1) )
      INPUT_SECTIONS( $OBJECTS(constdata) $LIBRARIES(constdata))
      INPUT_SECTIONS( $OBJECTS(voldata) $LIBRARIES(voldata))
      INPUT_SECTIONS( $OBJECTS(data1) $LIBRARIES(data1))
#if defined(__cplusplus) || defined(USER_CRT)
      INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )
      INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )
      INPUT_SECTIONS( $OBJECTS(.rtti) $LIBRARIES(.rtti) )
      INPUT_SECTIONS( $OBJECTS(vtbl) $LIBRARIES(vtbl) )
#endif
      INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))
   } >MEM_L1_DATA_A
 
   bsz_L1_data_a ZERO_INIT
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(L1_bsz) $LIBRARIES(L1_bsz))
      INPUT_SECTIONS( $OBJS_LIBS_INTERNAL(bsz) )
      INPUT_SECTIONS( $OBJS_LIBS_NOT_EXTERNAL(bsz) )
      INPUT_SECTIONS( $OBJECTS(bsz) $LIBRARIES(bsz))
   } >MEM_L1_DATA_A

#if defined(__MEMINIT__) && !defined(USE_SDRAM)
   .meminit { ALIGN(4) } >MEM_L1_DATA_A
#endif

#if USE_L1DATA_STACK || USE_L1DATA_HEAP
   stack_and_heap_L1_data_a
   {
      INPUT_SECTION_ALIGN(4)
#if !(defined(__MEMINIT__) && !defined(USE_SDRAM))
      RESERVE_EXPAND(stack_and_heap_in_L1_data_a, stack_and_heap_in_L1_data_a_length, 0, 4)
#endif
#if USE_L1DATA_STACK && USE_L1DATA_HEAP
      ldf_stack_space = stack_and_heap_in_L1_data_a;
      ldf_stack_end = (ldf_stack_space + ((stack_and_heap_in_L1_data_a_length * STACK_SIZE) / STACKHEAP_SIZE) - 4 ) & 0xfffffffc;
      ldf_heap_space = ldf_stack_end + 4;
      ldf_heap_end = ldf_stack_space + stack_and_heap_in_L1_data_a_length;
      ldf_heap_length = ldf_heap_end - ldf_heap_space;
#elif USE_L1DATA_STACK
      ldf_stack_space = stack_and_heap_in_L1_data_a;
      ldf_stack_end = ldf_stack_space + stack_and_heap_in_L1_data_a_length;
#elif USE_L1DATA_HEAP
      ldf_heap_space = stack_and_heap_in_L1_data_a;
      ldf_heap_end = ldf_heap_space + stack_and_heap_in_L1_data_a_length;
      ldf_heap_length = ldf_heap_end - ldf_heap_space;
#endif
   } > MEM_L1_DATA_A
#endif 

#if defined(USE_SDRAM)

#if (defined(USE_SDRAM_STACK) || defined(USE_SDRAM_HEAP)) && \
    (!DATAA_CACHE && !DATAB_CACHE)
#   warning Putting stack/heap into external sdram without data cache enabled can have a serious performance impact
#endif

   sdram0_bank0
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(sdram0) $LIBRARIES(sdram0))
      INPUT_SECTIONS( $OBJECTS(sdram0_bank0) $LIBRARIES(sdram0_bank0))
#if defined(USE_SDRAM_STACK) && defined(USE_SDRAM_HEAP)
      RESERVE(stack_and_heap_in_sdram, stack_and_heap_in_sdram_length = STACKHEAP_SIZE, 4)
#elif defined(USE_SDRAM_STACK)
      RESERVE(stack_and_heap_in_sdram, stack_and_heap_in_sdram_length = STACK_SIZE, 4)
#elif defined(USE_SDRAM_HEAP)
      RESERVE(stack_and_heap_in_sdram, stack_and_heap_in_sdram_length = HEAP_SIZE, 4)
#else
      INPUT_SECTIONS( $OBJECTS(noncache_code) $LIBRARIES(noncache_code))
      INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))
#endif
   } >MEM_SDRAM0_BANK0
 
#if defined(USE_SDRAM_STACK) || defined(USE_SDRAM_HEAP)
   stack_heap_sdram_bank0
   {
      INPUT_SECTION_ALIGN(4)
		RESERVE_EXPAND(stack_and_heap_in_sdram, stack_and_heap_in_sdram_length, 0, 4)
#if defined(USE_SDRAM_STACK) && defined(USE_SDRAM_HEAP)
      ldf_stack_space = stack_and_heap_in_sdram;
      ldf_stack_end = (ldf_stack_space + ((stack_and_heap_in_sdram_length * STACK_SIZE) / STACKHEAP_SIZE) - 4 ) & 0xfffffffc;
      ldf_heap_space = ldf_stack_end + 4;
      ldf_heap_end = ldf_stack_space + stack_and_heap_in_sdram_length;
      ldf_heap_length = ldf_heap_end - ldf_heap_space;
#elif defined(USE_SDRAM_STACK)
      ldf_stack_space = stack_and_heap_in_sdram;
      ldf_stack_end = ldf_stack_space + stack_and_heap_in_sdram_length;
#elif defined(USE_SDRAM_HEAP)
      ldf_heap_space = stack_and_heap_in_sdram;
      ldf_heap_end = ldf_heap_space + stack_and_heap_in_sdram_length;
      ldf_heap_length = ldf_heap_end - ldf_heap_space;
#endif
   } >MEM_SDRAM0_BANK0
#endif

   sdram0_bank1
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(sdram0_bank1) $LIBRARIES(sdram0_bank1))
      INPUT_SECTIONS( $OBJECTS(sdram0_data) $LIBRARIES(sdram0_data))
#if defined(__cplusplus) || defined(USER_CRT)
      INPUT_SECTIONS( $OBJECTS(.frt) $LIBRARIES(.frt) )
      INPUT_SECTIONS( $OBJECTS(.frtl) $LIBRARIES(.frtl) )
      INPUT_SECTIONS( $OBJECTS(ctor) $LIBRARIES(ctor) )
      INPUT_SECTIONS( $OBJECTS(ctorl) $LIBRARIES(ctorl) )
      INPUT_SECTIONS( $OBJECTS(.gdt) $LIBRARIES(.gdt) )
      INPUT_SECTIONS( $OBJECTS(.gdtl) $LIBRARIES(.gdtl) )
#endif
      INPUT_SECTIONS( $OBJECTS(data1) $LIBRARIES(data1))
      INPUT_SECTIONS( $OBJECTS(voldata) $LIBRARIES(voldata))
      INPUT_SECTIONS( $OBJECTS(constdata) $LIBRARIES(constdata))
      INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))
#if defined(__cplusplus) || defined(USER_CRT) 
      INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )
      INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )
      INPUT_SECTIONS( $OBJECTS(.rtti) $LIBRARIES(.rtti) )
      INPUT_SECTIONS( $OBJECTS(vtbl) $LIBRARIES(vtbl) )
#endif
   } >MEM_SDRAM0_BANK1

   sdram0_bank1_bsz ZERO_INIT
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(sdram_bsz) $LIBRARIES(sdram_bsz))
      INPUT_SECTIONS( $OBJECTS(bsz) $LIBRARIES(bsz))
   } >MEM_SDRAM0_BANK1

   sdram0_bank2
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(sdram0_bank2) $LIBRARIES(sdram0_bank2))
      INPUT_SECTIONS( $OBJECTS(sdram0_data) $LIBRARIES(sdram0_data))
#if defined(__MEMINIT__)
      INPUT_SECTIONS( $OBJECTS(bsz_init) $LIBRARIES(bsz_init))
#endif
      INPUT_SECTIONS( $OBJECTS(data1) $LIBRARIES(data1))
      INPUT_SECTIONS( $OBJECTS(voldata) $LIBRARIES(voldata))
      INPUT_SECTIONS( $OBJECTS(constdata) $LIBRARIES(constdata))
      INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))
#if defined(__cplusplus) || defined(USER_CRT) 
      INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )
      INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )
      INPUT_SECTIONS( $OBJECTS(.rtti) $LIBRARIES(.rtti) )
      INPUT_SECTIONS( $OBJECTS(vtbl) $LIBRARIES(vtbl) )
#endif
   } >MEM_SDRAM0_BANK2

   sdram0_bank2_bsz ZERO_INIT
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(sdram_bsz) $LIBRARIES(sdram_bsz))
      INPUT_SECTIONS( $OBJECTS(bsz) $LIBRARIES(bsz))
   } >MEM_SDRAM0_BANK2

#if defined(__MEMINIT__)
   .meminit { ALIGN(4) } >MEM_SDRAM0_BANK2
#endif

   sdram0_bank3
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(sdram0_bank3) $LIBRARIES(sdram0_bank3))
      INPUT_SECTIONS( $OBJECTS(noncache_code) $LIBRARIES(noncache_code))
      INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))
   } >MEM_SDRAM0_BANK3
 
   overspill_sdram0_bank0
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(noncache_code) $LIBRARIES(noncache_code))
      INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))
      INPUT_SECTIONS( $OBJECTS(data1) $LIBRARIES(data1))
      INPUT_SECTIONS( $OBJECTS(voldata) $LIBRARIES(voldata))
      INPUT_SECTIONS( $OBJECTS(constdata) $LIBRARIES(constdata))
      INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))
#if defined(__cplusplus) || defined(USER_CRT) 
      INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )
      INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )
      INPUT_SECTIONS( $OBJECTS(.rtti) $LIBRARIES(.rtti) )
      INPUT_SECTIONS( $OBJECTS(vtbl) $LIBRARIES(vtbl) )
#endif
   } >MEM_SDRAM0_BANK0
 
   overspill_sdram0_bank1
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(noncache_code) $LIBRARIES(noncache_code))
      INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))
      INPUT_SECTIONS( $OBJECTS(data1) $LIBRARIES(data1))
      INPUT_SECTIONS( $OBJECTS(voldata) $LIBRARIES(voldata))
      INPUT_SECTIONS( $OBJECTS(constdata) $LIBRARIES(constdata))
      INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))
#if defined(__cplusplus) || defined(USER_CRT) 
      INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )
      INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )
      INPUT_SECTIONS( $OBJECTS(.rtti) $LIBRARIES(.rtti) )
      INPUT_SECTIONS( $OBJECTS(vtbl) $LIBRARIES(vtbl) )
#endif
   } >MEM_SDRAM0_BANK1
 
   overspill_sdram0_bank2
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(noncache_code) $LIBRARIES(noncache_code))
      INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))
      INPUT_SECTIONS( $OBJECTS(data1) $LIBRARIES(data1))
      INPUT_SECTIONS( $OBJECTS(voldata) $LIBRARIES(voldata))
      INPUT_SECTIONS( $OBJECTS(constdata) $LIBRARIES(constdata))
      INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))
#if defined(__cplusplus) || defined(USER_CRT) 
      INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )
      INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )
      INPUT_SECTIONS( $OBJECTS(.rtti) $LIBRARIES(.rtti) )
      INPUT_SECTIONS( $OBJECTS(vtbl) $LIBRARIES(vtbl) )
#endif
   } >MEM_SDRAM0_BANK2
 
   overspill_sdram0_bank3
   {
      INPUT_SECTION_ALIGN(4)
      INPUT_SECTIONS( $OBJECTS(noncache_code) $LIBRARIES(noncache_code))
      INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))
      INPUT_SECTIONS( $OBJECTS(data1) $LIBRARIES(data1))
      INPUT_SECTIONS( $OBJECTS(voldata) $LIBRARIES(voldata))
      INPUT_SECTIONS( $OBJECTS(constdata) $LIBRARIES(constdata))
      INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))
#if defined(__cplusplus) || defined(USER_CRT) 
      INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )
      INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )
      INPUT_SECTIONS( $OBJECTS(.rtti) $LIBRARIES(.rtti) )
      INPUT_SECTIONS( $OBJECTS(vtbl) $LIBRARIES(vtbl) )
#endif
   } >MEM_SDRAM0_BANK3

#endif /* USE_SDRAM */
 
  } /* SECTIONS */
} /* PROCESSOR p0 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -