Jump to content

    

Viciouspriest

Участник
  • Content Count

    14
  • Joined

  • Last visited

Community Reputation

0 Обычный
  1. Цитата(AHTOXA @ Dec 15 2016, 20:42) Вроде бы ещё надо линкеру передать ключ оптимизации (-Os) Не, дело было не в этом. Вчера наконец-то разобрался. Почему-то -Lto выкидывает библиотеку m. Я прописывал -lm, но это не помогало потому, что lm надо прописывать в самом конце, после перечисления всех о-файлов, а я писал вначале. Почему это происходит - непонятно...
  2. Всем здравствуйте. Осваиваю ланчпадавский компилятор. Столкнулся с тем, что при включенной Lto не видит функции, например sqrt(), из math.h. "undefined reference to `sqrt' collect2.exe: error: ld returned 1 exit status". Compile opts -mcpu=cortex-m3 -flto -lto -mthumb -fpack-struct -Wpadded -g -Os Linker opts -mcpu=cortex-m3 -flto -mthumb -Wl,--gc-sections,-Map=Project.elf.map,-cref,-u,Reset_Handler Target CPU STM32F103RET6 gcc-arm-none-eabi-5_4-2016q3-20160926-win32 Подозреваю, что дело в ключах, но не знаю в каких. Очень надеюсь на ответ.
  3. Цитата(klen @ Jun 3 2015, 16:43) 2_Viciouspriest еще один среатив - удалось собрать из транка arm-kgp-eabi host i686-kgp-mingw32 www.klen.org//Files/DevTools/i686-kgp-mingw32/arm-kgp-eabi_@_i686-kgp-mingw32_20150603_CETONIA.7z Собираю с Вашими ключами CODEd:/gcc/arm-kgp-eabi_cetonia/bin/../lib/gcc/arm-kgp-eabi/6.0.0/../../../../arm-kgp-eabi/bin/ld.exe: cannot find crtfastmath.o: No such file or directory collect2.exe: error: ld returned 1 exit status make: *** [UPKB_G.elf] Error 1
  4. Цитата(klen @ Jun 2 2015, 15:04) в винде все всегда через жопу... особнно под 32 битную. ну ладно. можно собрать без LTO плагина и скорее всего тогда заведется. нужно? Если это будет не сильно сложно, то нужно.
  5. Цитата(klen @ Jun 2 2015, 13:15) 2_Viciouspriest я думаю нужно попробывать с того чтобы вместо Ваших ключей всунуть при компиляции И ПРИ ЛИНКОВКЕ (что судя поо логу не сделано) ключики -mcpu=cortex-m3 -mfloat-abi=soft -mthumb -Ofast -fomit-frame-pointer -finline-functions -ffunction-sections -fdata-sections -fgraphite -funroll-loops -flto=8 -ffat-lto-objects -ggdb3 при линковке тоже нада обязательно пизать ибо в современность LTO процес компиляни и линковки не совсем изолированные операции.... лог результатов в студию ожидается. бинари запустились - что для меня было не очевидно... неплохо. Вот блин, разорвал форум своей вставкой х) Линковка и компиляция с Вашими ключами - тот же результат. CODE**** Build of configuration Debug for project UPKB-G **** make all compile main.o d:/gcc/arm-kgp-eabi_CETONIA/bin/arm-kgp-eabi-gcc -mcpu=cortex-m3 -mfloat-abi=soft -mthumb -Ofast -fomit-frame-pointer -finline-functions -ffunction-sections -fdata-sections -fgraphite -funroll-loops -flto=8 -ffat-lto-objects -ggdb3 -I . -I lto1.exe: warning: -fassociative-math disabled; other options take precedence lto1.exe: internal compiler error: in read_cgraph_and_symbols, at lto/lto.c:2960 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. lto-wrapper.exe: fatal error: d:\gcc\arm-kgp-eabi_CETONIA\bin\arm-kgp-eabi-gcc.exe returned 1 exit status compilation terminated. d:/gcc/arm-kgp-eabi_cetonia/bin/../lib/gcc/arm-kgp-eabi/5.1.0/../../../../arm-kgp-eabi/bin/ld.exe: error: lto-wrapper failed collect2.exe: error: ld returned 1 exit status make: *** [UPKB_G.elf] Error 1
  6. Цитата(klen @ Jun 2 2015, 11:42) вот каменный цветок... я ессесено немогу проверить запускаются ли бинари вообще... винды у нас в радиусе поражения ОМП не водятся http://www.klen.org/Files/DevTools/i686-kg....1.0_CETONIA.7z Большое спасибо, почти работает)) Код... make: *** [UPKB_G.elf] Error 1
  7. Цитата(klen @ Jun 1 2015, 11:27) а и не должен тож 64 битный 64 битный то хорошо работает? Да, компилятор компилирует) Меня поставили в тупик циферки х86 и 32 ... Думал, что на 32 бита тож пойдет. просто дома 64 бит операционка, а на работе 32. Придется ставить виртуалку.
  8. Цитата(klen @ May 25 2015, 20:25) свежак arm-kgp-eabi для хоста x86_64-kgp-mingw32 (mingw64) www.klen.org/Files/DevTools/x86_64-kgp-mingw32/arm-kgp-eabi_@_x86_64-kgp-mingw32_20150525_BUPRESTIDAE.7z Не работает под 32 битной вендой( только под 64...
  9. USB device на TE-AM1705

    Цитата(gormih @ Mar 25 2014, 11:14) Так не пойдет. Сделайте (М) Вам не помешало бы изучить архитектуру ядра, в том числе что такое spinlock и.т.д. Для начала. Рекомендую книгу Роберата Лава. ISBN 5-8459-1085-1 Вы бы не могли пояснить, почему в данном случае (*) не подходит и причем здесь spinlock?
  10. USB device на TE-AM1705

    Цитата(gormih @ Mar 24 2014, 13:40) Ну в данном случае я бы делал так: 1) Через конфиг ядра нашел бы, какие модули в него добавились. 2) В эти модули понатыкал побольше диагностических kprint И еще вопрос - там у вас это serial модулем включено в ядро? (M) или (*) ? Включено как (*). Я еще не могу понять, почему контроллер никак не реагирует на запись битов в управляющий регистр... Как переключать режимы работы на лету?
  11. USB device на TE-AM1705

    Цитата(gormih @ Mar 24 2014, 13:20) Можно пояснить? Что хочется добиться в конечном итоге? Сделать любой абы-какой usb-device, который лишь бы определялся в другой системе? Ну я же написал, что нужно хотя бы сделать рабочий СОМ-порт... Понять, как из линукс-устройства сделать девайс.
  12. USB device на TE-AM1705

    Всем здравствуйте. Операционная система - Linux, ядро 3.2.1. Как хост работает отлично, флешки читает. Теперь задача запустить как девайс, чтобы при подключении к компутеру хотя бы работал как виртуальный ком-порт (программа минимум). Из дата-шита становится понятно, что у проца есть ножка OTG, которой и определяется режим работы усб. Но не тут то было - в реальности эта ножка отсустсвует( и ряд других). Теперь режим работы усб задается записью волшебных циферок в специальный регистр. Тут-то и начинается веселье. Сначала пытался переключить процессор в режим гаджета с помощью записи в регистр CFGCHIP2 в поле USB0OTGMODE значения 2. (Для этого был написан отдельный маленький модуль ядра.) В этом случае видимого эффекта не наблюдалось, т.е. плата продолжала видеть флешку, а при соединении с компьютером просто ничего не происходило. После этого попробовал включить режим гаджета при инициализации (без своего вспомогательного модуля). Для этого в файле board-da830-evm.c в функции da830_evm_usb_init() вместо установки CFGCHIP2_FORCE_HOST сделал установку CFGCHIP2_FORCE_DEVICE. В результате плата загружается, но при соединении с компютером по USB плата виснет. Конфигурация ядра такая: DeviceDrivers -> Inventra Highspeed Dual Role Controller DeviceDrivers -> USB Gadget Support DeviceDrivers -> USB Gadget Support -> USB Pripheral Controller -> Inventra... DeviceDrivers -> USB Gadget Support -> USB Pripheral Controller -> USB Gadget Drivers -> Serial Gadget... Вот лог, если о чем-нибудь скажет КодUnable to handle kernel NULL pointer dereference at virtual address 00000004     pgd = c0004000                                                                   [00000004] *pgd=00000000                                                         Internal error: Oops: 17 [#1] PREEMPT                                           Modules linked in:                                                               CPU: 0    Not tainted  (3.2.1-MAK4M-18.12.13-13:09+ #158)                       PC is at musb_g_giveback+0x8/0x90                                               LR is at musb_g_ep0_irq+0x1b8/0x900                                             pc : [<c020db34>]    lr : [<c020cae4>]    psr: 80000093                         sp : c03efe90  ip : 00000000  fp : 00000001                                     r10: 00000001  r9 : c04459f4  r8 : fee00400                                     r7 : fee00500  r6 : c1812328  r5 : fee00500  r4 : ffffffd8                       r3 : c181239c  r2 : 00000000  r1 : ffffffd8  r0 : c1812354                       Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel             Control: 0005317f  Table: c1bc8000  DAC: 00000017                               Process swapper (pid: 0, stack limit = 0xc03ee270)                               Stack: (0xc03efe90 to 0xc03f0000)                                               fe80:                                     c18120f0 fee00500 c1812328 c020cae4   fea0: 00000002 06800093 00000100 c0030040 00000002 c18120f0 00000008 00000099   fec0: 00000099 00000000 00000000 c020bd6c 0acd0000 00989680 c18120f0 fee00000   fee0: 40000093 00000228 00000000 c04459f4 c03fc080 c0211580 c1882940 c1882940   ff00: 00000000 00000000 0000003a c0051c70 20000093 0000001f b357dd0b c03fc080   ff20: c1882940 00000000 c03effa4 c0004000 41069265 c03e21c0 00000000 c0051e1c   ff40: 00000000 c03fc080 0000003a c0054628 c04054d8 c0051588 000000f5 c0009c8c   ff60: c0009db0 60000013 febfd000 c0009038 00000000 0005317f 0005217f 60000013   ff80: c03ee000 c0416c64 c03f38f0 c03f3a74 c0004000 41069265 c03e21c0 00000000   ffa0: 600000d3 c03effb8 c0009da4 c0009db0 60000013 ffffffff c0009d84 c0009fb4   ffc0: c03ee000 c03f08dc c03e357c c04b91c0 c03f38e8 c03c6734 c03c6164 00000000   ffe0: 00000000 c03e357c 00053175 c03f0014 c03e3578 c0008040 00000000 00000000   [<c020db34>] (musb_g_giveback+0x8/0x90) from [<c020cae4>] (musb_g_ep0_irq+0x1b8) [<c020cae4>] (musb_g_ep0_irq+0x1b8/0x900) from [<c020bd6c>] (musb_interrupt+0x1) [<c020bd6c>] (musb_interrupt+0x114/0x8a8) from [<c0211580>] (da8xx_musb_interru) [<c0211580>] (da8xx_musb_interrupt+0xec/0x1f8) from [<c0051c70>] (handle_irq_ev) [<c0051c70>] (handle_irq_event_percpu+0x50/0x1ac) from [<c0051e1c>] (handle_irq) [<c0051e1c>] (handle_irq_event+0x50/0x78) from [<c0054628>] (handle_edge_irq+0x) [<c0054628>] (handle_edge_irq+0x94/0x180) from [<c0051588>] (generic_handle_irq) [<c0051588>] (generic_handle_irq+0x2c/0x40) from [<c0009c8c>] (handle_IRQ+0x30/) [<c0009c8c>] (handle_IRQ+0x30/0x84) from [<c0009038>] (__irq_svc+0x38/0x8c)     [<c0009038>] (__irq_svc+0x38/0x8c) from [<c0009db0>] (default_idle+0x2c/0x30)   [<c0009db0>] (default_idle+0x2c/0x30) from [<c0009fb4>] (cpu_idle+0xd0/0xfc)     [<c0009fb4>] (cpu_idle+0xd0/0xfc) from [<c03c6734>] (start_kernel+0x2b4/0x30c)   Code: e8bd8010 c04464ac e92d4070 e1a04001 (e591302c)                             ---[ end trace 97082fc892390b45 ]---                                             Kernel panic - not syncing: Fatal exception in interrupt                         [<c000d864>] (unwind_backtrace+0x0/0xf0) from [<c02ca01c>] (panic+0x60/0x198)   [<c02ca01c>] (panic+0x60/0x198) from [<c000c144>] (die+0x150/0x200)             [<c000c144>] (die+0x150/0x200) from [<c000e818>] (__do_kernel_fault+0x64/0x84)   [<c000e818>] (__do_kernel_fault+0x64/0x84) from [<c000e984>] (do_page_fault+0x1) [<c000e984>] (do_page_fault+0x14c/0x1f0) from [<c0008608>] (do_DataAbort+0x30/0) [<c0008608>] (do_DataAbort+0x30/0x9c) from [<c0008fd8>] (__dabt_svc+0x38/0x60)   Exception stack(0xc03efe48 to 0xc03efe90)                                       fe40:                   c1812354 ffffffd8 00000000 c181239c ffffffd8 fee00500   fe60: c1812328 fee00500 fee00400 c04459f4 00000001 00000001 00000000 c03efe90   fe80: c020cae4 c020db34 80000093 ffffffff                                       [<c0008fd8>] (__dabt_svc+0x38/0x60) from [<c020db34>] (musb_g_giveback+0x8/0x90) [<c020db34>] (musb_g_giveback+0x8/0x90) from [<c020cae4>] (musb_g_ep0_irq+0x1b8) [<c020cae4>] (musb_g_ep0_irq+0x1b8/0x900) from [<c020bd6c>] (musb_interrupt+0x1) [<c020bd6c>] (musb_interrupt+0x114/0x8a8) from [<c0211580>] (da8xx_musb_interru) [<c0211580>] (da8xx_musb_interrupt+0xec/0x1f8) from [<c0051c70>] (handle_irq_ev) [<c0051c70>] (handle_irq_event_percpu+0x50/0x1ac) from [<c0051e1c>] (handle_irq) [<c0051e1c>] (handle_irq_event+0x50/0x78) from [<c0054628>] (handle_edge_irq+0x) [<c0054628>] (handle_edge_irq+0x94/0x180) from [<c0051588>] (generic_handle_irq) [<c0051588>] (generic_handle_irq+0x2c/0x40) from [<c0009c8c>] (handle_IRQ+0x30/) [<c0009c8c>] (handle_IRQ+0x30/0x84) from [<c0009038>] (__irq_svc+0x38/0x8c)     [<c0009038>] (__irq_svc+0x38/0x8c) from [<c0009db0>] (default_idle+0x2c/0x30)   [<c0009db0>] (default_idle+0x2c/0x30) from [<c0009fb4>] (cpu_idle+0xd0/0xfc)     [<c0009fb4>] (cpu_idle+0xd0/0xfc) from [<c03c6734>] (start_kernel+0x2b4/0x30c) Очень надеюсь на помощь, тк что делать дальше совершенно не представляю...
  13. Вопросы по U-boot

    Всем спасибо большое за ответы, стал ковырять исходники и читать доки, более менее разобрался... Но уж очень мудреный загрузчик. Про иконки я говорил, когда открываешь папку в линуксе(гуй гном), графическое отображение файлика.
  14. Вопросы по U-boot

    В данный момент осваиваю линукс на АРМе9 TI AM1705. У меня есть даже не знаю какой версии исходник убута, вродебы, он шел вместе с диском от терраэлектроники на отладку TE-AM1705v2. После компиляции он выдает несколько файлов, среди которых есть бинарник и файл без расширения u-boot, в свойствах которого написано, что он является исполняемым(даже иконка другая). Этот файл далее скармливается утилите AISGen от техасов и на выходе получаем готовый файл .ais для загрузки в память проца. Это было вступление, а теперь проблема. Скачал исходники свежего убута, стал собирать из них убут под свою плату, на выходе получаю тоже несколько файлов, среди которых теже бинарник и и файл без расширения u-boot. Но! Этот убут аисген принимать не хочет, и в описании файла уже написано, что он не исполняемый, а разделяемая библиотека(без иконки)!!! Подскажите, пожалуйста, что мне делать, где и что прописать, чтобы на выходе получать убут в нужном мне виде... От исходников убута у меня уже мозг кипит. Или можно получить выходной файл убута, готовый для загрузки в память безо всяких утилит?