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

 
 
> помещение объекта в конец секции RO
toweroff
сообщение Aug 23 2011, 12:51
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Что-то никак не могу положить константу в конец всего кода во флеш (RO секция)

Код
const unsigned long test_ending __attribute__ ((section("ENDOF"))) = 0x12345678;


и скаттер
Код
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_IROM1 0x20000000 0x00080000  {  ; load region size_region
  ER_IROM1 0x20000000 0x00080000  {; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
   *.o (ENDOF, +Last)
  }
  RW_IRAM1 0x80000000 UNINIT 0x0000E000  {; RW data
   .ANY (+RW +ZI)
  }
}


вот конец описания того, что легло во флеш
Код
    0x20000fc8   0x0000000c   Code   RO          257    .text               c_5.l(libspace.o)
    0x20000fd4   0x0000000c   Code   RO          316    .text               c_5.l(rt_fp_status_addr_intlibspace.o)
    0x20000fe0   0x0000000c   Code   RO          320    .text               c_5.l(sys_exit.o)
    0x20000fec   0x00000000   Code   RO          333    .text               c_5.l(indicate_semi.o)
    0x20000fec   0x00000014   Code   RO          303    x$fpl$fpinit        fz_5s.l(fpinit.o)
    0x20001000   0x00001000   Data   RO           52    .constdata          fx2lp.o
    0x20002000   0x00000010   Data   RO          385    Region$$Table       anon$$obj.o
    0x20002010   0x00000004   Data   RO          117    ENDOF               boot.o


    Execution Region RW_IRAM1 (Base: 0x80000000, Size: 0x0000dff4, Max: 0x0000e000, ABSOLUTE, UNINIT)

    Base Addr    Size         Type   Attr      Idx    E Section Name        Object


родная секция ENDOF в аккурат в конце. Ура!
Но не тут-то было

Почему fromelf, создавая BIN, кладет после этой константы еще 5 int (20 байт)?

Понял, но не знаю, как поправить - эти 20 байт есть RW Data
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Nikitoc
сообщение Aug 29 2011, 12:21
Сообщение #2


Местный
***

Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367



Никак не могу разобраться до конца со скаттер-файлом. Дабы не плодить похожих тем решил спросить здесь. Поясните, пожалуйста, значение этой строки:
Цитата
*(InRoot$$Sections)

В Keil'овском хелпе пишут, что это "section selector" и он нужен, чтобы: "to place all sections that must be in a root region, i.e. _main.o, _scatter.o...". Но если закомментировать эту строку - ничего не меняется - секция main.0 и scatter.o располагаются по тем же адресам, что и в случае, если эту строчку оставить незакомментированной. В чем подвох? Что я неправильно понимаю?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 10:47
Рейтинг@Mail.ru


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