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

 
 
> Прошивки AT89S8252, как получить общий исполняемый файл прошивки?
Kofey Nik
сообщение Apr 6 2011, 09:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 5-07-05
Из: Нижний Новгород
Пользователь №: 6 540



У AT89S8252 имеется прошивка внутренней флэш программ (8к) плюс внешняя ПЗУ (64к). Как получить целиковый файл исполняемой программы? По-идее, поскольку в таких случаях вначале исполняется внутренняя прошивка а потом вшнешняя, то надо наложить эти 8к на начало ПЗУ, но тогда исчезнут масса служебных строк, необходимых программе. А если состыковать файл ПЗУ в конец файла внутренней флэш, тогда размер прошивки превысит 64К - как процессору с 16-разрядной шиной адреса добраться до конца такой программы?


--------------------
Все мы учились понемногу - чему нибудь и как нибудь :).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Палыч
сообщение Apr 6 2011, 10:00
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Kofey Nik @ Apr 6 2011, 13:01) *
Как получить целиковый файл исполняемой программы?
Что значит "целиковый"? C какой целью Вы хотите получить такой файл?

Цитата(Kofey Nik @ Apr 6 2011, 13:01) *
По-идее, поскольку в таких случаях вначале исполняется внутренняя прошивка а потом вшнешняя...
Не обязательно в такой последовательности. При обращении по адресу бОльшем, чем максимальный адрес внутренней памяти программ, обращение производится к внешней памяти.

Цитата(Kofey Nik @ Apr 6 2011, 13:01) *
А если состыковать файл ПЗУ в конец файла внутренней флэш, тогда размер прошивки превысит 64К - как процессору с 16-разрядной шиной адреса добраться до конца такой программы?
Вполне возможно, что младшие 8К внешней памяти вовсе не используются... Тут уж - как построено ПО нужно смотреть...

Если - не секрет: что это за устройство такое?
Go to the top of the page
 
+Quote Post
Kofey Nik
сообщение Apr 6 2011, 12:57
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 5-07-05
Из: Нижний Новгород
Пользователь №: 6 540



Цитата(Палыч @ Apr 6 2011, 14:00) *
Что значит "целиковый"? C какой целью Вы хотите получить такой файл?

Попробовать дизассемблировать - нужно исправить одно ограничение в прошивке. Опыт с 51-м был. Целостная прошивка - ну, в аппаратном виде носителей программы два, а мне нужно получить один непрерывный файл с непрерывным адресным пространством.

Цитата(Палыч @ Apr 6 2011, 14:00) *
Не обязательно в такой последовательности. При обращении по адресу бОльшем, чем максимальный адрес внутренней памяти программ, обращение производится к внешней памяти.

Начиная с какого адреса во внешнем ПЗУ? Максимальный_адрес +1 ? Это я и имел в виду.

Цитата(Палыч @ Apr 6 2011, 14:00) *
Вполне возможно, что младшие 8К внешней памяти вовсе не используются... Тут уж - как построено ПО нужно смотреть...

Первый байт равен 02 только во внутренней флэш, ПЗУ начинается с 20, следующий тоже 20 - это символы кодовой страницы ASCII - они нужны для работы программы, затенять их внутренней прошивкой чревато их исключением. Вот в чем проблема для меня.

если наложить внутреннее содержимое (из флэш) на первые 8К пространства внешнего ПЗУ программ, то при дизасе получается галиматья -

...
code:1FFA mov R6, #8
code:1FFC mov R1, #0x68 ; 'h' ; - после этой команды нет перехода на исполняемый код !!!
code:1FFC ; END OF FUNCTION CHUNK FOR start
code:1FFC ; ---------------------------------------------------------------------------
code:1FFE .byte 0x12
code:1FFF .byte 0x61 ; a
code:1FFF ; end of 'code'
code:1FFF
seg_01:00002000 ; ===========================================================================
seg_01:00002000
seg_01:00002000 ; Segment type: Pure code
seg_01:00002000 ;.segment seg_01
seg_01:00002000 ; .equ $, 0x2000
seg_01:00002000 ; START OF FUNCTION CHUNK FOR seg_01_4FC8
seg_01:00002000 seg_01_2000: .byte 0xFF
...


Сообщение отредактировал Kofey Nik - Apr 6 2011, 12:49


--------------------
Все мы учились понемногу - чему нибудь и как нибудь :).
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 6 2011, 17:16
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



А на ноге EA что, земля или питание? Если земля, то внутренняя память программ не используется.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Kofey Nik   Прошивки AT89S8252   Apr 6 2011, 09:01
|- - Палыч   Цитата(Kofey Nik @ Apr 6 2011, 16:57) Поп...   Apr 6 2011, 19:18
|- - Kofey Nik   AHTOXA Конечно же, ЕА=1. Не случайно же первый бай...   Apr 7 2011, 05:14
|- - Палыч   Цитата(Kofey Nik @ Apr 7 2011, 09:14) Я т...   Apr 7 2011, 06:17
|- - Kofey Nik   Цитата(Палыч @ Apr 7 2011, 10:17) На Ваше...   Apr 7 2011, 07:13
|- - Палыч   Цитата(Kofey Nik @ Apr 7 2011, 11:13) Пол...   Apr 7 2011, 07:46
|- - Kofey Nik   Цитата(Палыч @ Apr 7 2011, 11:46) По свое...   Apr 7 2011, 08:17
|- - Палыч   Цитата(Kofey Nik @ Apr 7 2011, 12:17) ......   Apr 7 2011, 08:59
|- - Kofey Nik   Цитата(Палыч @ Apr 7 2011, 12:59) Посмотр...   Apr 7 2011, 09:33
|- - Палыч   Цитата(Kofey Nik @ Apr 7 2011, 13:33) Кро...   Apr 7 2011, 10:04
|- - Harbinger   Цитата(Kofey Nik @ Apr 7 2011, 12:33) ...   Apr 9 2011, 05:29
- - редактор   Без разбора схемы обсуждение некорректно. Если вне...   Apr 14 2011, 11:45
- - Denis24   Можно сделать во внешнем ПЗУ банк данных по первым...   Apr 18 2012, 04:48


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

 


RSS Текстовая версия Сейчас: 6th August 2025 - 20:59
Рейтинг@Mail.ru


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