导航

    Freqchip开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 最新
    1. 主页
    2. DSG
    D
    • 继续与 DSG 聊天
    • 开始与 DSG 的新会话
    • 举报资料
    • 资料
    • 关注
    • 粉丝
    • 屏蔽
    • 主题
    • 帖子
    • 最佳
    • 群组

    DSG

    @DSG

    0
    声望
    6
    帖子
    76
    资料浏览
    0
    粉丝
    0
    关注
    注册时间 最后登录

    DSG 关注

    DSG 发布的帖子

    • RE: 关于FR8008GP FLASH读写问题

      我试下来偏移地址不超过512kb都是可以的,超过512kb地址的话就不行了,是哪里的配置还要进行修改吗

      发布在 FR800x
      D
      DSG
    • RE: 关于FR8008GP FLASH读写问题

      @zr attribute((section("ram_code"))) void FlashFuncTest(void);是这样定义吗,试了一下还是不行

      发布在 FR800x
      D
      DSG
    • RE: 关于FR8008GP FLASH读写问题

      @zr 您好,使用这个示例下载到板子上是正常的。将这部分代码移植到自己的工程中,就不行了,这个可能是哪里的问题呢?

      发布在 FR800x
      D
      DSG
    • RE: 关于FR8008GP FLASH读写问题

      @zr 将FLASH_ADDR改为0x15E000,读出来的与写入的还是不一致
      const struct jump_table_image_t _jump_table_image attribute((section("jump_table_1"))) =
      {
      .image_type = IMAGE_TYPE_APP,
      .image_size = 0x19000 * 6,
      };程序中image_size是600kb,加上b区域的600kb,再加上a和b区域固件信息的两个4kb,这些是1208kb,我的偏移地址对应的是1400kb,这样理解对吗?现在按照这个地址分配写入与读取的数据还是不一致,调用flash_read函数读取返回值与变量定义是的0xf一致,这个是什么问题

      发布在 FR800x
      D
      DSG
    • 关于FR8008GP FLASH读写问题

      参照论坛中的方法已经对app_config.h文件进行了修改
      *// <h> FLASH Configuration
      // <o> FLASH_CAPACITY
      // <i> Internal Flash capacity selection, Default: 4Mb
      // <0x01000000=> 8Mb
      // <0x00080000=> 4Mb
      // <0x00040000=> 2Mb

      #define FLASH_CAPACITY 0x01000000

      #if FLASH_CAPACITY == 0x00080000
      #define BLE_STACK_KEY_STORAGE_OFFSET 0x7F000
      #define BLE_BONDING_INFO_SAVE_ADDR 0x7D000
      #define BLE_REMOTE_SERVICE_SAVE_ADDR 0x7E000
      #elif FLASH_CAPACITY == 0x00040000
      #define BLE_STACK_KEY_STORAGE_OFFSET 0x3F000
      #define BLE_BONDING_INFO_SAVE_ADDR 0x3D000
      #define BLE_REMOTE_SERVICE_SAVE_ADDR 0x3E000
      #elif FLASH_CAPACITY == 0x01000000
      #define BLE_STACK_KEY_STORAGE_OFFSET 0xFFF000
      #define BLE_BONDING_INFO_SAVE_ADDR 0xFFD000
      #define BLE_REMOTE_SERVICE_SAVE_ADDR 0xFFE000
      #else
      #error "flash capacity configuration error!"
      #endif //FOR_2M_FLASH*
      flash测试代码如下
      *#define FLASH_ADDR (0x10021000)
      #define FLASH_SECTOR_SIZE (0x100)
      #define FLASH_WRITE_LEN (0x100)
      void FlashFuncTest(void)
      {
      co_printf("FLASH FUNC TEST\r\n");
      uint8_t read_retu_num=0xf,erase_retu_num=0xf,write_retu_num=0xf;
      uint8_t w_buf[FLASH_WRITE_LEN] = {0};
      uint8_t r_buf[FLASH_WRITE_LEN] = {0};

      for(uint16_t i = 0;i < FLASH_WRITE_LEN;i++)
      {
      	w_buf[i] = i;
      }
      
      co_printf("**********************Start->Erase**********************\r\n");
      erase_retu_num=flash_erase(FLASH_ADDR, FLASH_SECTOR_SIZE);
      co_printf("erase_retu_num %d\r\n",erase_retu_num);
      co_printf("Erase->Write\r\n");
      write_retu_num=flash_write(FLASH_ADDR, FLASH_WRITE_LEN, w_buf);
      
      co_printf("write_retu_num %d\r\n",write_retu_num);
      co_delay_100us(10*2000);
      erase_retu_num=flash_read(FLASH_ADDR, FLASH_WRITE_LEN, r_buf);
      co_printf("read retu_num %d\r\n",read_retu_num);
      co_printf("Write->Read\r\n");
      show_reg(r_buf, FLASH_WRITE_LEN, 1);
      

      }*
      通过串口打印,发现写入与读取的数据不一致,这是哪里的问题,该怎么解决

      发布在 FR800x
      D
      DSG