|
getfsl, не понимаю как собрать |
|
|
|
Jun 19 2014, 04:11
|
Группа: Новичок
Сообщений: 5
Регистрация: 18-06-14
Пользователь №: 81 988

|
Добрый день. Достался мне унаследованный проект SoC на Xilinx. Весь софт построен на инструкциях getfsl и putfsl, и я никак не могу понять как его собрать.
В С-шном коде это выглядит так: do { getfslx(uart_busy, 9, 0); } while(uart_busy & UART_BUSY);
функция getfslx - это макрос, определенный как #define getfslx(val, id, unused) asm volatile ( "getfsl\t%0,"#id : "=d" (val) )
т.е. в итоге порождается ассемблерная инструкция: getfsl $2,6
Проблема в том, что ни один ассемблер не знает инструкции getfsl. Предыдущие люди собирали с помощью gcc, но Makefile не оставили. Я уже попробовал и gcc и тот gcc, что в EDK у Xilinx, но ни один ассемблер такой инструкции не знает. Подскажите, как собрать?
|
|
|
|
|
 |
Ответов
|
Jun 19 2014, 04:56
|
Местный
  
Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695

|
Цитата(xil-user @ Jun 19 2014, 08:11)  Добрый день. Достался мне унаследованный проект SoC на Xilinx. Весь софт построен на инструкциях getfsl и putfsl, и я никак не могу понять как его собрать.
В С-шном коде это выглядит так: do { getfslx(uart_busy, 9, 0); } while(uart_busy & UART_BUSY);
функция getfslx - это макрос, определенный как #define getfslx(val, id, unused) asm volatile ( "getfsl\t%0,"#id : "=d" (val) )
т.е. в итоге порождается ассемблерная инструкция: getfsl $2,6
Проблема в том, что ни один ассемблер не знает инструкции getfsl. Предыдущие люди собирали с помощью gcc, но Makefile не оставили. Я уже попробовал и gcc и тот gcc, что в EDK у Xilinx, но ни один ассемблер такой инструкции не знает. Подскажите, как собрать? "gcc, что в EDK у Xilinx " - обязан понимать. Это "родная" команда для MicroBlaze. и только родной компилятор/ассемблер понимает сеи команды. Возможно требуется указывать нужные опции при компиляции. Попробуйте собрать сей проект в родной среде EDK/XPS+ECLIPS (а не вручную).
|
|
|
|
|
Jun 19 2014, 09:25
|
Группа: Новичок
Сообщений: 5
Регистрация: 18-06-14
Пользователь №: 81 988

|
Попробовал, сделал из проекта Makefile, там ничего необычного не было, просто вызов gcc:
/opt/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/lin/bin/mb-gcc -O2 -Wall -c -s -g -fno-pic main.c -o main.o main.c: In function 'main': main.c:15:51: warning: variable 'size' set but not used [-Wunused-but-set-variable] main.c:15:37: warning: variable 'i' set but not used [-Wunused-but-set-variable] /tmp/ccxdY0Ch.s: Assembler messages: /tmp/ccxdY0Ch.s:34: Error: unknown opcode "getfsl" make: *** [s_proc] Error 1
Никак не могу понять, чего же не так. Вроде и компилятор "родной".
|
|
|
|
|
Jun 19 2014, 09:35
|
Местный
  
Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695

|
Цитата(xil-user @ Jun 19 2014, 13:25)  Попробовал, сделал из проекта Makefile, там ничего необычного не было, просто вызов gcc:
/opt/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/lin/bin/mb-gcc -O2 -Wall -c -s -g -fno-pic main.c -o main.o Никак не могу понять, чего же не так. Вроде и компилятор "родной". Кто "придумал" опции: -O2 -Wall -c -s -g -fno-pic ??? Если это ВЫ сами придумали это одно, а если eclips - это другое. Где опция -mcpu ???
|
|
|
|
|
Jun 19 2014, 10:01
|
Группа: Новичок
Сообщений: 5
Регистрация: 18-06-14
Пользователь №: 81 988

|
Цитата(Alex77 @ Jun 19 2014, 13:35)  Кто "придумал" опции: -O2 -Wall -c -s -g -fno-pic ??? Если это ВЫ сами придумали это одно, а если eclips - это другое. eclipse  Правда почему это так получилось, не знаю. Убрал все лишние опции, результат тот же: /share4s/cads/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/lin/bin/mb-gcc -c -mcpu=v8.50.b main.c -o main.o /tmp/ccqynTjM.s: Assembler messages: /tmp/ccqynTjM.s:33: Error: unknown opcode "getfsl" make: *** [s_proc] Error 1 Сам компилятор про себя говорит: [serg@microblaze]$ mb-gcc -v Using built-in specs. COLLECT_GCC=mb-gcc COLLECT_LTO_WRAPPER=/share4s/cads/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/lin/bin/../libexec/gcc/microblaze-xilinx-elf/4.6.4/lto-wrapper Target: microblaze-xilinx-elf Configured with: /wrk/ptx/users/nagaraju/GCC_2013_03/gcc/configure --with-gmp=/proj/epdsw/gnu/mb_gnu/libs --with-mpfr=/proj/epdsw/gnu/mb_gnu/libs --with-mpc=/proj/epdsw/gnu/mb_gnu/libs --with-ppl=no --with-cloog=no --target=microblaze-xilinx-elf --prefix=/gnu/mb_gnu/gnu/microblaze/lin --program-prefix=mb- --disable-nls CFLAGS_FOR_TARGET=-O2 CFLAGS_FOR_BUILD=-O2 --with-newlib --disable-lto --enable-languages=c,c++ --enable-multilib --disable-libquadmath --with-sysroot=/gnu/mb_gnu/gnu/microblaze/lin/microblaze-xilinx-elf Thread model: single gcc version 4.6.4 20120924 (Xilinx 14.1 Build EDK_P.13 28 Sep 2013) (GCC)
|
|
|
|
|
Jun 19 2014, 10:17
|
Местный
  
Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695

|
Цитата(xil-user @ Jun 19 2014, 14:01)  eclipse  Правда почему это так получилось, не знаю. Убрал все лишние опции, результат тот же: /share4s/cads/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/lin/bin/mb-gcc -c -mcpu=v8.50.b main.c -o main.o /tmp/ccqynTjM.s: Assembler messages: /tmp/ccqynTjM.s:33: Error: unknown opcode "getfsl" make: *** [s_proc] Error 1 Сам компилятор про себя говорит: [serg@microblaze]$ mb-gcc -v Using built-in specs. COLLECT_GCC=mb-gcc COLLECT_LTO_WRAPPER=/share4s/cads/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/lin/bin/../libexec/gcc/microblaze-xilinx-elf/4.6.4/lto-wrapper Target: microblaze-xilinx-elf Configured with: /wrk/ptx/users/nagaraju/GCC_2013_03/gcc/configure --with-gmp=/proj/epdsw/gnu/mb_gnu/libs --with-mpfr=/proj/epdsw/gnu/mb_gnu/libs --with-mpc=/proj/epdsw/gnu/mb_gnu/libs --with-ppl=no --with-cloog=no --target=microblaze-xilinx-elf --prefix=/gnu/mb_gnu/gnu/microblaze/lin --program-prefix=mb- --disable-nls CFLAGS_FOR_TARGET=-O2 CFLAGS_FOR_BUILD=-O2 --with-newlib --disable-lto --enable-languages=c,c++ --enable-multilib --disable-libquadmath --with-sysroot=/gnu/mb_gnu/gnu/microblaze/lin/microblaze-xilinx-elf Thread model: single gcc version 4.6.4 20120924 (Xilinx 14.1 Build EDK_P.13 28 Sep 2013) (GCC) Демо пример в студию. (main.c)
|
|
|
|
Сообщений в этой теме
xil-user getfsl, не понимаю как собрать Jun 19 2014, 04:11     xil-user Еще одна попытка:
генерируем из всего набора исхо... Jun 19 2014, 13:57      Alex77 Цитата(xil-user @ Jun 19 2014, 17:57... Jun 20 2014, 05:34       xil-user Да, действительно, если заменить определение getfs... Jun 20 2014, 14:29        Alex77 Цитата(xil-user @ Jun 20 2014, 18:29... Jun 20 2014, 16:28 Kuzmi4 2 xil-user
На счёт getfsl - такого опкода нет, но ... Jun 19 2014, 12:50
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|