По одной дисциплине в институте мне нужно написать любую (!) программу на ассемблере для любого микроконтроллера. Вот ушел у меня взгляд на плату, которая давно лежит и более-менее работает на С. Я сижу на Linux+Eclipse. Можно использовать другие средства. Как можно создать на ассемблере проект, где об этом почитать? Ну то есть задача сводится к тому, чтобы на каком-нибудь мк, который поддерживает stlink, реализовать устройство с прошивкой на асм, лучше, конечно, использовать возможности платы.
_________________ На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Типа FFT Вычисляет амплитуду сигнала определённой частоты в попугаях, при уходе частоты попугаев будет меньше. Возможностей платы тут нет, зато есть возможности самого камня - используется FPU для взятия квадратного корня.
Для начала все же лучше определиться, какой конкретно алгоритм/программу/функцию хочется реализовать. Потом надо определиться с помощью каких инструментов это будет реализовываться, ибо что-то мне подсказывает, что GCC'шный ассемблер может отличаться от родного ARM'овского. Или нет? Подправьте меня, если я ошибаюсь - никогда не пользовался Eclipse+GCC. А пока получается "хочу того, не знаю чего".
Да можно вообще для начала ограничиться выводом на порт 1. Там в первом проекте пока увидель только компилятор от Keil vision, сейчас еще почитаю по ссылкам. А ладно, я знаю, как прошить stm32f2-discovery на Linux, теперь вопрос в создании файла elf с помощью asm, вот я пока не знаю, реализуемо ли это на Linux, это красивее звучит. Так на ассемблере я писал для masm32 под ноут, а с asm под stm тоже буду разбираться. Вообще дальнейшим шагом хочу вбить в память реализацию сигнала, типа ее принимает микросхема, это сигнал с частотой допплера, и схема будет частотомером с выводом на дисплей допплеровской частоты. Вот тут и fft тогда, как первый шаг, поможет.
_________________ На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
http://www.terraelectronica.ru/idea.php?ID=374 Сам для себя пишу ссылку, так как не дома:) Там в тулчейне есть компилер асм, другое дело настроить и откомпилировать хотя бы без IDE все, пока не могу понять это. А ссылки с программами супер, последняя вообще, cейчас шарюсь по проектам:)
_________________ На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Блин, сейчас попробовал, пока кота за хвост тяну:) Буду дальше разбираться, но может объясните тогда еще другой путь? У меня пока не получилось скомпилировать с нуля свой проект с библиотеками, а пустой получилось, на С на Eclipse, уже сколько пробовал, все работает. А на Eclipse что нужно переделать, чтобы тот же самый рабочий проект, работающий, например, только с одним пином микросхемы, переписать на ассемблере и скомпилить? Я так понял, что для ассемблерских файлов компилятор GCC?
_________________ На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Я так понял, что для ассемблерских файлов компилятор GCC?
Да, только сборка с поддержкой cortex'ов с системой команд thumb. Это всякие тулчейны, например Sourcery CodeBench Lite Edition. Вот почитайте: http://www.robocraft.ru/blog/ARM/653.html
cd /home/eugene/Desktop/project root@eugene-R59P-R60P-R61P:/home/eugene/Desktop/project# cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=<путь к файлу тулчейна> -DCMAKE_BUILD_TYPE=Debug ./ -bash: путь: No such file or directory root@eugene-R59P-R60P-R61P:/home/eugene/Desktop/project# cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=/home/eugene/CodeSourcery/Sourcery_CodeBench/bin/arm-none-linux-gnueabi-gcc -DCMAKE_BUILD_TYPE=Debug ./ CMake Error: Error in cmake code at /home/eugene/CodeSourcery/Sourcery_CodeBench/bin/arm-none-linux-gnueabi-gcc:1: Parse error. Expected a command name, got unquoted argument with text "ELF". CMake Error at /usr/local/share/cmake-2.8/Modules/CMakeDetermineSystem.cmake:92 (MESSAGE): Could not find toolchain file: /home/eugene/CodeSourcery/Sourcery_CodeBench/bin/arm-none-linux-gnueabi-gcc Call Stack (most recent call first): CMakeLists.txt:2 (PROJECT)
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_C_COMPILER_ENV_VAR CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_C_COMPILER CMake Error: Could not find cmake module file:/home/eugene/Desktop/project/CMakeFiles/CMakeCCompiler.cmake CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_CXX_COMPILER_ENV_VAR CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_CXX_COMPILER CMake Error: Could not find cmake module file:/home/eugene/Desktop/project/CMakeFiles/CMakeCXXCompiler.cmake CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage -- Configuring incomplete, errors occurred!
Еще скажу, что у меня до этого были на компе тулчейн и либа stm32. Версии могут не совпадать. Хотя вроде просто тулчейн не нашел, но я, вроде, сам адрем тот прописал. Ваши предположения?
А так норм?
Цитата:
root@eugene-R59P-R60P-R61P:/home/eugene/Desktop/project# cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=/home/eugene/CodeSourcery/Sourcery_CodeBench/bin/ -DCMAKE_BUILD_TYPE=Debug ./ -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- The ASM compiler identification is GNU -- Found assembler: /usr/bin/as -- Loaded CMakeASMInformation - ASM support is still experimental, please report issues -- Configuring done CMake Error at CMakeLists.txt:84 (ADD_EXECUTABLE): Cannot find source file "main.c". Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx
-- Build files have been written to: /home/eugene/Desktop/project
Мне еще и main.c надо в проект добавить?
Короче остановился на том, что из примера (если я правильно понял, что это пример), я скопировал все файлы, запустил Cmake, он вообще не ругался, но проекта я так и не получил. Либо не понял, где он.
_________________ На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Последний раз редактировалось kras Чт ноя 08, 2012 15:51:03, всего редактировалось 2 раз(а).
О, там по ссылке можно справочник по командам еще дня 2 читать:) Короче остановился на том, что из примера (если я правильно понял, что это пример), я скопировал все файлы, запустил Cmake, он вообще не ругался, но проекта я так и не получил. Либо не понял, где он. Зато у меня провал, когда в eclipse продую сделать Import, пишет, в какую бы папку внутри проекта не зашел, что нет данных для импортирования
_________________ На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Как вариант предлагаю следующее: 1. Скачиваем крякнутую Keil MDK-ARM, которая из коробки делает все и без проблем. 2. Читаем ARM'овские документы про набор команд Cortex-M и вообще про ARM'овский ассемблер. Я запустил первый проект через несколько часов, а более-менее разобрался - за несколько дней. 3. ... 4. Профит!
Keil можно параллельно, но я не хочу пока полагаться на Windows или эмуляторы, хочу чистый Linux, а у меня времени разобраться еще 1.5 месяца есть. А у меня еще одна проблема. Ну насчет нее я уже пытался соображать, пока слабо мне. Вот есть в Software Center сборка Eclipse Indigo. В свое время я установил ее. Она заглючила: проект не открывается, плагины отображаются, но использовать их при создании проекта нельзя и тп. Не знаю, что за лага такая, но о ней много написано в нете. Я пробовал удалить ее, пробовал вручную удалить все плагины, но пока все тщетно, программа даже при переустановке остается глюкнутой. Проблема в том, что пока я нашел только такое решение: снести стандартно/через консоль, удалить еще пару файлов и установить с сайта релиз. Так и сделал, работает, но старая программа просто работала, наверное, по-другому, релиз с Software Center остался мертвым у меня. Вот теперь предложение: установить keil. Я не хочу исползовать эмулятор Windows, поэтому решил попробовать ARM Development Studio 5. Там Eclipse, который, видимо, устанавливается, как старая версия, которая у меня глючила! Вот установил я ее, лицензию ввел, создал новый проект из небольшого выбора (что сначала показалось странным), и проект не открывается. Думаю, это точно тот старый глюк;(
_________________ На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Последний раз редактировалось kras Пт ноя 09, 2012 07:57:53, всего редактировалось 3 раз(а).
А можно где-нибудь наиболее популярно прочитать, из чего состоит devkitpro ARM (http://sourceforge.net/projects/devkitpro/) и зачем нужны его либы и другие части, как подготовить комп, чтобы его установить? Я попробовал, по getting started на оффициальном сайте, но у меня чего-то не смогло установить и я так и не разобрался. С самого начала консоль написала, что не знает команду usr/bin make like make (примерно, просто я уже закрыл консоль).
И еще сколько читаю, так и не могу понять, зачем нужны Cortex M4 и тп, если ARM11 самый сильный? Или архитектуры по производительности отличаются? Ну ценовой фактор, может быть, понятен, то есть для оптимальных решений. А вот если у меня денег неограничено, а я хочу самый передовой, чтобы изучить именно лучшую модель, чтобы она мало мощности потребляла относительно AMD или Intel, то это ARM11?
_________________ На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Во-первых, что вы зациклились на этих IDE? Напишите пока проект без использования всяких рюшек и библиотек, с использованием текстового редактора и компилятора. Во-вторых, не путайте процессор (ARM11) и контроллер (Cortex M4). Это разные вещи.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения