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

 
 
> LPC43xx, RAM только в SDRAM., Как?
skripach
сообщение Jan 2 2013, 07:34
Сообщение #1


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



С НОВЫМ ГОДОМ! santa2.gif
Хочу использовать внутреннее ОЗУ как ROM, а SDRAM(внешнее озу) как RAM. Не понятно куда вставить код инициализации контроллера SDRAM, очевидно что где-то перед "__iar_program_start".
Вообще такое можно сделать? Или это делается как-то иначе?


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
haker_fox
сообщение Jan 2 2013, 08:15
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (skripach @ Jan 2 2013, 16:34) *
Вообще такое можно сделать? Или это делается как-то иначе?

С Новым Годом!

Поскольку код инициализации SDRAM контроллера не может использовать переменные, размещенные в "ОЗУ" (т.е. в SDRAM), то не следует использовать язык программирования высокого уровня. Сделать инициализацию контроллера на асме (только контроллера памяти). После этого можно использовать переменные на языке Си/Си++. Типа BIOS)))


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jan 2 2013, 09:18
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(haker_fox @ Jan 2 2013, 12:15) *
Поскольку код инициализации SDRAM контроллера не может использовать переменные, размещенные в "ОЗУ" (т.е. в SDRAM), то не следует использовать язык программирования высокого уровня. Сделать инициализацию контроллера на асме (только контроллера памяти). После этого можно использовать переменные на языке Си/Си++. Типа BIOS)))

Может использовать, а может и не использовать. Так что если контролировать в дизассемблере генерируемый код, то всё получится. Но на ассемблере успех гарантирован, конечно.
Добавлю, что инициализацию SDRAM следует делать в функции __low_level_init(). Она вызывается самой первой, и ОЗУ (стек) при вызове не используется.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jan 2 2013, 09:37
Сообщение #4


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (scifi @ Jan 2 2013, 18:18) *
Может использовать, а может и не использовать.

Ну раньше было ключевое слово register. Хотя и это не гарантирует, что компилятор разместит переменную в регистрах.
QUOTE (scifi @ Jan 2 2013, 18:18) *
следует делать в функции __low_level_init().

Это для какого компилятора? Я использую Code Sourcery.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post



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

 


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


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