Jump to content

    
Sign in to follow this  
kuber

Вопрос по IAR asm

Recommended Posts

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

Подскажите знатоки 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
Подскажите знатоки 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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this