allsettingsdone
Участник-
Постов
32 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о allsettingsdone
-
Звание
Участник
Контакты
-
ICQ
Array
-
Понятно. Просто за последние пол года вы несколько раз мне очень помогли тут. И дело тут не в этом, я стараюсь всегда найти ответ сам и пишу тут только в крайних случаях. Но вы просто мой пример для подражания и кумир. Спасибо вам за всё.
-
Антоха, спасибо тебе за помощь. Можно у тебя поинтересоваться, откуда у тебя такой богатый опыт во встраиваемых системах? Ты постоянно с этим работаешь на работе или это хобби?
-
Мне удалось нормально собрать проект с линкер файлом, но с использованием другого тулчейна (GCC с сайта ti). В этом тулчейне экзешники названы по типу "msp-elf-gcc" или "msp-elf-as" и он весит около 520 МБ. В то же время в другом тулчейне они называются "msp-gcc" или "msp-as" и он весит около 125 МБ. Почему между ними такая разница и какой тулчейн следует использовать и где его лучше взять?
-
Я не пойму почему он лезет в по этому пути, ведь файл с линкер скриптом лежит рядом с makefile (( Сделал так как вы советовали, теперь в выводе линковщик ругается так: msp430-gcc -mmcu=msp430f5529 -Tmsp430f5529.ld -o blink.elf blink.c f:/soft/sublimetext/msp430-gcc/bin/../lib/gcc/msp430/4.6.3/../../../../msp430/bin/ld.exe: error: no memory region specified for loadable section `.noinit.crt0' collect2: ld returned 1 exit status Но в линкер скрипте, который я хочу подключить, нет такой секции ".noinit.crt0". Я взял стандартный линкер скрипт с сайта ti. (скрипт во вложении) msp430f5529.zip
-
То же самое: msp430-gcc -mmcu=msp430f5529 -Wl,-Tmsp430f5529.ld -o blink.elf blink.c c:/program files (x86)/sublimetext/msp430-gcc/bin/../lib/gcc/msp430/4.6.3/../../../../msp430/bin/ld.exe: cannot find files: No such file or directory c:/program files (x86)/sublimetext/msp430-gcc/bin/../lib/gcc/msp430/4.6.3/../../../../msp430/bin/ld.exe: cannot find (x86)/sublimetext/msp430-gcc/bin/../lib/gcc/../../msp430/lib/ldscripts/msp430f5529/: No such file or directory collect2: ld returned 1 exit status А вот без запятой: msp430-gcc -mmcu=msp430f5529 -Wl -Tmsp430f5529.ld -o blink.elf blink.c cc1.exe: error: unrecognized command line option '-Wl'
-
Как правильно передать компилятору скрипт линкера?
allsettingsdone опубликовал тема в MSP430
Мой первый опыт с MSP430. Перед написанием makefile я решил просто проверить/поиграться с платой MSP430 Launchpad (f5529). В одной папке лежат следующие файлы: - blink.c - msp430f5529.ld Я пытаюсь выполнить в этой папке в командной строке: msp430-gcc -mmcu=msp430f5529 -Tmsp430f5529.ld -o blink.elf blink.c В итоге получаю следующий вывод: c:/program files (x86)/sublimetext/msp430-gcc/bin/../lib/gcc/msp430/4.6.3/../../../../msp430/bin/ld.exe: cannot find files: No such file or directory c:/program files (x86)/sublimetext/msp430-gcc/bin/../lib/gcc/msp430/4.6.3/../../../../msp430/bin/ld.exe: cannot find (x86)/sublimetext/msp430-gcc/bin/../lib/gcc/../../msp430/lib/ldscripts/msp430f5529/: No such file or directory collect2: ld returned 1 exit status Как я понял, линкер пытается найти линкер скрипт у себя в папках компилятора и не принимает линкер скрипт который я ему передаю. Как это правильно сделать? -
Как узнать число, которое нужно записать в AFRH9 и AFRH10, что бы включить альтернативную функцию USART1 на PA9, PA10 на STM32F407? (это число состоит из 4-ёх бит согласно стр. 287 RM0090)
-
Как вы работаете с регистрами GPIOx_AFR?
allsettingsdone опубликовал тема в STM
Как вы настраиваете альтернативные функции у GPIO с помощью регистров GPIOx_AFR (например при настройке USART1 на PA9, PA10 на STM32F407VG) ? В стандартном файле описания периферии (stm32f4xx.h) - нет информации и масок для работы с этим регистром. Просто высчитываете сами битовую маску и записываете в этот регистр готовое число? -
Ошибка сборки проекта в Sublime text2
allsettingsdone ответил allsettingsdone тема в ARM
Так.. В первую очередь мне надо разобраться с синтаксисом makefile и *.ld , понять что за что отвечает и дальше уже пытаться собрать проект. -
Ошибка сборки проекта в Sublime text2
allsettingsdone ответил allsettingsdone тема в ARM
Дело в том что не нужны костыли в проекте, для того что бы та или иная ошибка не выскакивала. Я бы хотел сделать "скелетный" проект для Sublime text2, и насколько я понимаю, эта ошибка появляется из-за того что я передаю в компилятор слишком мало параметров о самом микроконтроллере, и(или) не подключаю к проекту файл "startup_stm32f10x_md_vl.s". Тут кстати возникает вопрос - как правильно подключить этот файл к проекту? И какая разница компилятору подключен он или нет? -
Ошибка сборки проекта в Sublime text2
allsettingsdone опубликовал тема в ARM
Не получается собрать простенький проект на С++ в Sublime text2. Использую компилятор gcc(GNU Tools ARM Embedded), программу make с самописным простеньким makefile. Пути для gcc и make прописаны в PATH. Вот что пытаюсь собрать: int main() { } Вот настройки проекта sublime text2: { "folders": [ { "path": "." } ], "build_systems": [ { "name": "arm build", "cmd": ["make"], "working_dir": "${project_path}" } ], "settings": { "sublimeclang_options": [ "-std=c++11", "-Wall", "-I${project_path}" ] } } Содержимое makefile: all: arm-none-eabi-gcc main.cpp Вот что получаем на выходе: arm-none-eabi-gcc main.cpp c:/program files (x86)/gnu tools arm embedded/4.8 2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib\libc.a(lib_a-exit.o): In function `exit': exit.c:(.text.exit+0x2c): undefined reference to `_exit' collect2.exe: error: ld returned 1 exit status make: *** [all] Error 1 [Finished in 0.4s with exit code 2] Как вы думаете, в чем проблема? проект прикрепляю: sm20.zip -
Похоже что так всё работает, спасибо.
-
Вот допустим я делаю счетчик, пишу test0 DCWU 0xFFFF Затем уменьшаю на 1 ( MOV32 R0, #test0 SUB R0, #1) Её сохранять обратно в память таким образом? - STR R0, [#test0] ? Компилятор выделит память под 4 байта?
-
Создание и работа с переменными в ассемблере
allsettingsdone опубликовал тема в ARM
Не могу понять как создавать и работать с переменными разного размера в ассемблере в Keil. Директивы DB, DW, DD выдают ошибку(похоже на то, что Keil их вообще не знает), BYTE, WORD, DWORD - то же самое. Как я понял директивы GBLL, GBLS, GBLA создают (в RAM?) переменную и далее ей можно придать значение используя SETA, SETL, SETS, но при попытке повторно сохранить значение этой переменной получаем ошибку при компиляции, да и не понятно где именно в памяти Keil разместит переменную. Можно конечно сделать так Var0 EQU 0x(адрес переменной в памяти), но есть ли другие(более удобные) способы ? И как вообще принято это делать? -
Это макрос и от пользователя может прийти что угодно (просто в этом случае я сразу прописал), вот скажем я с юарта буду посылать имя порта, в конечном итоге отправляя его в аргумент этого макроса, тогда получается что приплюсовывать "GPIO_BSRR" к имени порта (у которых код тоже задефайнен, у каждого свой) микроконтроллер будет на лету? Он же не будет знать какой порт будет следующим. Как же так?