你好,
我有Basic和Expert开发工具包,并且正在尝试对reporter_fh示例代码做一些修改,以使它使用I/O从扩展睡眠唤醒。我想最终让它在一个Expert工具包的子板上工作(代码在OTP内存上运行,从深度睡眠中醒来),但我认为我可以首先在运行在外部SPI flash上的Basic开发板上测试代码。
我做了以下代码更改:
1.#define HW_CONFIG_BASIC_DK,并插入#define EXTERNAL_WAKEUP 1 in da14580_config.h per AN-B-026
2.#define USE_PUSH_BUTTON 1 and #define GPIO_BUTTON_PIN GPIO_PIN_1 in peripheral _setup.h per AN-B-026 (port 0, pin1被用作唤醒线)
我有两个问题:
1.我在RAM中运行代码,直到处理器进入长时间休眠。然后我接地端口0,引脚1,但ARM没有唤醒。
2.我遵循AN-B-023中的说明,并能够使用smarsnippets将十六进制文件加载到SPI flash中,但当我重新启动电源时,处理器似乎没有从SPI flash启动。
如何解决这些问题?另外,我如何使用调试器单步通过代码并观察寄存器数据?
谢谢。
问题1:我的建议如下:
-在pher_setup .h中选择Port 1, Pin 1作为按钮,重新编译代码,它应该可以工作。
-在" app_proxr_project .c"例程"app_button_enable"文件" app_proxr_project .c"中,有一个硬编码用于配置按钮中断的硬件。这被设置为0x200,对应端口1,引脚1。
—当使用其他gpio作为按钮中断源时,需要修改此值。
谢谢,更改中断引脚到端口1,引脚1工作!
你有一个解决方案,设备不引导从SPI flash?
对于设备不能从SPI flash引导的问题:
-既然你能够使用smarsnippets编程flash,我假设你有正确的跳线设置。请先检查一下那个。
-另外需要记住的一点是,你需要在da14580_config.h中禁用深度睡眠。深度睡眠只有在应用软件处于OTP或您正在使用二级引导加载程序时才能工作。要禁用深度睡眠,请执行以下undef: #undef CFG_DEEP_SLEEP。
启动问题已经解决了:我需要比装备多一个跳线。
嗨,对话框
我有一个关于设备从spi flash引导的问题,我设置偏移地址0x50在spi flash但不是0x00通过使用SmartSnippets,但它不工作,如果我设置地址0x00,它工作。它只是可以启动从flash设置地址0x00?
嗨shuixiu,
是的,设备将引导的唯一方法是如果你在spi Flash中放置地址0x00的代码。当SmartSnippets提示您使文件可引导时,在一个yes回答中,它创建一个指示0x00地址的头以便引导。
由于MT_dialog
谢谢你的回答!我找到了。