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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Вопрос по IAR asm, как указать ассемблеру что #include это Bin данные
kuber
сообщение Dec 7 2017, 09:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 6-01-07
Пользователь №: 24 153



Приветствую всех.
Подскажите знатоки IARа, как можно в проекте подключить внешний бинарный файл. Например картинку.
Как в ассемблере (наверное и в Си так же) определить внешний файл в нужное мне адресное пространство.
#include "имя файла.bin" не катит, ассемблер считает что там программа.
Go to the top of the page
 
+Quote Post
megajohn
сообщение Dec 7 2017, 11:20
Сообщение #2


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

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



вроде оно и даже с примером


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
prottoss
сообщение Dec 7 2017, 12:29
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(kuber @ Dec 7 2017, 15:17) *
Приветствую всех.
Подскажите знатоки IARа, как можно в проекте подключить внешний бинарный файл. Например картинку.
Как в ассемблере (наверное и в Си так же) определить внешний файл в нужное мне адресное пространство.
#include "имя файла.bin" не катит, ассемблер считает что там программа.

Привет.
На поставленный вопрос не отвечу. Но скажу, что я, например, конвертирую бинарные данные, если таковые требуются в текстовый Си-файл с объявленным массивом.


--------------------
Go to the top of the page
 
+Quote Post
Obam
сообщение Dec 7 2017, 12:52
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



В опциях проекта:
Прикрепленное изображение


Оно?


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
kuber
сообщение Dec 7 2017, 12:58
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 6-01-07
Пользователь №: 24 153



Пока не нашол решения, я использую вот такую конструкцию

RSEG CODE
ASEGN CODE_5000:CODE, 0x5000 ; Место где будет располагаться массив.
;
#include "имя файла.h"

файл содержит:

метка:
DC8 константа1,2,3,4,...
DC16 константа1,2,3,4,...
и так далее.
Это работает, но геморой ещо тот!

Надо тупо поместить при компиляции двоичные данные в
память программы. КАК?
Go to the top of the page
 
+Quote Post
Obam
сообщение Dec 7 2017, 18:01
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата(kuber @ Dec 7 2017, 16:58) *
Пока не нашол решения, я использую вот такую конструкцию

RSEG CODE
ASEGN CODE_5000:CODE, 0x5000 ; Место где будет располагаться массив.
;

RSEG не CODE, а CONST ибо рискуете получить в младшем бите ваших данных установленную единичку, если архитектура Thumb (кстати, не указали IAR EWB-кто?)

Цитата
#include "имя файла.h"

файл содержит:

метка:
DC8 константа1,2,3,4,...
DC16 константа1,2,3,4,...
и так далее.
Это работает, но геморой ещо тот!
Надо тупо поместить при компиляции двоичные данные в
память программы. КАК?

Это ассемблер (; здесь ты один на один с железом (;
В IAR C/C++ProgrammingGuide наверняка всё расписано, как линкеру внешний бинарник скормить.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Dec 7 2017, 18:01
Сообщение #7


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(kuber @ Dec 7 2017, 15:58) *
... двоичные данные в память программы. КАК?


собственно варианты прозвучали:
- заставить линковщик вставить в нужное место потроха некоего файла (как есть)
- заставить отработать компилятор с исходными данными

обычно использую второй подход + самописная прожка (тут на любителя - думаю в инете мона найти готовые вещи) которая конвертит то что на входе в то что нужно.

как то так
(круглый)
Go to the top of the page
 
+Quote Post
kuber
сообщение Dec 7 2017, 19:46
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 6-01-07
Пользователь №: 24 153



Использую
IAR Embedded Workbench for Renesas 78K
программирую на ассемблере.
Приходится преобразовывать в нех последовательность, так и подключаю.
Хотелось бы проще
Go to the top of the page
 
+Quote Post
megajohn
сообщение Dec 8 2017, 07:51
Сообщение #9


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

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Цитата(kuber @ Dec 7 2017, 22:46) *
Хотелось бы проще


вам и я и obam дали решение. Чем оно не помогло ?


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 8 2017, 10:31
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(kuber @ Dec 7 2017, 11:17) *
Подскажите знатоки IARа, как можно в проекте подключить внешний бинарный файл. Например картинку.

В опциях проекта во вкладке Linker\ExtraOptions добавить строку типа:
--image_input=$PROJ_DIR$\ENET\content.cpio,httpContent,.httpContent,2
Подробное описание ключа - см. в документации на IAR.

Цитата(kuber @ Dec 7 2017, 14:58) *
Пока не нашол решения, я использую вот такую конструкцию

А где искали? Документацию на компилятор открывать пробовали? laughing.gif

ЗЫ: Пишется: нашёл.
Go to the top of the page
 
+Quote Post
kuber
сообщение Dec 8 2017, 12:33
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 6-01-07
Пользователь №: 24 153



Предложенные варианты у меня не работают
Go to the top of the page
 
+Quote Post
prottoss
сообщение Dec 8 2017, 12:35
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(kuber @ Dec 8 2017, 18:33) *
Предложенные варианты у меня не работают

А почему не хотите файл преобразовать в массив Си? По мне так самый простой вариант.


--------------------
Go to the top of the page
 
+Quote Post
kuber
сообщение Dec 8 2017, 12:53
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 6-01-07
Пользователь №: 24 153



Си не знаю, программирую только на ассемблере.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Dec 8 2017, 12:59
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(kuber @ Dec 8 2017, 18:53) *
Си не знаю, программирую только на ассемблере.

Тогда Вам совет - изучите Си. Если умеете на ассемблере, то Си Вам по зубам. Решите сразу несколько будущих проблем, включая эту.
Ассемблер не универсален. Си универсален. По крайней мере, по отношению к ассемблеру в сотни раз.


--------------------
Go to the top of the page
 
+Quote Post
kuber
сообщение Dec 8 2017, 13:10
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 6-01-07
Пользователь №: 24 153



У меня нет проблем с ассемблером под все мною освоенные микроконтроллеры. А нюансы, рано или поздно найду решение.
Си много раз пытался освоить, не моё.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 05:00
Рейтинг@Mail.ru


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