|
Зашивание текста в память микроконтроллера., Есть ли какой-либо более рацональный способ внесения текста в память к |
|
|
|
Sep 12 2007, 12:19
|
Участник

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

|
Всех приветствую.
Имеем AVR, работаем в асемблере в AVR Studio.
Требуется выводить на знакосинтезирующий ЖКИ небольшие объемы текста. В связи с этим вопрос, а есть какой-либо более рацональный способ внесения текста в память контроллера, чем заколачивать его руками в компиляторе?
Может глупость спрошу, но, например, есть ли средства, при помощи которых текстовый файл (или просто введенный куда-либо текст) можно былобы конвертнуть в HEX, или в BIN, и при помощи программатора зашить его в отведенную область памяти.
Спасибо всем откликнувшимся.
|
|
|
|
|
Sep 12 2007, 13:40
|

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
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Sep 12 2007, 13:49
|

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]
--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
|
|
|
|
|
Sep 12 2007, 14:00
|

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
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Sep 12 2007, 14:30
|

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

|
Цитата(dimka76 @ Sep 12 2007, 12:49)  тогда еще метки добавить, чтобы можно было обращаться к каждой строки отдельно, а не искать ее по завершающим нулям Ну, это само собой, я дал только общую идею. Хотя сам давно уже не применяю такой подход, на мой взгляд, есть более продуктивный.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
Guest_=AVR=_*
|
Sep 12 2007, 15:52
|
Guests

|
Цитата(Alex2578 @ Sep 12 2007, 16:19)  а есть какой-либо более рацональный способ внесения текста в память контроллера, чем заколачивать его руками в компиляторе?
Может глупость спрошу, но, например, есть ли средства, при помощи которых текстовый файл (или просто введенный куда-либо текст) можно былобы конвертнуть в HEX, или в BIN, и при помощи программатора зашить его в отведенную область памяти. Таких утилит бродит по Сети великое множество. Гибко это умеет делать, например, WinHex, с разной степенью гибкости (и вовсе без таковой) - различные поделия типа bin2asm. Гугль тебе в помощь по этим ключевым словам
|
|
|
|
|
Sep 12 2007, 17:09
|
Участник

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

|
Всем спасибо, пробежался по ответам, завтра буду осмысливать, эксперементировать.
|
|
|
|
|
Sep 12 2007, 20:27
|
Участник

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

|
Я тут давеча "конвертировал" текстовый файл для заливки его в еепром - изменил расширение с txt на bin. Строки разделял, нажимая Enter. Правда строка получилась не с завершающим нулем, а с завершающим 0xd, зато проще не придумать.
|
|
|
|
|
Sep 13 2007, 04:59
|
Участник

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

|
Цитата(skn @ Sep 13 2007, 00:27)  Я тут давеча "конвертировал" текстовый файл для заливки его в еепром - изменил расширение с txt на bin. Строки разделял, нажимая Enter. Правда строка получилась не с завершающим нулем, а с завершающим 0xd, зато проще не придумать. Ух ты!!!! ХИТЕР!!! Если не требуется кирилица, то способ просто супер. Проще не придумаешь.
|
|
|
|
|
Sep 13 2007, 06:52
|
Участник

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

|
Цитата(Alex2578 @ Sep 13 2007, 08:59)  Если не требуется кирилица У меня вроде кириллица.
|
|
|
|
|
Sep 13 2007, 10:05
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 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 пробовать глобальную замену делать, либо таки поискать нужную программу :-)
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|