查看: 3623|回复: 3

[求助] S32K144系列SRAML与SRAMH内存

[复制链接]
  • TA的每日心情
    开心
    2019-5-31 08:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    6

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    82
    最后登录
    2019-8-7
    发表于 2019-5-15 11:28:32 | 显示全部楼层 |阅读模式
        用S32Design Studio编译代码,较大全局数组缓存总是从0x20000000开始,因为S32K144内存分为SRAMH和SRAML,想将变量定义到SRAML,即从0X1fff8000开始,尝试用 __attribute__ ((at(0X1fff8000)))指定,但是编译器S32Design Studio指定GCC编译,不识别at,用__attribute__((section("m_data"))),编译器识别,但是没有用,所以,想咨询下大神们,怎么能够利用这段内存呢?

    最佳答案

    在S32DS工程目录中可以找到链接文件,如下图所示: [attach]456412[/attach] 一般路径为:当前工程\Project_Settings\Linker_Files\S32K144_64_flash.ld 文件中已经定义好了Flash,SRAM等存储地址和段名称,通过以上 ...
    调通了S32K144 bootloader到APP的跳转
    回复

    使用道具 举报

  • TA的每日心情

    4 天前
  • 签到天数: 2116 天

    [LV.Master]伴坛终老

    56

    主题

    4782

    帖子

    73

    金牌会员

    Rank: 6Rank: 6

    积分
    24823
    最后登录
    2024-4-30
    发表于 2019-5-15 13:10:37 | 显示全部楼层
    在S32DS工程目录中可以找到链接文件,如下图所示:
    01.png
    一般路径为:当前工程\Project_Settings\Linker_Files\S32K144_64_flash.ld
    文件中已经定义好了Flash,SRAM等存储地址和段名称,通过以上图形可以看出,当前SRAM定义如下
      /* SRAM_L */
      m_data                (RW)  : ORIGIN = 0x1FFF8000, LENGTH = 0x00008000

      /* SRAM_U */
      m_data_2              (RW)  : ORIGIN = 0x20000000, LENGTH = 0x00007000

    从地址0x1FFF8000开始的32K内存命名为m_data,从地址0x20000000开始的28K SRAM被命名为m_data_2。

    默认情况下,在m_data(SRAM_L)中存放初始化过的全局变量,拷贝中断向量列表和RAM_CODE.
    在 m_data_2中存放.bss段(没有初始化的全局变量,堆、栈)
    If you need more RAM - you can merge m_data and m_data_2 section.
    Just remove m_data_2 section, extend m_data to 0xF000 size and replace all m_data_2 target to m_data in linker file.
    Other possibility is force variables into m_data seciton by __attribute__ ((section(".data"))) int my_var
    可以通过使用__attribute__ ((section(".data"))) int my_var的方式强制变量定义在m_data段。
    或者使用__attribute__ ((section(".customSection"))) int my_var的方式强制变量定义在m_data_2段

    比如在项目中如下定义即可使用
    02.png


    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-5-29 13:45
  • 签到天数: 2 天

    [LV.1]初来乍到

    3

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    59
    最后登录
    2023-5-29
    发表于 2023-5-26 09:13:23 | 显示全部楼层
    Angel_YY 发表于 2019-5-15 13:10
    在S32DS工程目录中可以找到链接文件,如下图所示:

    一般路径为:当前工程\Project_Settings\Linker_Files\ ...

    感谢大佬的分享,我也遇到这个问题了跑FreeRTOS 的话 SRAMU完全不够用
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-5-29 13:45
  • 签到天数: 2 天

    [LV.1]初来乍到

    3

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    59
    最后登录
    2023-5-29
    发表于 2023-5-26 09:51:32 | 显示全部楼层
    Angel_YY 发表于 2019-5-15 13:10
    在S32DS工程目录中可以找到链接文件,如下图所示:

    一般路径为:当前工程\Project_Settings\Linker_Files\ ...

    你好,我有个问题,就是手册上提示 0x20000000 是个边界不能跨越访问,如果我要是使用第一种方式合并的话 这个位置会不会导致不稳定出错
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-4 06:34 , Processed in 0.128931 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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