硬汉嵌入式论坛

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

[STM32H7] 使用硬汉qspi算法后,拓展一下sct的使用

[复制链接]

17

主题

101

回帖

152

积分

初级会员

积分
152
发表于 2020-11-30 20:11:14 | 显示全部楼层 |阅读模式
除了对文件使用 option之外,还可以使用sct文件,本质上都是调用sct文件,添加指定过的文件的.o文件。
原型如下
  1. LR_IROM1 0x08000000 0x00200000 { ; load region size_region
  2. ER_IROM1 0x08000000 0x00200000 { ; load address = execution address
  3. *.o (RESET, +First)
  4. *(InRoot$Sections)
  5. .ANY (+RO)
  6. .ANY (+XO)
  7. }
  8. RW_IRAM1 0x20000000 0x00020000 { ; RW data
  9. .ANY (+RW +ZI)
  10. }
  11. RW_IRAM2 0x24000000 0x00080000 {
  12. .ANY (+RW +ZI)
  13. }
  14. }
复制代码
对文件option之后就变成了
  1. LR_IROM1 0x08000000 0x00200000 { ; load region size_region
  2. ER_IROM1 0x08000000 0x00200000 { ; load address = execution address
  3. *.o (RESET, +First)
  4. *(InRoot$Sections)
  5. .ANY (+RO)
  6. .ANY (+XO)
  7. }
  8. RW_IRAM1 0x20000000 0x00020000 { ; RW data
  9. .ANY (+RW +ZI)
  10. }
  11. RW_IRAM2 0x24000000 0x00080000 {
  12. .ANY (+RW +ZI)
  13. }
  14. }

  15. LR_ROM1 0x90000000 0x02000000 {
  16. ER_ROM1 0x90000000 0x02000000 { ; load address = execution address
  17. guiapp_resources.o (+RO)
  18. }
  19. }
复制代码
这个时候又想对其他文件某个常量进行映射到外部flash,继续修改

  1. LR_ROM1 0x90000000 0x02000000 {
  2. ER_ROM1 0x90000000 0x02000000 { ; load address = execution address
  3. guiapp_resources.o (+RO)
  4. *.o (EXTFLASH)
  5. }
  6. }
复制代码
这个时候就可以单独对常量操作了
  1. const unsigned char Tx_Buffer123[] __attribute__((section("EXTFLASH"))) =
  2. {
  3. 0x36,0x37,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
  4. 0x32,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
  5. 0x32,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
  6. 0x32,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
  7. 0x32,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
  8. 0x32,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
  9. 0x32,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
  10. 0x32,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
  11. 0x32,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
  12. 0x32,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
  13. };
复制代码
再搞一下堆栈的设置,由于使用到宏定义相关内容,所以需要添加调用宏定义的命令
  1. “#! armcc -E”
复制代码
这个时候再添加堆栈的定义
  1.   ARM_LIB_STACK 0x20000000 UNINIT -STACK_SPACE { ; Stack region growing down
  2. *(STACK) }

  3. ARM_LIB_HEAP 0x20100000 EMPTY 0x200
  4. {
  5. }
复制代码
栈是向下生长,所以是负号,常用的就这些,还有sram的,看硬汉的就可以了。


评分

参与人数 1金币 +50 收起 理由
eric2013 + 50 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107852
QQ
发表于 2020-12-1 16:29:19 | 显示全部楼层
谢谢楼主分享。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-15 21:26 , Processed in 0.198402 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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