Jump to content

    

Вопрос по IAR asm

Приветствую всех.

Подскажите знатоки IARа, как можно в проекте подключить внешний бинарный файл. Например картинку.

Как в ассемблере (наверное и в Си так же) определить внешний файл в нужное мне адресное пространство.

#include "имя файла.bin" не катит, ассемблер считает что там программа.

Share this post


Link to post
Share on other sites
Приветствую всех.

Подскажите знатоки IARа, как можно в проекте подключить внешний бинарный файл. Например картинку.

Как в ассемблере (наверное и в Си так же) определить внешний файл в нужное мне адресное пространство.

#include "имя файла.bin" не катит, ассемблер считает что там программа.

Привет.

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

 

Share this post


Link to post
Share on other sites

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

 

RSEG CODE

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

;

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

 

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

 

метка:

DC8 константа1,2,3,4,...

DC16 константа1,2,3,4,...

и так далее.

Это работает, но геморой ещо тот!

 

Надо тупо поместить при компиляции двоичные данные в

память программы. КАК?

Share this post


Link to post
Share on other sites
Пока не нашол решения, я использую вот такую конструкцию

 

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 наверняка всё расписано, как линкеру внешний бинарник скормить.

Share this post


Link to post
Share on other sites
... двоичные данные в память программы. КАК?

 

собственно варианты прозвучали:

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

- заставить отработать компилятор с исходными данными

 

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

 

как то так

(круглый)

 

Share this post


Link to post
Share on other sites

Использую

IAR Embedded Workbench for Renesas 78K

программирую на ассемблере.

Приходится преобразовывать в нех последовательность, так и подключаю.

Хотелось бы проще

Share this post


Link to post
Share on other sites
Хотелось бы проще

 

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

Share this post


Link to post
Share on other sites
Подскажите знатоки IARа, как можно в проекте подключить внешний бинарный файл. Например картинку.

В опциях проекта во вкладке Linker\ExtraOptions добавить строку типа:

--image_input=$PROJ_DIR$\ENET\content.cpio,httpContent,.httpContent,2

Подробное описание ключа - см. в документации на IAR.

 

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

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

 

ЗЫ: Пишется: нашёл.

Share this post


Link to post
Share on other sites
Предложенные варианты у меня не работают

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

Share this post


Link to post
Share on other sites

Си не знаю, программирую только на ассемблере.

Share this post


Link to post
Share on other sites
Си не знаю, программирую только на ассемблере.

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

Ассемблер не универсален. Си универсален. По крайней мере, по отношению к ассемблеру в сотни раз.

Share this post


Link to post
Share on other sites

У меня нет проблем с ассемблером под все мною освоенные микроконтроллеры. А нюансы, рано или поздно найду решение.

Си много раз пытался освоить, не моё.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this