你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

IAR 软件问题----- 在线调试,软件端不显示flash内写入的数.....

[复制链接]
▲-猪-▼Ψ 提问时间:2016-11-26 23:58 /
本帖最后由 ▲-猪-▼Ψ 于 2016-11-27 18:04 编辑

用IAR调试软件,写入寄存器的数据,无法在IAR软件的界面上查询到,请问,是我的设置问题,还是哪里出了问题?
捕获1.PNG
收藏 2 评论18 发布时间:2016-11-26 23:58

举报

18个回答
wenyangzeng 回答时间:2017-1-26 07:55:30
本帖最后由 wenyangzeng 于 2017-1-27 07:38 编辑

无标题.png
IAR查看寄存器应该是这样





评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

▲-猪-▼Ψ 回答时间:2016-11-27 00:03:31
我已经写数据了,向stm32L053   内部flash  ,并且用地址指针直接读取flash数据,再用串口输出flash地址的数据,flash地址是0x0800 0000到0x0800ffff , 64K没有超出地址。

实验硬件现象无错误,
但是为什么IAR软件调出flash内容列表,却不出现我写进去的数据呢?

▲-猪-▼Ψ 回答时间:2016-11-27 00:07:36
我查询其他内存数据时,是这个情况
捕获2.PNG
捕获3.PNG
捕获4.PNG
捕获5.PNG
▲-猪-▼Ψ 回答时间:2016-11-27 00:11:15
本帖最后由 ▲-猪-▼Ψ 于 2016-11-27 00:16 编辑

我自己的flash  内容用串口输出的代码如下



/**
  ******************************************************************************
  * @file     FLASH
  * @author  
  * @version
  * @date   
  * @brief    要求程序可对MCU的内部Flash页进行擦除,
              可写入固定数量的数据,并可将写入的数据读出。
              要求读出的数据与写入的数据内容必须一致。

              擦除后,写,用串口输出flash数据

              0x080000000 - 0x0800FFFF    64K  flash
              0x080800000 - 0x080107FF    2K   EEPROM

              1PAGE            = 128 byte
              1sector(0-15)    = 32page (0-31)
              
              7s可以完成写数据和读数据,校验数据
  ******************************************************************************
  */

#include "main.h"

#define FLASH_USER_START_ADDR   0x08008000   /* flash起始地址 */
#define FLASH_USER_END_ADDR     0x0800A000   /* flash终止地址 */


uint8_t DATA_32[] = "STM32LO53C8";


int i =0;

uint32_t FirstPage = 0, NbOfPages = 0, Address = 0;
uint32_t PageError = 0;
__IO uint32_t data32 = 0 , MemoryProgramStatus = 0;

static FLASH_EraseInitTypeDef EraseInitStruct;

UART_HandleTypeDef UartHandle;
__IO ITStatus UartReady = RESET;
uint8_t aTxBuffer[] = " THIS IS TRUE  ";
uint32_t BUFFER_data;

uint8_t aRxBuffer[RXBUFFERSIZE];

static void SystemClock_Config(void);
static void Error_Handler(void);
void UART_INT(void);




int main(void)
{
    HAL_Init();
    BSP_LED_Init(LED3);
    SystemClock_Config();
    UART_INT();
    HAL_FLASH_Unlock();

    NbOfPages = (FLASH_USER_END_ADDR - FLASH_USER_START_ADDR + 1) >> 7;

    EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES;
    EraseInitStruct.PageAddress = FLASH_USER_START_ADDR;
    EraseInitStruct.NbPages = NbOfPages;

    if (HAL_FLASHEx_Erase(&EraseInitStruct, &PageError) != HAL_OK)
    {
        Error_Handler();
    }

    Address = FLASH_USER_START_ADDR;

    while (Address < FLASH_USER_END_ADDR)
    {
        if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, Address , (uint32_t)DATA_32) == HAL_OK)
        {
            Address = Address + 4;
        }
        else
        {
            Error_Handler();
        }
    }

    HAL_FLASH_Lock();
  
  
    /* 变量    MemoryProgramStatus = 0: 数据正确   
               MemoryProgramStatus != 0: 数据错误                        ******/
    Address = FLASH_USER_START_ADDR;
    MemoryProgramStatus = 0x0;
    BUFFER_data= *(__IO uint32_t*)(0x8008000);
    if(HAL_UART_Transmit_IT(&UartHandle, (uint8_t*)BUFFER_data, 11)!= HAL_OK)
    {
        Error_Handler();
    }
   
   
    while (Address < FLASH_USER_END_ADDR)
    {
        data32 = *(__IO uint32_t*)Address;

        if (data32 != (uint32_t)DATA_32)  
        {
           MemoryProgramStatus++;  
        }
        Address = Address + 4;
    }

    if (MemoryProgramStatus == 0)
    {
        BSP_LED_On(LED3);
        UART_INT();

        if(HAL_UART_Transmit_IT(&UartHandle, (uint8_t*)aTxBuffer, TXBUFFERSIZE)!= HAL_OK)
        {
            Error_Handler();
        }

    }
    else
    {
        Error_Handler();
    }
  
    while (1)
    {
    }
}
▲-猪-▼Ψ 回答时间:2016-11-27 00:20:18
求IAR软件具体设置步骤,我的两台电脑都是无法用IAR软件显示内存里面具体的数据值,可能不是我的软件安装错误,    但是软件既然设计了这个功能,怎么可能荒废掉呢???求解决详细方法!

备注:我的IAR是7.2版本的,,
▲-猪-▼Ψ 回答时间:2016-11-28 09:00:35
没有人喜欢这么查询吗?
peter001 回答时间:2016-11-28 11:43:14
帮顶,估计没写入
▲-猪-▼Ψ 回答时间:2016-11-28 12:21:40
peter001 发表于 2016-11-28 11:43
帮顶,估计没写入

我串口取的地址指针,就是flash的地址啊,是我的串口指针书写方式不对吗?
队长shiwo 回答时间:2017-1-26 09:04:48
是不是被覆盖掉了的啊
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版