我希望标题足够描述.所以这就是我想要做的和我玩弄的东西.
等等,首先,这是一个嵌入式应用程序.Atmel SAM4L微控制器,使用Atmel Studio IDE和GCC编译器/链接器.
是的,我正在编写一个引导加载程序,但是想将引导加载程序版本保存到程序存储器中,直到引导加载程序的已分配空间的末尾(假设为0x3FF0).这样,应用程序还可以通过查看特定地址来检查引导加载程序版本.此时我正忙着为应用程序更新引导加载程序本身的实用程序,但我不希望应用程序或引导加载程序使用命令或代码更新0x3FF0的版本,我希望它作为一部分. bin/.hex文件,所以当我启动引导加载程序时,版本会随之闪烁.所以目前我有一个#define用于bootloader类型,主要版本和次要版本,它们都在项目中的globals.h文件中.基本上我只想在编译时将这3个字节写入0x3FF0.
据我所知,我可以通过链接器获取相当多的技巧,但直到昨天才使用链接器脚本,并且能够用它做一些事情,但不是我想要的.该项目还创建了一个非常强大的链接器脚本,所以我也有点警惕在哪里跳转并转储我的三个字节.我知道你不能把地址指针移回去.
这是项目生成的链接描述文件
/**
* \file
*
* \brief Flash Linker script for SAM.
*
* Copyright (c) 2013 Atmel Corporation. All rights reserved.
*
* \asf_license_start
*
* \page License
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and …Run Code Online (Sandbox Code Playgroud)