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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Зашивание текста в память микроконтроллера., Есть ли какой-либо более рацональный способ внесения текста в память к
Alex2578
сообщение Sep 12 2007, 12:19
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 20-02-07
Пользователь №: 25 515



Всех приветствую.

Имеем AVR, работаем в асемблере в AVR Studio.

Требуется выводить на знакосинтезирующий ЖКИ небольшие объемы текста.
В связи с этим вопрос, а есть какой-либо более рацональный способ внесения текста в память контроллера, чем заколачивать его руками в компиляторе?

Может глупость спрошу, но, например, есть ли средства, при помощи которых текстовый файл (или просто введенный куда-либо текст) можно былобы конвертнуть в HEX, или в BIN, и при помощи программатора зашить его в отведенную область памяти.

Спасибо всем откликнувшимся.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Sep 12 2007, 13:38
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



В принципе чистотеоретически - такой файл можно написать самому - марока там не большая , а вот совсем другое дело заставить программатор писать в определённую область флеша.. Не все программаторы это могут...
Go to the top of the page
 
+Quote Post
=GM=
сообщение Sep 12 2007, 13:40
Сообщение #3


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Alex2578 @ Sep 12 2007, 11:19) *
...есть ли средства, при помощи которых текстовый файл (или просто введенный куда-либо текст) можно былобы конвертнуть в HEX, или в BIN, и при помощи программатора зашить его в отведенную область памяти

Можно вот так, например
Код
      .cseg
      .org        0x1000      ;адрес загрузки
      .db         "the first string",0
      .db         "the second string",0
. . . . . . . . .
      .db         "the last string",0


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Sep 12 2007, 13:43
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 =GM= - это не то, автор же чётко указал -
"..более рацональный способ внесения текста в память контроллера, чем заколачивать его руками в компиляторе.."
Go to the top of the page
 
+Quote Post
dimka76
сообщение Sep 12 2007, 13:49
Сообщение #5


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



[quote name='=GM=' date='Sep 12 2007, 17:40' post='293936']
Можно вот так, например
Код
      .cseg
      .org        0x1000     ;адрес загрузки
      .db         "the first string",0
      .db         "the second string",0
. . . . . . . . .
      .db         "the last string",0

[/quote]

тогда еще метки добавить, чтобы можно было обращаться к каждой строки отдельно, а не искать ее по завершающим нулям
Код
      .cseg
      ldi   ZL,low(first);
      ldi   ZH,high(first);

      ldi   ZL,low(second);
      ldi   ZH,high(second);

      .org        0x1000     ;адрес загрузки
       first:
      .db         "the first string",0
       second:
      .db         "the second string",0
. . . . . . . . .
      last    
                 .db         "the last string",0

[/quote]


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Sep 12 2007, 14:00
Сообщение #6


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Kuzmi4 @ Sep 12 2007, 12:43) *
2 =GM= - это не то, автор же чётко указал - "..более рацональный способ внесения текста в память контроллера, чем заколачивать его руками в компиляторе.."

Я думаю, это то, что он просил. Всё равно надо где-то текст набивать. Думаю также, что автор ветки, чтобы ввести, скажем, ваш никнейм (Kuzmi4) делает таким образом
Код
;               K    u    z    m    i    4
     .db      0x4B,0x75,0x7A,0x7D,0x49,0x34,0x00


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
BratherLU
сообщение Sep 12 2007, 14:17
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 103
Регистрация: 16-05-06
Пользователь №: 17 126



http://www.atmel.ru/Binary/HD-44780.exe
Эта штука под Си заточена но если сишное обрамление убрать и добавить dB вместо того может и сгодится
Go to the top of the page
 
+Quote Post
=GM=
сообщение Sep 12 2007, 14:30
Сообщение #8


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(dimka76 @ Sep 12 2007, 12:49) *
тогда еще метки добавить, чтобы можно было обращаться к каждой строки отдельно, а не искать ее по завершающим нулям

Ну, это само собой, я дал только общую идею. Хотя сам давно уже не применяю такой подход, на мой взгляд, есть более продуктивный.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
KRS
сообщение Sep 12 2007, 15:10
Сообщение #9


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



у LCD текстовых еще обычно с кодировкой русской проблемы, поэтому я например, делал программу которая читала исходный текстовый файл простейшего формата:
имя строки (метка) пробел, а дальше до конца строки сам текст
текст преобразовывался по таблице кодировки и результат выводился в asm файл, который просто добавлялся в проект.
Go to the top of the page
 
+Quote Post
Guest_=AVR=_*
сообщение Sep 12 2007, 15:52
Сообщение #10





Guests






Цитата(Alex2578 @ Sep 12 2007, 16:19) *
а есть какой-либо более рацональный способ внесения текста в память контроллера, чем заколачивать его руками в компиляторе?

Может глупость спрошу, но, например, есть ли средства, при помощи которых текстовый файл (или просто введенный куда-либо текст) можно былобы конвертнуть в HEX, или в BIN, и при помощи программатора зашить его в отведенную область памяти.
Таких утилит бродит по Сети великое множество. Гибко это умеет делать, например, WinHex, с разной степенью гибкости (и вовсе без таковой) - различные поделия типа bin2asm. Гугль тебе в помощь по этим ключевым словам
Go to the top of the page
 
+Quote Post
Alex2578
сообщение Sep 12 2007, 17:09
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 20-02-07
Пользователь №: 25 515



Всем спасибо, пробежался по ответам, завтра буду осмысливать, эксперементировать.
Go to the top of the page
 
+Quote Post
skn
сообщение Sep 12 2007, 20:27
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 20-03-06
Пользователь №: 15 416



Я тут давеча "конвертировал" текстовый файл для заливки его в еепром - изменил расширение с txt на bin. Строки разделял, нажимая Enter. Правда строка получилась не с завершающим нулем, а с завершающим 0xd, зато проще не придумать.
Go to the top of the page
 
+Quote Post
Alex2578
сообщение Sep 13 2007, 04:59
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 20-02-07
Пользователь №: 25 515



Цитата(skn @ Sep 13 2007, 00:27) *
Я тут давеча "конвертировал" текстовый файл для заливки его в еепром - изменил расширение с txt на bin. Строки разделял, нажимая Enter. Правда строка получилась не с завершающим нулем, а с завершающим 0xd, зато проще не придумать.


Ух ты!!!! ХИТЕР!!!
Если не требуется кирилица, то способ просто супер. Проще не придумаешь.
Go to the top of the page
 
+Quote Post
skn
сообщение Sep 13 2007, 06:52
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 20-03-06
Пользователь №: 15 416



Цитата(Alex2578 @ Sep 13 2007, 08:59) *
Если не требуется кирилица

У меня вроде кириллица.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Sep 13 2007, 10:05
Сообщение #15


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



foo.txt:
Код
Требуется выводить на знакосинтезирующий ЖКИ
небольшие объемы текста.
В связи с этим вопрос,
а есть какой-либо более рацональный способ


toasm.sed:
Код
1 i\
    .cseg
1 i\
    .org 0x1000
s/^/    .db "/
s/$/",0/


sed -f toasm.sed foo.txt >foo.asm
Код
    .cseg
    .org 0x1000
    .db "Требуется выводить на знакосинтезирующий ЖКИ ",0
    .db "небольшие объемы текста.",0
    .db "В связи с этим вопрос, ",0
    .db "а есть какой-либо более рацональный способ",0


т.е. для таких простых преобразований при использовании стандартных программ (у кого как, а у меня sed и на ДВК-2 валялся под рукой), скриптики настолько просты, что никогда и не сохраняются, их заново набить проще, чем искать по диску.
Другое дело - кириллица, на всяких HD44780 кодировка странная, либо в том же sed пробовать глобальную замену делать, либо таки поискать нужную программу :-)


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post

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

 


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


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