背景和设置
缺少一些 Arduino 开发,我是嵌入式世界的新手。决定跳进去学习!有一个带有 ATSam4C32C 微处理器的 Sam4C-ek,还有 Atmel ICE 调试器。把所有东西都连接起来并安装了 Atmel Studio 7。查看数据表,在 PC8 上找到了一个用户可控制的 LED,在 PIO 控制器上找到了文档,最后得到了这个代码来打开那个 LED:
#include "sam.h"
#include "component\pio.h"
int main(void)
{
/* Initialize the SAM system */
SystemInit();
PIOC->PIO_OER = PIO_OER_P8;
PIOC->PIO_PER = PIO_PER_P8;
PIOC->PIO_SODR = PIO_SODR_P8;
return 1;
}
从 atmel 库定义:
#define PIOC (0x4800C000U) /**< \brief (PIOC ) Base Address */
#define PIO_OER_P8 (0x1u << 8) /**< \brief (PIO_OER) Output Enable */
#define PIO_PER_P8 (0x1u << 8) /**< \brief (PIO_PER) PIO Enable */
#define PIO_SODR_P8 (0x1u << 8) /**< \brief (PIO_SODR) Set Output Data */
问题
我在没有调试的情况下点击了开始,它加载了 micro,没有任何反应......嗯,好吧,所以我做错了。点击停止,点击“开始调试和中断”,我收到错误消息“无法写入 ARM 内存”。那很奇怪!尝试通过 AS7 进行全芯片擦除等操作,但最终必须跳过擦除引脚并重置微控制器。点击“开始调试并中断”它加载程序并在“int main(void)”上中断,点击 F10 以逐步执行,SystemInit() 很好,点击 PIOC->PIO_OER = PIO_OER_P8; 在“跨过”之后,它就会进入看起来像无限循环的状态。如果我点击停止并尝试重新开始,我会得到相同的“无法写入手臂记忆”并且必须跳转擦除。
有任何想法吗?!