野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13406|回复: 1

FLASH读写

[复制链接]
发表于 2018-5-30 10:35:51 | 显示全部楼层 |阅读模式
本帖最后由 一条咸鱼 于 2018-5-30 10:54 编辑

犯蠢了。。。。。宏定义的时候多加了一个点。。。。。大家不用看了,非常弱智的错误。。。。。

以下为原贴,记住教训啊


用的芯片是F373,在编译 读写FLASH程序 时,出现以下问题,希望知道问题原因的朋友帮忙解答一下,谢谢!!!

编译是出现下图的错误:
////////////////////////////////////////
..\User\TEDS\temp_TEDS.c(459): error:  #29: expected an expression
    NbrOfPage = (
LASH_Calib_END_ADDR - FLASH_Calib_START_ADDR ) / FLASH_PAGE_SIZE;
..\User\TEDS\temp_TEDS.c: 0 warnings, 2 errors
".\Objects\temp-F373.axf" - 2 Error(s), 0 Warning(s).

///////////////////////////////////////

出错代码如下:
//////////////////////////////////////
        /* 计算要擦除多少页 */
  NbrOfPage = ( FLASH_Calib_END_ADDR - FLASH_Calib_START_ADDR ) / FLASH_PAGE_SIZE;

/////////////////////////////////////

奇怪的是当代码改成:
///////////////////////////////////////
        /* 计算要擦除多少页 */
  NbrOfPage = ( FLASH_Calib3_END_ADDR - FLASH_Calib_START_ADDR ) / FLASH_PAGE_SIZE;

//////////////////////////////////////
时,编译成功。。。。。

以下是对宏的定义:
/////////////////////////////////////////////
#define ADDR_FLASH_SECTOR_21     ((uint32_t)0x08010800) /* Base address of Sector 21, 2 Kbytes   */
#define ADDR_FLASH_SECTOR_22     ((uint32_t)0x08011000) /* Base address of Sector 22, 2 Kbytes   */
#define ADDR_FLASH_SECTOR_23     ((uint32_t)0x08011800) /* Base address of Sector 23, 2 Kbytes   */
#define ADDR_FLASH_SECTOR_24     ((uint32_t)0x08012000) /* Base address of Sector 24, 2 Kbytes   */
#define ADDR_FLASH_SECTOR_25     ((uint32_t)0x08012800) /* Base address of Sector 25, 2 Kbytes  */

/* 要擦除内部FLASH的起始地址 */
#define FLASH_Calib_START_ADDR           ADDR_FLASH_SECTOR_20   
/* 要擦除内部FLASH的结束地址 */
#define FLASH_Calib_END_ADDR                    ADDR_FLASH_SECTOR_21
/* 要擦除内部FLASH的起始地址 */
#define FLASH_Calib2_START_ADDR           ADDR_FLASH_SECTOR_21   
/* 要擦除内部FLASH的结束地址 */
#define FLASH_Calib2_END_ADDR             ADDR_FLASH_SECTOR_22
/* 要擦除内部FLASH的起始地址 */
#define FLASH_Calib3_START_ADDR           ADDR_FLASH_SECTOR_22   
/* 要擦除内部FLASH的结束地址 */
#define FLASH_Calib3_END_ADDR             ADDR_FLASH_SECTOR_23

///////////////////////////////////////////////////
如果把FLASH_Calib_START_ADDR改成ADDR_FLASH_SECTOR_23,编译也没问题,所以现在暂时想到的原因是ADDR_FLASH_SECTOR_21地址不能用,但是这不合逻辑啊。。。。




求各位大神帮忙解答,谢谢!!!!!

1.png
2.png
3.png
4.png
回复

使用道具 举报

 楼主| 发表于 2018-5-30 10:53:40 | 显示全部楼层
犯蠢了。。。。。宏定义的时候多加了一个点。。。。。大家不用看了,非常弱智的错误。。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-12-6 06:46 , Processed in 0.042114 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表