c - C语言函数的内存地址
问题描述
我正在使用 ARM Cortex M3 处理器进行睡眠模式。我必须为此填写一些结构。
这里是其中之一
struct sleep_mode_init_env_tag
{
/* Wake up configuration */
uint32_t wakeup_cfg;
/* Wake up restore address */
uint32_t wakeup_addr;
/* Wake up application start address */
uint32_t app_addr;
/* Memory power configuration for wake-up */
uint32_t mem_power_cfg_wakeup;
/* Clock source for RTC */
uint8_t rtc_ctrl;
/* DMA channel used to save/restore RF registers
* in each sleep/wake-up cycle */
uint8_t DMA_channel_RF;
};
当我在主循环中进入睡眠模式时,我想在 1 分钟后再次返回主循环。所以你可以看到我必须在这里写唤醒函数的内存地址;
uint32_t app_addr;
还有我的返回函数;
void Turn_Wake_up(void) {
Sys_PowerModes_Wakeup();
Sys_Watchdog_Refresh();
Device_Config();
memory_access();
main_loop();
}
制造商公司创建了这个 .S 文件 (wake_up.S) 并包含在项目中,用于唤醒功能的内存地址;
.thumb_func
.section .app_wakeup_asm
.globl Turn_Wake_up_asm
.extern __stack, 4
/* ----------------------------------------------------------------------------
* Function : void Turn_Wake_up_asm()
* ----------------------------------------------------------------------------
* Description : Initialize stack pointer and continue execution
* Inputs : None
* Outputs : None
* Assumptions : None
* ------------------------------------------------------------------------- */
Turn_Wake_up_asm:
movw r0, #:lower16:__stack
movt r0, #:upper16:__stack
msr msp, r0
/* ----------------------------------------------------------------------------
* File end
* ------------------------------------------------------------------------- */
.end
他们已经这样做了;
(uint32_t) (&Turn_Wake_up_asm)
所以,我只是使用了这个;
(uint32_t) (&Turn_Wake_up);
而且我没有任何错误,但它没有用。所以我的主要问题是;
“ (uint32_t) (&Turn_Wake_up); 和 (uint32_t) (&Turn_Wake_up_asm) 有什么不同?”
注意:
*** 我没有任何关于 .S 文件内容的信息...
谢谢...
解决方案
推荐阅读
- javascript - Firestore - 查询,然后更新
- java - 如何洗牌存储在数组中的一副牌?
- rasa-core - 如何将实体识别与意图预测联系起来?
- php - POST 数据中的 CURLFile 对象使我的请求失败
- c++ - 使用行顺序在打印二维数组时显示垃圾值
- php - 在 PHP 中传递逗号分隔的字符串值
- jquery - Select2 下拉列表相对于 select2 的显示值向左偏移 -5px。不能用jquery改变
- mysql - 从两个表中获取结果
- postgresql - Golang 并通过 Ubuntu VPS 中的客户端访问 postgres?
- php - 如何使 PHP StdClass 反射