你好,
我拥有基本和专家开发套件,我试图对报告_FH示例代码进行一些更改,以使其通过I / O扩展睡眠唤醒。我想最终拥有一个专家套件的子板(在OTP内存上运行的代码并从深睡眠中唤醒),但我以为我可以首先在外部SPI闪存上运行的基本开发板上的代码测试代码。
我提出了以下代码更改:
1.取消注释#define hw_config_basic_dk和插入#define external_wakeup 1在da14580_config.h / b-026
2.修改#define使用_push_button 1和#define gpio_button_pin gpio_pin_1在periph_setup.h中的每个AN-B-026(端口0,PIN 1用作唤醒线)
我有两个问题:
1.我在RAM中运行代码,等待,直到处理器延长睡眠。我然后接地端口0,引脚1,但手臂没有醒来。
2.我遵循AN-B-023中的指令,并且能够使用SmartSnippet将十六进制文件加载到SPI Flash中,但当我重置电源时,处理器似乎没有从SPI Flash启动。
我该怎么办才能解决这些问题?另外,我该如何使用调试器来单步通过代码,并观察寄存器中的数据?
谢谢。
问题#1:我建议以下内容:
- 在periph_setup.h选择端口1,引脚1的按钮,重新编译代码,它应该工作。
- 在例程“app_button_enable”文件“app_proxr_proj.c”中,有一个硬编码用于配置用于按钮中断的硬件。这设置为0x200,其对应于端口1,引脚1。
- 需要修改此值,以便使用其他GPIOS作为按钮中断的源。
谢谢,将中断引脚改变为端口1,PIN 1工作!
您是否有从SPI Flash启动的设备的解决方案?
对于未从SPI Flash启动的设备问题:
- 由于您能够使用SmartSnippets编程Flash,我假设您将跳线设置正确。请先检查一个。
- 另一点要记住的是,您需要在DA14580_CONFIG.h中禁用深睡眠。只有在应用程序软件处于OTP时才能使用深度睡眠,或者您使用的二级引导程序。要禁用深度睡眠做UNDEF以下:和#undef CFG_DEEP_SLEEP。
启动问题已得到解决:我需要一个比套件的跳线更多。
嗨,对话
我对从SPI Flash引导的设备引导了问题,我将偏移地址0x50设置为SPI闪存,而不是使用SmartSnippet,但如果我设置了地址0x00,它就不起作用,它可以启动通过将地址设置为0x00,从Flash?
嗨水秀,
是的,设备将要启动的唯一方法是将代码放在SPI闪存中的地址0x00中。当SmartSnippets启动您要启动文件时,在yes答案中,它会创建一个标题,指示0x00地址以启动。
谢谢mt_dialog.
感谢您的回答 !我有它。