klen 1 20 ноября, 2011 Опубликовано 20 ноября, 2011 · Жалоба жесть какаято ..... ld.exe: cannot find -lugin это вообще откудо!!?? разберусь в чем косяки выложу. ну теперь до кучи для avr http://klen.org//Files/DevTools/x86_32-kgp..._32-20111121.7z lto не включать - его тут нету. ребята... мож всетаки перейдем на 64 битные системы, а то они както умирают со всех сторон... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ARV 1 21 ноября, 2011 Опубликовано 21 ноября, 2011 · Жалоба ребята... мож всетаки перейдем на 64 битные системы, а то они както умирают со всех сторон... да мы бы с радостью, да только вот средства не позволяют. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 21 ноября, 2011 Опубликовано 21 ноября, 2011 · Жалоба На предыдущей версии собиралось без проблем. C:\gcc\arm-kgp-eabi-x86_32_20111120\bin>arm-kgp-eabi-gcc.exe -mcpu=cortex-m3 -mthumb -g -O0 -c test.s -o test.o test.s: Assembler messages: test.s:103: Error: SVC is not permitted on this architecture test.s: @ 153 "c:/gcc/FreeRTOS/Source/portable/GCC/ARM_CM3/port.c" 1 ldr r0, =0xE000ED08 ldr r0, [r0] ldr r0, [r0] msr msp, r0 cpsie i svc 0 <- 103 line nop Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 21 ноября, 2011 Опубликовано 21 ноября, 2011 · Жалоба мне это все видется забавно.. а Вы говорите релизы.. такого говна повыкачивать я еще людям не предлагал! просьба пока не пытатся скачивать архив с релизными версиями - там видимо хорошего ничего нет до тех пор пока я на 32 битную хрюше не посмотрю как это все происходит. но avr версию всетаки гляньте - я ее проверял - у меня простейший проект собрался. нада сказать что собрать релизы с ходу как trunk у меня не получилось - куча косяков - в основном в конфигураиторах. приходилось руками помогать. хочу напомнить простую истину - релиз отлаженный для одной платфрмы не означает его релизность под другую. надо понимать что релизность в первую очередб относиться к кодогенератору RTL - тоесть к верхнему уровню, он собственно самое главное, а порты могут вообще в данный момент быть испорчены. 2_ARV это плохо что денег нет, у меня тоже их почемуто нет. чтото не так в консерватории - работаеш работаеш по 14 часов в сутки а их все нет и нет. :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 21 ноября, 2011 Опубликовано 21 ноября, 2011 · Жалоба до тех пор пока я на 32 битную хрюше не посмотрю как это все происходит. На всякий случай напомню, что в венде 32-битные программы можно легко и непринуждённо запускать (проверять) и на 64-битной системе :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 25 ноября, 2011 Опубликовано 25 ноября, 2011 · Жалоба 2_adnega косяк с SVC в релизной версии - старый известный в ассемблере бинутилса про который уже все забыли, но вы просили релиз! как вы понимаете сборка будет как говорят патсаны 'дэцел нерелизная' потестил. косяки устранены для arm сборки под винду, на выходных выложу. с avr сборкой как? пробовал ктонибудь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ash_snz 0 25 ноября, 2011 Опубликовано 25 ноября, 2011 · Жалоба 2 Klen Все мучаем свой элдешник. Если все не так просто с мипсами. Есть пример какого-нибудь скрипта линкера чтобы можно было секции по адресам и не так некузяво как у нас (т.е. с объектными файлами)? Если найдется буду примного благодарен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 26 ноября, 2011 Опубликовано 26 ноября, 2011 · Жалоба поправленая ARM сборка с релизным компиллером 4.6.2 для 32 битной винды http://klen.org/Files/DevTools/x86_32-kgp-..._32-20111126.7z я его протестил на XP, проекты собираются отлаживаются и работают после зашивки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 26 ноября, 2011 Опубликовано 26 ноября, 2011 · Жалоба lto отвалилось, но это не особо важно... Спасибо. Без него работает. arm-kgp-eabi-gcc ../crt_sam7s.o ../cp15_asm.o ../bandfilters.o ../board.o ../sequen.o ../encoder.o ../hardware.o ../hd44780.o ../dis play.o ../keyboard.o ../keymaps.o ../nvram.o ../spifuncs.o ../formats.o ../synthcalcs.o ../uc1601s_small.o ../uc1601s_font.o ../uc16 01s_font_alt.o ../uc1601s.o ../twi.o ../tc1.o -mcpu=arm7tdmi -flto -Os -nostartfiles -T../sam7x64_rom.ld -Wl,-Map=tc1_rom.map,--cref ,--no-warn-mismatch -lm -o tc1_rom.elf lto1.exe: internal compiler error: compressed stream: data error Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. lto-wrapper: arm-kgp-eabi-gcc returned 1 exit status c:/kgp_arm_eabi/bin/../lib/gcc/arm-kgp-eabi/4.6.2/../../../../arm-kgp-eabi/bin/ld.exe: lto-wrapper failed collect2: ld returned 1 exit status make.EXE: *** [tc1_rom.elf] Error 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 26 ноября, 2011 Опубликовано 26 ноября, 2011 · Жалоба да там в то время lto никто и гарантировал. он и щас то в вразработке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 28 ноября, 2011 Опубликовано 28 ноября, 2011 · Жалоба Проверил, работает. Причём по размеру кода даже немножко уделывает arm-kgp-eabi-gcc.exe 4.7.0 20110328: text data bss 34236 32 38344 4.7.0 34124 32 38344 4.6.2 LTO нет ни там ни там (для кортексов), для arm7tdmi в 4.7.0 LTO работает, а в 4.6.2 - компилится (работу проверить не на чем). А, и ещё openocd следующей версии, как обычно с несовместимым форматом конфигурации... Не, конечно понятно, что при появлении stm32f2x, пришлось его обособить от stm32f1xx, но можно же было оставить stm32x как алиас stm32f1x для совместимости! Теперь у меня под виндой и под линуксом разные версии:) ЗЫ. Спасибо, klen! :beer: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 28 ноября, 2011 Опубликовано 28 ноября, 2011 · Жалоба Эхх... test.s:493: Error: registers may not be the same -- `strexb r0,r0,[r1]' test.s:517: Error: registers may not be the same -- `strexh r0,r0,[r1]' test.s .align 1 .global __STREXB .thumb .thumb_func .type __STREXB, %function __STREXB: .LFB19: .loc 1 733 0 .cfi_startproc @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. .LVL34: .loc 1 736 0 @ 736 "c:/gcc/lib/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c" 1 strexb r0, r0, [r1] <-- 493 line @ 0 "" 2 .LVL35: .loc 1 738 0 .thumb bx lr .cfi_endproc .LFE19: .size __STREXB, .-__STREXB .align 1 .global __STREXH .thumb .thumb_func .type __STREXH, %function __STREXH: .LFB20: .loc 1 750 0 .cfi_startproc @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. .LVL36: .loc 1 753 0 @ 753 "c:/gcc/lib/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c" 1 strexh r0, r0, [r1] <-- 517 line А это исходный текст /** * @brief STR Exclusive (8 bit) * * @param value value to store * @param *addr address pointer * @return successful / failed * * Exclusive STR command for 8 bit values */ uint32_t __STREXB(uint8_t value, uint8_t *addr) { uint32_t result=0; __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); return(result); } /** * @brief STR Exclusive (16 bit) * * @param value value to store * @param *addr address pointer * @return successful / failed * * Exclusive STR command for 16 bit values */ uint32_t __STREXH(uint16_t value, uint16_t *addr) { uint32_t result=0; __ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); return(result); } A.3.8 LDREX and STREX Load and Store Register Exclusive. Syntax LDREX{cond} Rt, [Rn {, #offset}] STREX{cond} Rd, Rt, [Rn {, #offset}] LDREXB{cond} Rt, [Rn] STREXB{cond} Rd, Rt, [Rn] LDREXH{cond} Rt, [Rn] STREXH{cond} Rd, Rt, [Rn] where cond is an optional condition code; see “Conditional Execution” section on page 358. Rd is the destination register for the returned status. Rt is the register to load or store. Rn is the register on which the memory address is based. offset is an optional offset applied to the value in Rn. If offset is omitted, the address is the value in Rn. Restrictions In these instructions: - Do not use PC. - Do not use SP for Rd and Rt. - For STREX, Rd must be different from both Rt and Rn. - The value of offset must be a multiple of 4 in the range 0–1020. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 28 ноября, 2011 Опубликовано 28 ноября, 2011 · Жалоба Эхх... test.s:493: Error: registers may not be the same -- `strexb r0,r0,[r1]' test.s:517: Error: registers may not be the same -- `strexh r0,r0,[r1]' 1. как то мимо проехал, просто закаментил CMSIS две эти функции потому как не разбирался - кто врет: асм на наличие двух одинаковых регистров, или компилятор врет при их генерации. судя по доке для strexb и strexb это не воспрещаться но и не написано что можно (я решил ничего не предпринимать по поводу этого косяка). этот тонкий момент я оставил на потом. кто точно знает как работает ядро по этому вопросу сообщите. 2. моя рабочая гипотеза - врет ассемблер, если так то его можно быстренько подправить (если не будет подводных камней). 2_AHTOXA на мой взгляд они все правильно делают - открылись новые обстаятельства - рефаторинг проекта, а то и редизайнинг пока не позно!! а не ''рекостылинг" ка это делают большенство обезьяноподобных.... нехрен грязь размазывать во времени и пространстве - сразу жопу вытер, помыл и забыл. я бы также сделал. проблем то никаких - имя скрипта поменял и все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 28 ноября, 2011 Опубликовано 28 ноября, 2011 · Жалоба на мой взгляд они все правильно делают - открылись новые обстаятельства - рефаторинг проекта, а то и редизайнинг пока не позно!! а не ''рекостылинг" ка это делают большенство обезьяноподобных.... Представляете, если бы авторы GCC вдруг решили поменять несколько ключей компилятора? Какой бы вой поднялся! Мне кажется, в стан openocd проникли враги, и ведут там диверсионную деятельность. Не, я вообще-то не против рефакторинга и даже редизайнинга, если это не мешает мне пользоваться продуктом. А у openocd я уж и не помню когда не было этого, там уже давно просто сплошной и непрерывный рефакторинг и редизайнинг! :maniac: проблем то никаких - имя скрипта поменял и все. У меня свой скрипт. Причём в каждом проекте свой. Так исторически сложилось. Теперь мне придётся все их править. Причём в данный момент на работе в винде у меня 0.6.0, а дома в линуксе - 0.4.0. Получается несовместимость по формату скриптов. Пока не придумал как выкручиваться... А всего-то и надо было им - сделать старое наименование stm32x алиасом нового наименования stm32f1x. И потом хоть обрефакторились бы! :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 28 ноября, 2011 Опубликовано 28 ноября, 2011 · Жалоба Представляете, если бы авторы GCC вдруг решили поменять несколько ключей компилятора? Какой бы вой поднялся! Мне кажется, в стан openocd проникли враги, и ведут там диверсионную деятельность. Не, я вообще-то не против рефакторинга и даже редизайнинга, если это не мешает мне пользоваться продуктом. А у openocd я уж и не помню когда не было этого, там уже давно просто сплошной и непрерывный рефакторинг и редизайнинг! :maniac: У меня свой скрипт. Причём в каждом проекте свой. Так исторически сложилось. Теперь мне придётся все их править. Причём в данный момент на работе в винде у меня 0.6.0, а дома в линуксе - 0.4.0. Получается несовместимость по формату скриптов. Пока не придумал как выкручиваться... А всего-то и надо было им - сделать старое наименование stm32x алиасом нового наименования stm32f1x. И потом хоть обрефакторились бы! :laughing: в что мешает на линуксе 0.6,0 запустит? религяи не позволяет? у меня исторически сложилось что скрипт один... а это что такое я спрашиваю? stm32.cfg: deprecated cfg file echo "DEPRECATED! use script 'target/stm32f1x.cfg' not 'target/stm32.cfg'" source [find target/stm32f1x.cfg] # stm32f2xxx.cfg: # deprecated cfg file echo "DEPRECATED! use script 'target/stm32f2x.cfg' not 'target/stm32f2xxx.cfg'" source [find target/stm32f2x.cfg] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться