реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Инициализация данных в SDRAM
yanvasiij
сообщение Sep 20 2016, 09:58
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



В map-файле этот файл упоминается в нескольких местах:

Код
....
.text          0x00000000        0x0 ..\obj\heap_1.o
.data          0x00000000        0x0 ..\obj\heap_1.o
.text.vPortInitialiseBlocks
                0x00000000       0x18 ..\obj\heap_1.o
.text.vPortInitialiseBlocks
                0x00000000       0x18 ..\obj\heap_1.o
....
.text.pvPortMalloc
                0x08024048       0x8c ..\obj\heap_1.o
                0x08024048                pvPortMalloc
.text.vPortFree
                0x080240d4       0x14 ..\obj\heap_1.o
                0x080240d4                vPortFree
...
.bss           0x2000eb4c     0xc808 ..\obj\heap_1.o
...
.ARM.attributes
                0x000010dd       0x33 ..\obj\heap_1.o
...
LOAD ..\obj\heap_1.o
...


Команда ликнковки:

Код
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -g -nostartfiles -Wl,-Map=beremizStm32Port.map -O0 -Wl,--gc-sections -Wl, -LD:/_projects/beremizStm32Port/linkscript -Wl,-TD:/_projects/beremizStm32Port/linkscript/stm32f407zg_flash.ld -g -o output.elf ..\obj\vlStm32f4xI2C.o ...много файлов... ..\obj\heap_1.o ...еще много файлов... -lm -lgcc -lc -lnosys -lstdc++
Go to the top of the page
 
+Quote Post
alx2
сообщение Sep 22 2016, 07:17
Сообщение #17


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(yanvasiij @ Sep 20 2016, 15:58) *
Команда ликнковки:

Код
... ..\obj\heap_1.o ...

Ну вот. Оказывается, файл-то не heap_1.o, а ..\obj\heap_1.o! То есть он не в текущем каталоге, а в ../obj. А в скрипте линкера Вы как этот файл указали?


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
yanvasiij
сообщение Oct 7 2016, 05:58
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Цитата(alx2 @ Sep 22 2016, 12:17) *
Ну вот. Оказывается, файл-то не heap_1.o, а ..\obj\heap_1.o! То есть он не в текущем каталоге, а в ../obj. А в скрипте линкера Вы как этот файл указали?


Наконец-то дошли руки проверить. Сделал, с учетом каталога, после Вашего замечания:

Код
  .bss.sdram : {
      ..\obj\heap_4.o(.bss)
  } >SDRAM


Все работает как надо! Спасибо большое!

Правда теперь возникла другая трудность: этот файл используется при компиляции статической библиотеки. При компиляции уже конечного приложения с использованием этой библиотеки, в map-файле этот heap_4 (без переноса его в SDRAM) появляется следующим образом:

Код

.data          0x00000000        0x0 librunTime.a(heap_4.c.obj)
.rodata        0x00000000        0x4 librunTime.a(heap_4.c.obj)

...
.bss           0x200084bc    0x19018 librunTime.a(heap_4.c.obj)


Подскажите, как теперь переместить фрагмент либы в sdram? Пробовал вот так:

Код
  .bss.sdram : {
      librunTime.a(heap_4.c.obj)(.bss)
  } >SDRAM


Выдает ошибку синтаксиса.
Go to the top of the page
 
+Quote Post
alx2
сообщение Oct 10 2016, 10:14
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(yanvasiij @ Oct 7 2016, 11:58) *
Выдает ошибку синтаксиса.

И правильно делает, что выдает. Смотрите в руководстве, как надо указывать ссылки на файлы в архивах:
Код
You can also specify files within archives by writing a pattern matching the archive, a colon, then the pattern matching the file, with no whitespace around the colon.

`archive:file'
    matches file within archive
`archive:'
    matches the whole archive
`:file'
    matches file but not one in an archive


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 15:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016