嵌入式面试题_1 如何将一个函数编译定位到指定的falsh地址

之前的项目中没有注意到这个问题,今天面试的时候,面试官老师问到了,就去百度学了一下,很简单,就以我的工程做个演示,具体步骤如下:
1、打开魔术棒,点击Linker(链接)选项…
在这里插入图片描述
2、设置我们规定的flash地址
在这里插入图片描述
注意:这个当时0x08060000是随机写的,超出了flash的大小,只做演示用。
3、创建一个宏定义如下:

#define MY_ROM __attribute__ ((section("my_rom")) //用这个宏定义就可以去修饰函数了。

4、定义一个测试函数

void test(void) MY_ROM; 
void test(void) 
{
	printf("test_flash\r\n");
}
//或者
void test(void); 
MY_ROM void test(void) 
{
	printf("test_flash\r\n");
}

5、查看.map文件,具体怎么看.map
点击:https://blog.csdn.net/sjxpf922/article/details/118407691
在这里插入图片描述
在这里插入图片描述

我看网上还有其他的方法:
不用上一个办法的第1,2,的步骤,直接在函数声明的后面加上

void test(void) __attribute__ ((section(".ARM.at_0x08050000")));
void test(void)
{
	printf("testmyrom\r\n");
}

编译之后查看.map文件:
在这里插入图片描述

在这里插入图片描述
修改变量所在地址也是类似的方法。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
嵌入式回调函数面试题是指在嵌入式软件开发中,面试官可能会问到与回调函数相关的问题。回调函数是一种常见的编程技术,用于在某个条件满足时执行特定的操作。 在嵌入式回调函数面试中,可能会涉及以下问题: 1. 什么是回调函数? 回调函数是一种通过函数指针传递给其他函数函数。当满足特定条件时,被调用的函数会执行相应的操作。 2. 为什么要使用回调函数? 回调函数可以增加代码的灵活性和可扩展性。通过使用回调函数,可以将某些操作的实现和调用方解耦,使得代码更加模块化和可重用。 3. 在嵌入式开发中,回调函数的应用场景有哪些? 回调函数嵌入式开发中非常常见,特别是在事件驱动的系统中。例如,当某个外部事件发生时(如按下按钮、接收到数据等),可以通过注册回调函数来执行相应的操作。 4. 如何定义和使用回调函数? 回调函数的定义需要满足特定的函数签名(参数类型和返回类型)。在使用回调函数时,通常会将函数指针作为参数传递给其他函数,以指定在特定事件发生时应该调用的函数。 5. 回调函数和中断处理函数的区别是什么? 回调函数和中断处理函数都是在特定事件发生时执行的函数。区别在于中断处理函数是由硬件中断触发,而回调函数是由软件事件触发。 以上是嵌入式回调函数面试题的一些常见问题和回答。在面试中,根据具体的职位和公司需求,可能还会涉及更深入和具体的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [嵌入式软件开发就业面试题。2022最新,最全总结。](https://blog.csdn.net/BBA_Code/article/details/127140662)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [嵌入式Linux设备驱动面试题汇总](https://blog.csdn.net/chbgoon/article/details/122936954)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值