|
запись значений в память по определенному адресу, как? |
|
|
|
May 8 2009, 05:11
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 20-11-08
Пользователь №: 41 795

|
Собственно есть такой вопрос, нужно во внешнюю память записывать конфигурациионые значения. как записать значениt в ячейку с адресом, например 0x8000 0100?
|
|
|
|
|
May 8 2009, 05:53
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата(legioner1 @ May 8 2009, 09:11)  Собственно есть такой вопрос, нужно во внешнюю память записывать конфигурациионые значения. как записать значениt в ячейку с адресом, например 0x8000 0100? Код * ((unsigned long *) 0x80000100) = value; Не забывать о выравнивании. Или описать структуру со множеством нужных полей и обращаться к ней Код struct confdata { unsigned long expirationdate; unsigned char color; };
((struct confdata *) 0x80000100)->color = value;
|
|
|
|
|
May 8 2009, 07:31
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Genadi Zawidowski @ May 8 2009, 08:53)  Код ((struct confdata *) 0x80000100)->color = value; Или описать extern переменную типа struct confdata, а в скрипте линкера задать ей конкретный адрес. Линкер может следить, чтобы в это место не попали другие переменные. В случае указателя придется думать об этом вручную.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
May 9 2009, 19:18
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(DpInRock @ May 9 2009, 23:06)  Очень бывает нужно. К примеру, когда в даташите находишь адрес регистра, а в соотв. *.inc, который офигенных размеров искать как там обозвали этот регистр - ну долго. Ctrl+F не работает? Цитата(DpInRock @ May 9 2009, 23:06)  Кроме того, мода людей присваивать ну очень длинные имена, которые ну никак не помогают - дурь. Угу, дурь. Но никто не заставляет использовать хидеры производителя. Можно отредактировать или написать свои. Цитата(DpInRock @ May 9 2009, 23:06)  Цифра - наше всё. Букву оставим гуманитариям. Очень неразумный подход.
|
|
|
|
|
May 9 2009, 19:52
|

Гуру
     
Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515

|
Цитата Ctrl+F не работает? Уже сточилась. Честно. Цитата Можно отредактировать или написать свои. Дешевле их не писать. А когда они готовые - грех не пользоваться. Но почему-то часть имен совпадает с даташитнымми, а часть - ну никак не совпадает. Присобачивают пару буковок и мучаешься гадать что именно искать. Цитата Очень неразумный подход. Если бы все поступали разумно, программисты и прочая были бы не нужны. Речь идет "о по-быстрому". Исключительно. Когда вот он адрес перед глазами, а превратить его в слово - это надо отыскать хидер, загрузить, отыскать, копи-пасте сделать....
--------------------
On the road again (Canned Heat)
|
|
|
|
|
May 9 2009, 20:00
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(DpInRock @ May 9 2009, 23:52)  Дешевле их не писать. А когда они готовые - грех не пользоваться. Но почему-то часть имен совпадает с даташитнымми, а часть - ну никак не совпадает. Присобачивают пару буковок и мучаешься гадать что именно искать. Подобные проблемы мне встречались исключительно у Texas Instruments. Не о них речь? Написать хидер - не бог весть какая работа при минимальной автоматизации процесса. Цитата(DpInRock @ May 9 2009, 23:52)  Речь идет "о по-быстрому". Исключительно. Когда вот он адрес перед глазами, а превратить его в слово - это надо отыскать хидер, загрузить, отыскать, копи-пасте сделать.... Беда в том, что сделанное "по-быстрому" таким навсегда и остается.
|
|
|
|
|
May 9 2009, 20:41
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(DpInRock @ May 10 2009, 00:31)  Чертов даташит от Атмел защищен и из него невозможно скопировать текст. Ваще, ё-мое. Что-то я не припомню у них каких-то особо страшных несоответствий в названиях регистров между даташитом и хидерами. Идиотские префиксы не считаются. Цитата(DpInRock @ May 10 2009, 00:31)  У меня очень часты задачи не глобального характера, а сиюминутные, умирающие после первого удачного запуска. К примеру, сделать снимок какого-нибудь протокола обмена для дальнейшего разбора. Сделал - и забыл. Ровно на один раз. Неужели программу буквами на клавиатуре писать? Да. ИМХО, лучше приучить себя всегда и все делать правильно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|