|
|
  |
свежак KGP win32/arm/avr/mips/m68k, GNU tools chain |
|
|
|
Nov 20 2011, 20:53
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
жесть какаято ..... ld.exe: cannot find -lugin это вообще откудо!!?? разберусь в чем косяки выложу. ну теперь до кучи для avr http://klen.org//Files/DevTools/x86_32-kgp..._32-20111121.7zlto не включать - его тут нету. ребята... мож всетаки перейдем на 64 битные системы, а то они както умирают со всех сторон...
|
|
|
|
|
Nov 21 2011, 06:12
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
мне это все видется забавно.. а Вы говорите релизы.. такого говна повыкачивать я еще людям не предлагал! просьба пока не пытатся скачивать архив с релизными версиями - там видимо хорошего ничего нет до тех пор пока я на 32 битную хрюше не посмотрю как это все происходит. но avr версию всетаки гляньте - я ее проверял - у меня простейший проект собрался. нада сказать что собрать релизы с ходу как trunk у меня не получилось - куча косяков - в основном в конфигураиторах. приходилось руками помогать. хочу напомнить простую истину - релиз отлаженный для одной платфрмы не означает его релизность под другую. надо понимать что релизность в первую очередб относиться к кодогенератору RTL - тоесть к верхнему уровню, он собственно самое главное, а порты могут вообще в данный момент быть испорчены. 2_ARV это плохо что денег нет, у меня тоже их почемуто нет. чтото не так в консерватории - работаеш работаеш по 14 часов в сутки а их все нет и нет.
|
|
|
|
|
Nov 25 2011, 09:03
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 12-05-11
Пользователь №: 64 958

|
2 Klen Все мучаем свой элдешник. Если все не так просто с мипсами. Есть пример какого-нибудь скрипта линкера чтобы можно было секции по адресам и не так некузяво как у нас (т.е. с объектными файлами)? Если найдется буду примного благодарен.
|
|
|
|
|
Nov 28 2011, 08:53
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Проверил, работает. Причём по размеру кода даже немножко уделывает 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!
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Nov 28 2011, 12:16
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Эхх... 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.
|
|
|
|
|
Nov 28 2011, 16:57
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
Цитата(adnega @ Nov 28 2011, 16:16)  Эхх...
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 на мой взгляд они все правильно делают - открылись новые обстаятельства - рефаторинг проекта, а то и редизайнинг пока не позно!! а не ''рекостылинг" ка это делают большенство обезьяноподобных.... нехрен грязь размазывать во времени и пространстве - сразу жопу вытер, помыл и забыл. я бы также сделал. проблем то никаких - имя скрипта поменял и все.
|
|
|
|
|
Nov 28 2011, 17:34
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(klen @ Nov 28 2011, 22:57)  на мой взгляд они все правильно делают - открылись новые обстаятельства - рефаторинг проекта, а то и редизайнинг пока не позно!! а не ''рекостылинг" ка это делают большенство обезьяноподобных.... Представляете, если бы авторы GCC вдруг решили поменять несколько ключей компилятора? Какой бы вой поднялся! Мне кажется, в стан openocd проникли враги, и ведут там диверсионную деятельность. Не, я вообще-то не против рефакторинга и даже редизайнинга, если это не мешает мне пользоваться продуктом. А у openocd я уж и не помню когда не было этого, там уже давно просто сплошной и непрерывный рефакторинг и редизайнинг! Цитата(klen @ Nov 28 2011, 22:57)  проблем то никаких - имя скрипта поменял и все. У меня свой скрипт. Причём в каждом проекте свой. Так исторически сложилось. Теперь мне придётся все их править. Причём в данный момент на работе в винде у меня 0.6.0, а дома в линуксе - 0.4.0. Получается несовместимость по формату скриптов. Пока не придумал как выкручиваться... А всего-то и надо было им - сделать старое наименование stm32x алиасом нового наименования stm32f1x. И потом хоть обрефакторились бы!
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Nov 28 2011, 20:17
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
Цитата(AHTOXA @ Nov 28 2011, 21:34)  Представляете, если бы авторы GCC вдруг решили поменять несколько ключей компилятора? Какой бы вой поднялся! Мне кажется, в стан openocd проникли враги, и ведут там диверсионную деятельность. Не, я вообще-то не против рефакторинга и даже редизайнинга, если это не мешает мне пользоваться продуктом. А у openocd я уж и не помню когда не было этого, там уже давно просто сплошной и непрерывный рефакторинг и редизайнинг! У меня свой скрипт. Причём в каждом проекте свой. Так исторически сложилось. Теперь мне придётся все их править. Причём в данный момент на работе в винде у меня 0.6.0, а дома в линуксе - 0.4.0. Получается несовместимость по формату скриптов. Пока не придумал как выкручиваться... А всего-то и надо было им - сделать старое наименование stm32x алиасом нового наименования stm32f1x. И потом хоть обрефакторились бы!  в что мешает на линуксе 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]
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|