Перейти к содержанию
    

жесть какаято .....

ld.exe: cannot find -lugin это вообще откудо!!??

разберусь в чем косяки выложу.

 

ну теперь до кучи для avr

 

http://klen.org//Files/DevTools/x86_32-kgp..._32-20111121.7z

lto не включать - его тут нету.

 

ребята... мож всетаки перейдем на 64 битные системы, а то они както умирают со всех сторон...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ребята... мож всетаки перейдем на 64 битные системы, а то они както умирают со всех сторон...

да мы бы с радостью, да только вот средства не позволяют.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На предыдущей версии собиралось без проблем.

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мне это все видется забавно.. а Вы говорите релизы..

такого говна повыкачивать я еще людям не предлагал!

 

просьба пока не пытатся скачивать архив с релизными версиями - там видимо хорошего ничего нет

до тех пор пока я на 32 битную хрюше не посмотрю как это все происходит.

 

но avr версию всетаки гляньте - я ее проверял - у меня простейший проект собрался.

 

нада сказать что собрать релизы с ходу как trunk у меня не получилось - куча косяков - в основном в конфигураиторах. приходилось руками помогать. хочу напомнить простую истину - релиз отлаженный для одной платфрмы не означает его релизность под другую. надо понимать что релизность в первую очередб относиться к кодогенератору RTL - тоесть к верхнему уровню, он собственно самое главное, а порты могут вообще в данный момент быть испорчены.

 

2_ARV это плохо что денег нет, у меня тоже их почемуто нет. чтото не так в консерватории - работаеш работаеш по 14 часов в сутки а их все нет и нет. :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

до тех пор пока я на 32 битную хрюше не посмотрю как это все происходит.

На всякий случай напомню, что в венде 32-битные программы можно легко и непринуждённо запускать (проверять) и на 64-битной системе :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2_adnega

косяк с SVC в релизной версии - старый известный в ассемблере бинутилса про который уже все забыли, но вы просили релиз! как вы понимаете сборка будет как говорят патсаны 'дэцел нерелизная'

 

потестил. косяки устранены для arm сборки под винду, на выходных выложу. с avr сборкой как? пробовал ктонибудь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Klen

Все мучаем свой элдешник. Если все не так просто с мипсами. Есть пример какого-нибудь скрипта линкера чтобы можно было секции по адресам и не так некузяво как у нас (т.е. с объектными файлами)?

Если найдется буду примного благодарен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поправленая ARM сборка с релизным компиллером 4.6.2 для 32 битной винды

 

http://klen.org/Files/DevTools/x86_32-kgp-..._32-20111126.7z

 

я его протестил на XP, проекты собираются отлаживаются и работают после зашивки.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да там в то время lto никто и гарантировал. он и щас то в вразработке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверил, работает.

Причём по размеру кода даже немножко уделывает 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:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эхх...

 

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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эхх...

 

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

на мой взгляд они все правильно делают - открылись новые обстаятельства - рефаторинг проекта, а то и редизайнинг пока не позно!! а не ''рекостылинг" ка это делают большенство обезьяноподобных.... нехрен грязь размазывать во времени и пространстве - сразу жопу вытер, помыл и забыл. я бы также сделал. проблем то никаких - имя скрипта поменял и все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на мой взгляд они все правильно делают - открылись новые обстаятельства - рефаторинг проекта, а то и редизайнинг пока не позно!! а не ''рекостылинг" ка это делают большенство обезьяноподобных....

Представляете, если бы авторы GCC вдруг решили поменять несколько ключей компилятора? Какой бы вой поднялся!

Мне кажется, в стан openocd проникли враги, и ведут там диверсионную деятельность.

Не, я вообще-то не против рефакторинга и даже редизайнинга, если это не мешает мне пользоваться продуктом. А у openocd я уж и не помню когда не было этого, там уже давно просто сплошной и непрерывный рефакторинг и редизайнинг! :maniac:

проблем то никаких - имя скрипта поменял и все.

У меня свой скрипт. Причём в каждом проекте свой. Так исторически сложилось. Теперь мне придётся все их править. Причём в данный момент на работе в винде у меня 0.6.0, а дома в линуксе - 0.4.0. Получается несовместимость по формату скриптов. Пока не придумал как выкручиваться...

А всего-то и надо было им - сделать старое наименование stm32x алиасом нового наименования stm32f1x. И потом хоть обрефакторились бы! :laughing:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Представляете, если бы авторы 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]

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...