|
Размещение функции в RAM, LPC2000, Keil |
|
|
|
Jun 9 2010, 19:23
|

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

|
Попробовал разместить критичные, с точки зрения времени выполнения, функции в RAM. До этого не пользовался, но сравнения для ) Keil 4.11, использовал следующие комбинации для кода и скаттера: 1. Код Код #pragma arm section code = "ramfunc" тело #pragma arm section code scatter Код LR_IROM1 0x00000000 0x00080000 { ; load region size_region ER_IROM1 0x00000000 {; load address = execution address STARTUP.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x40000000 0x00010000 {; RW data *(ramfunc) .ANY (+RW +ZI) } } 2. По совету, найденному в примерах Keil, добавил для всего С-файла в свойствах "Memory Assignment->Code/Const->IRAM1(0x40000000-0x4000FFFF)" и собрал все со сгенеренным scatter'ом Код - убрал прагмы scatter Код LR_IROM1 0x00000000 0x00080000 { ; load region size_region ER_IROM1 0x00000000 0x00080000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x40000000 0x00010000 { ; RW data mscuser.o (+RO) .ANY (+RW +ZI) } } Итого Размер используемой RAM при компиляции не изменяется никак. Так должно быть (с объемом), или я что-то сделал не так и компилятор с линкером мне должны сказать (хотя бы по количеству), что RAM пользуется больше?
|
|
|
|
|
 |
Ответов
|
Jun 9 2010, 20:34
|

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

|
Цитата(aaarrr @ Jun 10 2010, 00:01)  __main разложит после startup'а. спасибо, завтра протестирую Цитата(aaarrr @ Jun 10 2010, 00:01)  __main разложит после startup'а. и, все-таки, пока не завтра... в стартапе Код IMPORT __main LDR R0, =__main BX R0 далее все стартует на мой код в main() бред В стартапе: до того - настройка слоков и EMC, все лишнее отключено/поудалено... да и не было там ранее вроде копирования никакого областей никуда так кто же копирует код из flash в RAM для выполнения? неверно как отследить __main?
|
|
|
|
|
Jun 9 2010, 20:42
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(toweroff @ Jun 10 2010, 00:34)  и, все-таки, пока не завтра... в стартапе Код IMPORT __main LDR R0, =__main BX R0 далее все стартует на мой код в main()до того - настройка слоков и EMC, все лишнее отключено/поудалено... да и не было там ранее вроде копирования никакого областей никуда __main != main. И кто же тогда ранее инициализировал переменные, __user_initial_stackheap вызывал? Стартует оно потому что галочка "Run to main()" стоит.
|
|
|
|
|
Jun 9 2010, 21:03
|

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

|
Цитата __main != main. знаю.. теперь  Цитата И кто же тогда ранее инициализировал переменные, __user_initial_stackheap вызывал? копаюсь... Цитата Стартует оно потому что галочка "Run to main()" стоит. навсегда off... Цитата( @ Jun 10 2010, 00:42)  __user_initial_stackheap вызывал? нет там начался _scatterload_* разбираюсь опять... но, похоже, должно быть оно... по крайней мере, по названию
|
|
|
|
Сообщений в этой теме
toweroff Размещение функции в RAM Jun 9 2010, 19:23 aaarrr Цитата(toweroff @ Jun 9 2010, 23:23) испо... Jun 9 2010, 19:30 sonycman Цитата(aaarrr @ Jun 9 2010, 23:30) А это ... Jun 9 2010, 19:35  aaarrr Цитата(sonycman @ Jun 9 2010, 23:35) Что ... Jun 9 2010, 19:43 toweroff Цитата(aaarrr @ Jun 9 2010, 23:30) Баг мо... Jun 9 2010, 19:47 aaarrr Цитата(toweroff @ Jun 9 2010, 23:47) в от... Jun 9 2010, 19:50      toweroff Цитата(sonycman @ Jun 10 2010, 01:08) А э... Jun 9 2010, 21:28      Сергей Борщ Цитата(sonycman @ Jun 10 2010, 00:08) А э... Jun 10 2010, 05:48 aaarrr Цитата(toweroff @ Jun 10 2010, 01:03) коп... Jun 9 2010, 21:15 aaarrr __rt* - компоненты стандартных библиотек, к RL-ARM... Jun 9 2010, 21:31 toweroff Цитата(aaarrr @ Jun 10 2010, 01:31) __rt*... Jun 9 2010, 21:38 toweroff Протестил софт (занимается передачей по USB данных... Jun 10 2010, 11:36 sonycman 950 кб/сек. - практически потолок для Full Speed U... Jun 10 2010, 12:52 toweroff Цитата(sonycman @ Jun 10 2010, 16:52) 950... Jun 10 2010, 12:55 alt3857 Подскажите каким образом создать секции допустим f... Dec 9 2011, 11:18 toweroff Цитата(alt3857 @ Dec 9 2011, 15:18) Подск... Dec 9 2011, 11:30 alt3857 toweroff, как секцию обрамить прагмой я понимаю, к... Dec 9 2011, 11:45 toweroff примерно так
Код; ********************************... Dec 9 2011, 11:48 alt3857 Сделал:
LR_IROM1 0x00000000 0x00080000 { ; lo... Dec 9 2011, 11:56 toweroff а в стартапе что? Dec 9 2011, 12:03 alt3857 В стартапе ничего не менял - на сайте arm-а ничего... Dec 9 2011, 13:20 toweroff ну как... startup.s в проекте есть? или что-то, гд... Dec 9 2011, 13:28 alt3857 Цитатану как... startup.s в проекте есть? или что-... Dec 9 2011, 15:11 toweroff Цитата(alt3857 @ Dec 9 2011, 19:11) Есть ... Dec 9 2011, 15:17 alt3857 Код;/*********************************************... Dec 9 2011, 15:44
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|