[linker] correct indentation

This commit is contained in:
Boris Verkhovskiy 2024-12-18 17:02:09 -07:00
parent 29e880808e
commit 755d45e978
3 changed files with 143 additions and 151 deletions

View File

@ -23,6 +23,6 @@ jobs:
- name: Files are UTF-8
run: ./lint/encoding.sh .
- name: Lint Markdown
run: mdl . --ignore-front-matter -r MD003,MD005,MD011,MD019,MD023,MD027,MD028,MD035,MD037,MD038,MD039,MD047
run: mdl . --ignore-front-matter -r MD003,MD005,MD011,MD019,MD023,MD025,MD027,MD028,MD035,MD037,MD038,MD039,MD047
- name: Lint frontmatter
run: ./lint/frontmatter.py .

View File

@ -1,34 +1,31 @@
---
category: tool
name: GNU linker (ld)
name: Linker script
contributors:
- ["Alexander Kovalchuk", "https://github.com/Zamuhrishka"]
translators:
- ["Anuj Shah", "https://github.com/ShahAnuj2610"]
filename: learn.ld
---
## Basic concepts and definitions
**Position counter** - the linker has a special variable
"." (dot) always contains the current output position.
"`.`" (dot) always contains the current output position.
## Functions
**ADDR (section)** - returns the absolute address of the specified section. However
`ADDR (section)` - returns the absolute address of the specified section. However
this section must be defined before using the ADDR function.
**ALIGN (exp)** - returns the value of the position counter aligned to the border
`ALIGN (exp)` - returns the value of the position counter aligned to the border
following the exp expression.
**SIZEOF (section)** - returns the size of the section in bytes.
`SIZEOF (section)` - returns the size of the section in bytes.
**FILL (param)** - defines the fill pattern for the current section. All
`FILL (param)` - defines the fill pattern for the current section. All
other unspecified regions within the section are filled with the value indicated
in function argument.
**KEEP (param)** - used to mark param as fatal.
`KEEP (param)` - used to mark param as fatal.
**ENTRY (func)** - defines the function that will be the entry point
`ENTRY (func)` - defines the function that will be the entry point
into the program.
```bash
@ -45,7 +42,7 @@ _Min_Stack_Size = 0x400;
# Description of the memory card available for this processor
# MEMORY
# {
#MEMORY_DOMAIN_NAME (access rights): ORIGIN = START_ADDRESS, LENGTH = SIZE
# MEMORY_DOMAIN_NAME (access rights) : ORIGIN = START_ADDRESS, LENGTH = SIZE
# }
# In our example, the controller contains three memory areas:
# RAM - starts with the address 0x20000000 and takes 128 KB;

View File

@ -1,30 +1,26 @@
---
contributors:
- ["Alexander Kovalchuk", "https://github.com/Zamuhrishka"]
translators:
- ["Alexander Kovalchuk", "https://github.com/Zamuhrishka"]
---
# Основные понятия и определения
**Счетчик позиций** - у компоновщика есть специальная переменная
"." (точка) всегда содержит текущую позицию вывода.
"`.`" (точка) всегда содержит текущую позицию вывода.
# Функции
**ADDR(section)** - возвращает абсолютный адрес указанной секции. Однако
`ADDR(section)` - возвращает абсолютный адрес указанной секции. Однако
данная секция должна быть определенна до использования функции ADDR.
**ALIGN(exp)** - возвращает значение счетчика позиций, выравненное на границу
`ALIGN(exp)` - возвращает значение счетчика позиций, выравненное на границу
следующего за exp выражения.
**SIZEOF(section)** - возвращает размер секции в байтах.
`SIZEOF(section)` - возвращает размер секции в байтах.
**FILL(param)** - определяет образец заполнения для текущей секции. Все
`FILL(param)` - определяет образец заполнения для текущей секции. Все
остальные неуказанные регионы внутри секции заполняются значением указанными
в аргументе функции.
**KEEP(param)** - используется чтобы помечать param как неустранимый.
`KEEP(param)` - используется чтобы помечать param как неустранимый.
**ENTRY(func)** - определяет функцию, которая будет являться точкой входа
`ENTRY(func)` - определяет функцию, которая будет являться точкой входа
в программу.
```bash
@ -111,10 +107,10 @@ SECTIONS
# ИТОГО: Секция .text, которая содержит код программы выравнивается по границе 4-х байт,
# включает в себя: все секции с кодом программы во всех объектных файлах и защищенные
от сборщика муссора секции .init и .fini во всех объектных файлах, распологается во FLASH
памяти микроконтроллера сразу за таблицей векторов.
Секции text, .init и .fini. располагаются в памяти в той последовательности в которой они
объявлены в скрипте.
# от сборщика муссора секции .init и .fini во всех объектных файлах, распологается во FLASH
# памяти микроконтроллера сразу за таблицей векторов.
# Секции text, .init и .fini. располагаются в памяти в той последовательности в которой они
# объявлены в скрипте.
# Третья секция содержит константные данные.
.rodata :
@ -161,7 +157,7 @@ SECTIONS
# видеть данные.
# * LMA (Load memory address) - это адрес по которому линкер хранит данные.
#Startup должен код скопировать секцию .data из адресов LMA в адреса VMA.
# Startup должен код скопировать секцию .data из адресов LMA в адреса VMA.
} >RAM AT> FLASH
@ -197,4 +193,3 @@ SECTIONS
} >RAM
}
```