硬汉嵌入式论坛

 找回密码
 立即注册
查看: 780|回复: 3
收起左侧

[有问必答] STM32L431 使用W25Q128存储图像数组的问题

[复制链接]

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-8-1 16:52:13 | 显示全部楼层 |阅读模式
本帖最后由 rekludge 于 2022-8-1 16:53 编辑

想把一个图片数组存到W25Q128中,通过QSPI的内存映射模式,
直接存到绝对地址时是正确的,代码如下  static const unsigned char image_a2[] __attribute__((at(0x90000000)))={  }
但当使用段名,即static const unsigned char image_a2[] __attribute__((section("ExtFlashSection"))) ={ }
且在分散加载文件中加入以下代码后,
[C] 纯文本查看 复制代码
LR_EROM1 0x90000000 0x800000  {    ; load region size_region
  ER_EROM1 0x90000000 0x800000  {  ; load address = execution address
   *.o (ExtFlashSection)
  }
}

编译会显示 “ warning: L6329W: Pattern *.o(ExtFlashSection) only matches removed unused sections. ”
而且.map文件中也显示该段没有数据



[C] 纯文本查看 复制代码
Load Region LR_EROM1 (Base: 0x90000000, Size: 0x00000000, Max: 0x00800000, ABSOLUTE)

    Execution Region ER_EROM1 (Base: 0x90000000, Size: 0x00000000, Max: 0x00800000, ABSOLUTE)

    **** No section assigned to this execution region ****


请问这是什么原因?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106643
QQ
发表于 2022-8-6 00:08:02 | 显示全部楼层
定义方式问题,改成这样就行了。
image.png

image.png
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2022-8-12 16:22:24 | 显示全部楼层
eric2013 发表于 2022-8-6 00:08
定义方式问题,改成这样就行了。

这样是存到片内RAM里了吧,我想让它存在片外Flash里。
手边有个TouchGFX的例程,里面的分散文件就是这么加的,是不是还需要在哪里配置一下?
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2024-2-20 19:31:30 | 显示全部楼层
const uint8_t write_buf[16]__attribute__((used, section("ex_flash"))) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 , 14, 15};
这样使用,注意,used是必须的
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-27 14:22 , Processed in 0.168152 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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