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文件内容的信息...

谢谢...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...