码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ATJ2157内存篇【炬芯音频芯片】---sct语法


    ATJ2157 sct语法

    • 公共知识篇
      • BNF 简介
      • Sct脚本
        • Sct的作用
        • Sct的语法规则
          • 1. 加载域描述(Loadd region descriptions)
          • 2. 执行域描述
          • 3. 输入节的描述
    • ATJ2157平台使用的sct
      • RO的等效写法
      • ScatterAssert()函数
      • LoadLength()函数
      • LoadBase()函数
      • ImageLimit()函数
      • ATJ2157平台什么数据编译出来是.data,.constdata与.bss
    • sct参考学习网站

    公共知识篇

    BNF 简介

    巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur,首次引入一种形式化符号来描述给定语言的语法。

    简称为:BNF符号。   
    现在,几乎每一位新编程语言书籍的作者都使用巴科斯范式来定义编程语言的语法规则

    巴科斯范式的内容

    在双引号中的字(“word”)代表着这些字符本身。而double_quote用来代表双引号。

    在双引号外的字(有可能有下划线)代表着语法部分。

    尖括号( < > )内包含的为必选项。

    方括号( [ ] )内包含的为可选项。

    大括号( { } )内包含的为可重复0至无数次的项。

    竖线( | )表示在其左右两边任选一项,相当于"OR"的意思。

    ::= 是“被定义为”的意思。

    关于具体的例子可以上网搜索,网上资料比较齐全

    Sct脚本

    Sct 的全称是 Scatter File Syntax,

    Sct的作用

    在学习一个东西之前,首先要明白,她是干什么的?那么sct脚本文件到底是什么东西?

    其实吧,sct脚本文件是描述如何把输入文件中的节(sections)映射到输出文件中,并控制输出文件的存储布局的脚本文件。并且sct的语法是遵守BNF的语法规则的。

    Sct的语法规则

    一个.sct文件,包括了一个或者多个加载域(load region),每个加载域也包括一个或者多个执行域(execution region)

    下面是一个.sct文件的文件结构图
    在这里插入图片描述

    1. 加载域描述(Loadd region descriptions)

    其实加载域就是用来描述下内存的区域,这个区域是用来存放执行域的

    加载区域描述的组件允许您唯一标识加载区域,并控制ELF文件的哪些部分放置在该区域中

    加载域的具体结构

    在这里插入图片描述

    一个加载域描述,应该包括哪些内容呢?

    1:名字(被编译器用来识别不同的加载域)
    2:一个基地址(代码或数据的开始地址)
    3:属性说明
    4:大小
    5:一个或者多个执行域
    
    • 1
    • 2
    • 3
    • 4
    • 5

    加载域的语法详解
    符合BNF的规则,对规则不了解的可以百度下

    load_region_description ::= load_region_name (base_address | (“+”
    offset)) [attribute_list] [max_size]
    “{”
    execution_region_description+
    “}”

    load_region_name:
    加载域的名字,这个是区域中区分大小写的
    
    base_address :
    这个区域内被链接的地址,注意要满足对齐的要求
    
    +of
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Causality
    prometheus监控带安全认证的elasticsearch
    rar文件如何打开
    记录一个Cortex-M23的一个重要问题
    nrf52832 ADC的配置
    记录生产中遇到的两个sql优化场景
    【第二章 数据的表示和运算】2.3
    Java下载安装和配置
    双倍数据速率I/O (ALTDDIO_IN、ALTDDIO_OUT)使用方法
    你把 浏览器滚动事件 玩明白
  • 原文地址:https://blog.csdn.net/sikuon/article/details/128065753
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号