zoukankan      html  css  js  c++  java
  • 基于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 0
         while ((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 */
    
    
  • 相关阅读:
    AppDomain应用及 如何改变web.config / App.config位置
    WPF 值转换器 IValueConverter 例子
    ICSharpCode.SharpZipLib .dll 使用说明
    Unity 概述
    MySQL速度变慢,怎么办?【转载】
    微软企业库 Enterprise Library
    MySql 慢查询设置 和 查看
    Prism 概述
    使用SSH Secure Shell登陆Linux出现乱码的解决
    RHEL5 YUM安装GCC
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/15169430.html
Copyright © 2011-2022 走看看