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

 
 
> Keil... Си... Как в памяти программ зарезервировать место и записать значение..., Если кто-то знает не тяните плз...
BFunTic
сообщение Jan 6 2008, 09:50
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 25-11-07
Пользователь №: 32 675



Привет всем! Опять на форум за помощью...

Помогите плз! Необходимо в память программ записать значение в строго определенное место...
Как только репу не ломал - не компилится... Остался один вариант - найти в прошивке нужные байты и написать патч...

unsigned char code Block_Type _at_ 0x0fff;
unsigned int code Block_Number _at_ 0x1000;
unsigned char code Software_Version _at_ 0x1002;

Необходимо в константы Block_Type, Block_Number, Software_Version записать значения... Как?

Заранее спасибо!!!

Сообщение отредактировал BFunTic - Jan 6 2008, 10:06
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
BFunTic
сообщение Jan 6 2008, 16:27
Сообщение #2





Группа: Новичок
Сообщений: 10
Регистрация: 25-11-07
Пользователь №: 32 675



Цитата(DASM @ Jan 6 2008, 13:21) *
... Сделайте так - добавьте в проект файлик lala.a51
в нем такое например
CSEG AT 0x1000
Block_Number:
db 0xAA
end
;--------------------------------
А там, где переменная нужна на С - напишите
extern volatile unsigned char Block_Number;
и работайте с ней как хотите


Еще раз спасибо, DASM... Такой вариант не покатил... Т.е проект компилился, но в дизассемблере значения на указанных позициях были в нулях! Если в ассемблерном файле переменные обозначить как public - проект не компилировался...
Сделал немного иначе... Создал ассемблеровский файл:

cseg at 0fffh
Properties:
db BLOCK_TYPE // BLOCK_TYPE - определен ранее
dw BLOCK_NUMBER // ...
dw ...


А в Си написал по простому:

unsigned char code Block_Type _at_ 0x0fff;
unsigned int code Block_Number _at_ 0x1000;

Проект компилится с предупреждениями, но на указанных ячейках заданные значения... Хотя думаю, что в других версиях Кеil'a может не работать...



Цитата(_NB @ Jan 6 2008, 15:42) *
А затем укажите линковщику, на какой адресс линковать это.

Как???
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:19
Рейтинг@Mail.ru


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