Isaev_ivan 0 28 октября, 2016 Опубликовано 28 октября, 2016 · Жалоба Добрый день! У меня совсем небольшой вопрос. Хочу перейти с ассемблера на язык С. И интересует, как можно ниже представленный код интерпретировать на языке С: #include "msp430F1232.h" RSEG CSTACK DS16 0 RSEG DATA16_N N1 ds16 1 N2 ds16 1 N3 ds16 1 ...... Т.е выделение какого-то сегмента памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 28 октября, 2016 Опубликовано 28 октября, 2016 · Жалоба Не надо пытаться писать на Си на Ассемблере. Надо решать задачу используя те возможности, которые для этого предоставляет Си. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 28 октября, 2016 Опубликовано 28 октября, 2016 · Жалоба Не надо пытаться писать на Си на Ассемблере. Надо решать задачу используя те возможности, которые для этого предоставляет Си. Если ассемблер дорог Вам "по любви к искуству". С есть компилятор, который берет на себя распределение памяти вместо Вас. Он это сделает быстрее-лучше(как правило) чем человек. Предлагаю Вам "вывернуть" Ваш вопрос наизнанку. Пишите на С простую функцию. В окне дизассемблера видите все "внутренности" ассемблерного кода. Берете сгенерированый С листинг (на ASM), смотрите, если надо - "выдергиваете" исходник кода Вашей сишной ф-ии в виде асемблера, и ..... получаете ответы на большинство вопросов :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Isaev_ivan 0 28 октября, 2016 Опубликовано 28 октября, 2016 · Жалоба k155la3, это в смысле мне можно написать вот так на языке С? asm(RSEG CSTACK DS16 0 RSEG DATA16_N N1 ds16 1 N2 ds16 1 N3 ds16 1); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 28 октября, 2016 Опубликовано 28 октября, 2016 (изменено) · Жалоба k155la3, это в смысле мне можно написать вот так на языке С? asm(RSEG CSTACK DS16 0 RSEG DATA16_N N1 ds16 1 N2 ds16 1 N3 ds16 1); Так Вы можете встроить в сишный код только отдельные команды asm("nop"); Пытаясь писать на ASM в среде C(PP) Вы пытаетесь работать в "чужом огороде" и не зная "устав". Соберите проект из 2 сишных файлов. Откомпилируйте. Если IAR - смотрите файл MyAsmAndC.s43 MyAsmAndC.h ------------ int MyAsm(int); extern int MyAsm(int); ------------ MyAsmAndC.c ------------ #include "MyAsmAndC.h" int MyAsm( int in_arg ) { return( in_arg + 1); }; main.c ------------ #include "MyAsmAndC.h" int main(void) { dat = 1; dat = MyAsm(dat) __no_operation(); // BreakPoint } Изменено 28 октября, 2016 пользователем k155la3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 28 октября, 2016 Опубликовано 28 октября, 2016 · Жалоба это в смысле мне можно написать вот так на языке С?Вы идете не в ту сторону. Вам не надо тупо пытаться повторить на Си свой ассемблерный код - это тупик. Вам нужно написать на Си код, который будет делать то же самое, что делал ваш ассемблерный код. Что делал этот ваш код? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Isaev_ivan 0 28 октября, 2016 Опубликовано 28 октября, 2016 · Жалоба Сергей Борщ, у меня АЦП на три канала и данные записываются по адресам этих ячеек памяти. Возможно, Вы и правы, нужно пойти по другому пути. Просто язык С для меня новое и поэтому иду напролом) спасибо за советы! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 28 октября, 2016 Опубликовано 28 октября, 2016 · Жалоба у меня АЦП на три канала и данные записываются по адресам этих ячеек памяти. #include <stdint.h> uint16_t ADC_buffer[3]; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 28 октября, 2016 Опубликовано 28 октября, 2016 · Жалоба Аккуратнее... По моим (возможно устаревшим сведениям) для MSP430 был сделан только какой-то форк SDCC (small devices C compiler) - а там никаким stdint.c и не пахло... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 28 октября, 2016 Опубликовано 28 октября, 2016 · Жалоба SDCC не работает с msp. Зато есть порт gcc-msp430, и он знает про stdint.h. ЗЫ. И sdcc сейчас уже знает про stdint.h:) upd: Ух-ты, теперь оказывается gcc-msp430 под крылом у TI: тыц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 28 октября, 2016 Опубликовано 28 октября, 2016 · Жалоба Аккуратнее... По моим (возможно устаревшим сведениям) для MSP430 был сделан только какой-то форк SDCC (small devices C compiler) - а там никаким stdint.c и не пахло...Судя по RSEG в сообщении автора темы - это IAR и stdint.h там есть. И вообще - по умолчанию я ориентируюсь на стандарт 99 года. Ориентироваться на стандарт 27-летней давтости ( c89 ) как-то несерьезно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Isaev_ivan 0 30 октября, 2016 Опубликовано 30 октября, 2016 · Жалоба Здравствуйте, после попытки скомпилировать появилась такая ошибка. Что это может значить?? и кстати, есть ли разница при указании файла .h в <> или ""? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 31 октября, 2016 Опубликовано 31 октября, 2016 · Жалоба Есть: в одном случае файл ищется в каталоге проекта, а в другом и в системном. И кстати, руководство IAR C/C++ Development Guide очень даже для начинающих. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 31 октября, 2016 Опубликовано 31 октября, 2016 · Жалоба после попытки скомпилировать появилась такая ошибка.Сообщение как-то не вяжется с текстом, на которое указывает. Еще понятно было бы, если бы написал "файл такой-то не найден". Помнится когда-то очень давно в настройках компилятора можно было выбрать "использовать библиотеку clib или dlib". Библиотека dlib была ближе к стандарту 99 года. Поищите, возможно у вас выбрана clib. P.S. 1) 'crystal" пишется через "y". 2) пляски с __segment_begin не нужны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 31 октября, 2016 Опубликовано 31 октября, 2016 · Жалоба Тогда уж IC или chip вместо crystal, а то получилось - кварц …F1232 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться