基于RT1052 Awroks 使能看门狗记录(二)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发
1. 首先阅读原理图
正常来说看门狗超时,CPU会直接复位,有时会要求输出复位脉冲。这个功能可以使能,也可以不使能。
在Easy_arm_rt1052 开发板上面不使能复位脉冲也是可以复位成功的。
2. 使能Watchdong
在Awork框架下面,模块功能的开启都是在aw_prj_params.h文件内修改。而aw_prj_param_auto_cfg.h则是有依懒的,比如说,使能的LCD显示,一般都配置PWM控制背光,或者访问I2C总线访问EEPROM,需要使能其总线驱动。如下所示:
使能watchdog只需要在aw_prj_params.h 定义相关的宏即可,如下所示
3. 如何测试
在Aworks框架之下,周立功公司提供了对应的编程接口,本人参考AWorks标准API参考手册1.10.chm
static struct awbl_wdt wdt_dev;
void wdt_test(){aw_wdt_add(&wdt_dev, 1000);aw_wdt_feed(&wdt_dev);// force trigger watchdog timeout;aw_mdelay(2000);
}
4. SDK BUG
在SDK 2.1.0 下,存在看门狗超时,系统复位不成功的问题。
在FAE支持下,通过如下补丁可解决改问题。在笔者的开发初期,只看了Aworks的编程手册,而没有了解其背后的设计框架,认为只要打开相应的宏,即可通过上层接口进行编程,后面跳入坑中。
Index: awbl_imx1050_flexspi.c
===================================================================
--- awbl_imx1050_flexspi.c (revision 1)
+++ awbl_imx1050_flexspi.c (working copy)
@@ -42,7 +42,7 @@*******************************************************************************/#if defined (__CC_ARM)extern unsigned int Image$$ER_FLEXSPI_DRV_START$$Base; /* __flexspi_drv_start__ */
-#define __FLEXSPI_DRV_START (&Image$$ER_FLEXSPI_DRV_START$$Base)
+#define __FLEXSPI_DRV_START (&Image$$ER_FLEXSPI_DRV_START$$Base)#elif defined (__GNUC__)extern int __flexspi_drv_start__;#define __FLEXSPI_DRV_START (&__flexspi_drv_start__)
@@ -1673,12 +1673,27 @@} else {status |= (temp & 0x3c);}
+ /*
+ Note:change for watchdog timeout, but reboot halted, follow it the booting log:
+
+ Application Start.
+ feed wdt
+ force trigger watchdog timeout /r/n
+ AWorks for i.MX RT1050, build Oct 13 2020+ AWorks SDK Version is 2.1.0 <2020-04-20>
+ use panel: tft_panel 0 (480 x 272 16 bpp)
+ current time: 1970-01-01 00:08:51
+ P/IP i|AWorks->>> nitializing
+ Hostname set to AWorks
+ TCP/IP initialized
+ */
+#if 0while ((status != temp) && (times-- > 0)) {p_this->serv_func.pfunc_flexspi_nor_flash_write_status(p_dev, status);p_this->serv_func.pfunc_flexspi_nor_flash_read_status(p_dev, &temp, 1);}
-
+#endif/* 进入四字节地址模式 */if (p_devinfo->dev_cfg.flash_size >= 16 *1024*1024) {__flexspi_nor_flash_enter_4byte(p_dev);
Index: flexram_config_for_armcc.S
===================================================================
--- flexram_config_for_armcc.S (revision 1)
+++ flexram_config_for_armcc.S (working copy)
@@ -35,7 +35,7 @@; 配置GPR17中的FLEX RAM,全部为DTCM
- ldr r1, = 0xAAAAAAAA;
+ ldr r1, = 0xAAAAAAA5;ldr r0, = REG_IOMUXC_GPR17;str r1,[r0];dsb
Index: easy_arm_rt1052_flexspi_flash.sct
===================================================================
--- easy_arm_rt1052_flexspi_flash.sct (revision 1)
+++ easy_arm_rt1052_flexspi_flash.sct (working copy)
@@ -13,9 +13,9 @@#define FLASH_SIZE 0x400000 /* flash size: 4M */ #define DATA_START 0x20000000 /* data start address */
-#define DATA_SIZE 0x7F000 /* code size: 508k */
+#define DATA_SIZE 0x6F000 /* code size: 444k */-#define RELOAD_CODE_START 0x2007F000 /* reload code start address */
+#define RELOAD_CODE_START 0x2006F000 /* reload code start address */#define RELOAD_CODE_SIZE 0x1000 /* reload code size: 4k */#define STACK_START DATA_START /* stack start address */
基于RT1052 Awroks 使能看门狗记录(二)相关推荐
- 基于ARM IP的看门狗设计与功能验证
看门狗是一个定时器, ARM提供了一个32位向下计数的看门狗IP,它会不断地计数.通过软件可以设置计数值,计数到某一设定值重新开始计数,这一过程也被称为喂狗,如果没有正常喂狗,说明出现系统故障,看门狗 ...
- 基于STM32的独立看门狗详细用法(IWDG)
文章目录 前言 一.IWDG 1.简介 2.主要特性 3.独立看门狗框图 二.使用步骤 1.独立看门狗初始化 2.完整代码 三.功能演示 前言 今天要学习的是独立看门狗,看门狗电路的应用,使单片机可以 ...
- 基于Xilinx CPLD的看门狗电路设计
概述 随着现代电子技术的发展,带有各种微处理的现代电子设备已广泛应用于国民生产的各行各业中.但随着设备功能越来越强大,程序结构越来越复杂,指令代码越来越长,加之现场工作环境的干扰,设备失控,程序&qu ...
- 基于RT1052 Aworks使能U盘功能(十九)
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发# 1. 首先阅读原理图 前置知识,一般来说访问U盘,软件上需要满足如下几点功能. USB host 驱动 USB ho ...
- 嵌入式学习(二)——刷机和led实验(看门狗、c语言、icache、重定位、SDRAM)
目录 一.刷机和裸机实验 1.1 刷机步骤 1.2 交叉编译链 1.2.1 环境变量配置 二.led实验 2.1 实验准备 2.2 实验开始 2.2.1 Makefile 2.2.2 mkv210_i ...
- 学习记录:使用STM32F1看门狗
目录 前言 一.独立看门狗 1.1. IWDG主要性能 1.2.IWDG功能描述 1.3.寄存器访问保护 1.4.配置独立看门狗的步骤 二.窗口看门狗 2.1.WWDG主要特性 2.2.WWDG功能描 ...
- STM32 学习笔记 -- 基于stm32f4的看门狗配置和实验代码
基于stm32f4的看门狗配置和实验代码 以下本人对stm32f4xx的独立看门狗和窗口看门狗学习.理解和总结,程序的说明和解释均在注释中,仔细阅读不难理解.我已经过验证,有问题或错误请指出. 版权声 ...
- 关于我对stm32看门狗的一些理解(基于正点原子)
咕咕咕之后想更会儿stm32哈哈哈,但是其实是之前自己写的笔记,想着以后就写在一起吧,我自己也更好去找到自己写的玩意~毕竟总所周知,博客都是写给自己的. (虽然好像现在自己都看不懂了我的天哪) 一.什 ...
- STM32f429独立看门狗配置--基于HAL库
STM32f429独立看门狗配置–基于HAL库 独立看门狗IWDG由专用的低速时钟LSI驱动,即使主时钟发生故障他仍然有效,但由于时钟LSI并不精确所以他适用于对时间精度要求低的场合,在喂狗的时候尽量 ...
最新文章
- 在ASP.NET Core应用程序中使用分布式缓存
- cmake 静态编译 简介
- 我用过的,我正在用的,比较高效、好用的命令
- 内存双通道不兼容举例以及解决方案.
- springmvc框架下Filter过滤器中过滤文件后 后续 controller为空的问题
- Ov两款骁龙865手机即将发布:其中一款或低于2999元
- Flash 环境 全屏效果
- 停就删稿!这个“可怕”的 GitHub 开源项目值得一试
- Microsoft Office 2016 简体中文Vl批量官方授权版镜像下载
- javascript编写的抽奖小程序
- 【水哥RPA】配置水哥RPA环境变量报错的解决方法
- 史上最搞笑的程序员段子,你看懂了吗?
- luogu P4315 月下“毛景树”
- java基于ssm框架开发的高校实验室预约管理系统实战项目
- Linux安装水星MW150US
- 欢迎大家关注博主微信公众号
- QT 绘图工具-QCustomPlot
- uniapp上传图片
- Spring Boot使用Servlet居然也可以实现长轮询,敲了5年代码,我居然不知道 - 第413篇
- 惠普战66指纹识别突然无法添加,点击添加弹窗闪退解决
热门文章
- 软件外包开发项目管理工具
- 中脉乱象之四问中脉人
- 360android 打包工具,Android gradle 自动化360加固打包
- WPF中转换器的创建和使用
- 打包时Javascript heap out of memory的错误处理
- 导航面板[ExtJS4]ExtJS4左边菜单面板收缩展开,右边TabPanel内容动态更新(解决宽度不能自适应问题)
- DAP-seq技术鉴定全基因组水平上的ZjVND7靶基因,揭示酸枣全基因组复制在调节木质部导管分化和耐旱性中的作用
- IT规划及管理讨论,请各位凭借自己的理解踊跃发言(可选择回答^^)
- python自动化报表-Python报表自动化
- dequeue(enqueue和dequeue)