栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

gun 连接脚本指定地址插入自定义section

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

gun 连接脚本指定地址插入自定义section

连接脚本 ld 文件:


MEMORY
{
  RAM (xrw)		        : ORIGIN = 0x20000000, LENGTH = 16K
  ROM (rx)		        : ORIGIN = 0x08000000, LENGTH = 128K
}


SECTIONS
{
  
  .isr_vector :
  {
    . = ALIGN(4);
    KEEP(*(.isr_vector)) 
    . = ALIGN(4);
  } >ROM

  
  .myvars :
  {
    . = ALIGN(4);
    KEEP(*(.myvars*))
    _smyvars = .;
    *(.myvars.ROM_VERSION)
    *(.myvars.CRC)
    *(.myvars.LENGTH)
    *(.myvars.BUILD_ID)
    *(.myvars*);
  } > ROM
  .text :
  {
    . = ALIGN(4);
	_stext = .;
    *(.text)           
    *(.text*)          
    *(.glue_7)         
    *(.glue_7t)        
    *(.eh_frame)

    KEEP (*(.init))
    KEEP (*(.fini))

    . = ALIGN(4);
    _etext = .;        
  } >ROM

  
  .rodata :
  {
    . = ALIGN(4);
    *(.rodata)         
    *(.rodata*)        
    . = ALIGN(4);
  } >ROM

自定义的section段即:
 

  .myvars :
  {
    . = ALIGN(4);
    KEEP(*(.myvars*))
    _smyvars = .;
    *(.myvars.ROM_VERSION)
    *(.myvars.CRC)
    *(.myvars.LENGTH)
    *(.myvars.BUILD_ID)
    *(.myvars*);
  } > ROM

在C代码中使用:
 

#define MYVARS_START         _smyvars
extern const int MYVARS_START;


#pragma optimize=none
__attribute__((section(".myvars.ROM_VERSION"))) const char ROM_VERSION[16]= FW_VERSION_BOARD;
__attribute__((section(".myvars.CRC"))) const uint32_t CRC;
__attribute__((section(".myvars.LENGTH"))) const uint32_t LENGTH = (uint32_t) &TotalFlashUsed;
__attribute__((section(".myvars.BUILD_ID"))) const uint32_t BUILD_ID=0xAAAAAAAA;


void rom_info(void)
{
    myvars_start_addr = (uint32_t)&MYVARS_START;
    logi("myvars offset:%#xrn",myvars_start_addr );
	logi("version number =%s rn",ROM_VERSION);
    logi("TotalFlashUsed =%d rn",LENGTH);
}

_smyvars 为自定义段的起始地址, 该地址位于 中断向量表的后面,芯片信号选定后这个起始地址一般就是固定。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995745.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号