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

QuadMan

Свой
  • Постов

    97
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о QuadMan

  • Звание
    Частый гость
    Частый гость

Контакты

  • ICQ
    Array

Посетители профиля

1 500 просмотров профиля
  1. Пытаюсь для ускорения работы ПО, после загрузки проца, копировать области из внутренней FLASH в RAM и работать уже оттуда. Все делаю по мануалу (Copying Compiler Sections From Flash to RAM on the TMS320F28xxx DSCs (SPRAAU8A)). Но получается какая-то ерунда. После старта, код из загрузчика не выходит... думаю, что какая-то проблема с тем, что у меня cpp код, с классами, а в документации пример приведен для обычного сишного кода. Может быть кто-то закидывал CPP код в RAM... подскажите, как это правильно делать.
  2. Продолжаю разбираться... может поможете. Итак, запускаю GRMON с опцией GDB, все нормально - Started GDB service on port 2222. Далее запускаю вручную sparc-gaisler-elf-gdb: выдаю команды: 1. file t4.elf - загружаю программу 2. dir C:/opt/bcc-2.1.1/src/libbcc/shared/trap - добавляю правильной путь для поиска файла trap_table_mvt.S (иначе он его ищет по /opt/bcc-2.1.1-gcc/src/libbcc/shared/trap/trap_table_mvt.S: No such file or directory - и естественно не находит) 3. target extended-remote localhost:2222 - при выдаче этой команды на подключение к GRMON - в окне GRMON выдается сообщение ERROR! FPU not found. C:\opt\bcc-2.1.1\bin>sparc-gaisler-elf-gdb GNU gdb (GDB) 8.2.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=x86_64-w64-mingw32 --target=sparc-gaisler-elf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". (gdb) file t4.elf Reading symbols from t4.elf...done. (gdb) dir C:/opt/bcc-2.1.1/src/libbcc/shared/trap Source directories searched: C:/opt/bcc-2.1.1/src/libbcc/shared/trap;$cdir;$cwd (gdb) target extended-remote localhost:2222 Remote debugging using localhost:2222 __bcc_entry_point () at /opt/bcc-2.1.1-gcc/src/libbcc/shared/trap/trap_table_mvt.S:82 82 RESET_TRAP(__bcc_trap_reset_mvt); ! 00 reset (gdb) GRMON debug monitor v3.2.2 64-bit eval version Copyright (C) 2020 Cobham Gaisler - All rights reserved. For latest updates, go to http://www.gaisler.com/ Comments or bug-reports to [email protected] This eval version will expire on 28/09/2020 Started GDB service on port 2222. GRLIB build version: 4251 Detected frequency: 24.0 MHz Component Vendor LEON3 SPARC V8 Processor Cobham Gaisler AHB Debug UART Cobham Gaisler JTAG Debug Link Cobham Gaisler AHB/APB Bridge Cobham Gaisler LEON3 Debug Support Unit Cobham Gaisler LEON2 Memory Controller European Space Agency Single-port AHB SRAM module Cobham Gaisler Generic UART Cobham Gaisler Multi-processor Interrupt Ctrl. Cobham Gaisler Modular Timer Unit Cobham Gaisler General Purpose I/O port Cobham Gaisler Use command 'info sys' to print a detailed report of attached cores ERROR! FPU not found Вот из-за чего в момент выдачи команды target ... может вылетать такая ошибка в GRMON?
  3. В итоге немного разобрался. Программа, действительно, компилируется корректно и без FPU. Никаких дополнительных библиотек не требует. Через grmon удалось загрузить elf-файл и запустить его - все работает. Ошибка возникает только при попытке начать отладку через eclipse. Отлаживаемся через UART пока. Не подскажете, в чем здесь может быть проблема? И вообще, через что проще программу отлаживать?
  4. Программа самая простая: int main(void) { volatile char i = 0; while (1) { i++; } return 0; } Опции компилятора: -c -fmessage-length=0 -qbsp=leon3 -qnano -msoft-float Опции линковщика: -qbsp=leon3 -qnano -msoft-float Подключаю библиотеки gcc, bcc из директории \lib\gcc\sparc-gaisler-elf\7.2.0\leon3\soft. Из других тоже пробовал, где soft прописано. Ничего не получается. Может нужно какие-то из флагов -nostartfiles, -nodefaultlibs, -nostdlib использовать? При попытке запуска отладки такой программы GRMON пишет ERROR! FPU not found
  5. Подскажите, кто знает. Пытаюсь запустить LEON3, бесплатную версию, которая без поддержки FPU. Как при компиляции простейшей программы в Eclipse указать, чтобы она собралась без поддержки FPU. Флаги -msoft-float для компилятора и линкера выставил. Подозреваю, что проблем в стандартной библиотеке, которая по-умолчанию с FPU... но как получить библитеку без FPU?
  6. STM32F429 + SDRAM + Keil

    Ok, периферию я переделал на указатели, не сложно. Но у меня есть еще большой массив данных, который я храню во внешней памяти. Атрибут zero_init в компиляторе версии 6.6 не распознается, хотя это, похоже, именно то, что нужно. :(((
  7. STM32F429 + SDRAM + Keil

    Подниму тему, никак не могу понять одну вещь. Использую Keil, ARM Compiler V6.6. Вот есть у меня внешняя периферия, которая начинается с адреса 0x50000000 к примеру. Объявляю структуру volatile __attribute__((section(".ARM.__at_0x50000000"))) SystemRegs REGS; Программа загружается во внешнюю память по адресу 0x10000000 и оттуда работает в scatter файле пишу LR_IROM1 0x10000000 0x0000C800 { ; load region size_region ER_IROM1 0x10000000 0x0000C800 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) *(.init_array) ; Section .init_array must be placed explicitly, ; otherwise it is shared between two regions, and ; the linker is unable to decide where to place it. } RW_IRAM1 0x20000000 UNINIT 0x0008000 { ; RW data .ANY (+RW +ZI) } ER_PERIPHERAL 0x50000000 UNINIT 0x1000 { *(.ARM.__at_0x50000000) } } Теперь после запуска отладчика, программа валится в MemoryMngFault, судя по всему при отработке функции _decompress системной библиотеки. Если убрать секцию ER_PERIPHERAL из scatter файла, и в определении переменной REGS, все компилится и запускается нормально, но REGS, естественно, располагается во внутренней памяти. Отсюда я делаю вывод, что при загрузке компилятор пытается проинициализировать переменную REGS во внешней памяти, хотя доступ к ней еще не настроен, поэтому и валится в HardFault. Но, ведь я указал, что эта область UNINIT, зачем он вообще туда лезет? И как правильно это дело настроить? Через указатели не очень хочется.
  8. Подскажите, пожалуйста, есть ли ПО под WINDOWS, чтобы создать файл прошивки для 5578ТС024? И где его можно достать? Спасибо.
  9. Спасибо всем за ответы. Буду разбираться.
  10. Добрый день! Подскажите пожалуйста, использую процессор TMS320F2812, нужно работать с числами с плавающей точкой. Использую Code Composer. Для этого в настройках проекта выставляю specify floating point support - fpu32, подключаю соответствующую библиотеку rts2800_fpu32.lib, после этого при попытке отладить пустую программу, я даже не попадаю в точку входа main. Если же использовать rts2800_ml.lib, то все нормально работает. Это что значит - я что-то не так настроил или в этом процессоре нельзя подключать эту библиотеку, так как он не поддерживает аппаратно плавающую точку? И еще, смотрю описание C/C++ Optimizing Compiler, там написано, что есть еще 64 битный тип long double и есть параметр --float_support={fpu64} - но я такого у себя в настройках компилятора не вижу. Хотя версия последняя 6.4.6. Спасибо
  11. Подскажите пожалуйста, использую процессор TMS320F2812, нужно работать с числами с плавающей точкой. Использую Code Composer. Для этого в настройках проекта выставляю specify floating point support - fpu32, подключаю соответствующую библиотеку rts2800_fpu32.lib, после этого при попытке отладить пустую программу, я даже не попадаю в точку входа main. Если же использовать rts2800_ml.lib, то все нормально работает. Это что значит - я что-то не так настроил или в этом процессоре нельзя подключать эту библиотеку, так как он не поддерживает аппаратно плавающую точку? Спасибо
  12. Понятно. Т.е. получается, завязываться на ID для проверки смысла нет, так как значения там не фиксированы... жаль.
  13. Добрый день. Подскажите, пожалуйста - работаем с микросхемами фирмы Micron - MT29F128G08AJAAA. После подачи питания считываем ID микросхемы для проверки работоспособности. При считывании ID командой READ ID с 0 адресом, для одного и того же типа микросхем, но разных партий (видимо), считываются разный ID. К примеру, у части микросхем - 2C, 88, 4, 4B, A9, у других микросхем - 2C,88,1,A7,A9, бывает также - 2C, 88, 5, C6, 89. В даташите в одном месте написано, что идентификатор содержит "manufacturer ID, device configuration, and part-specific information", но не приведено на каком месте что находится. При этом далее в даташите приведена таблица с фиксированными значениями ID для нашей микросхемы: 2C, 88, 1, A7, A9. Кому верить? Получается, фиксированного ID нет? Спасибо.
  14. Модель SMJ320F2812HFGM150 - это керамический F2812. Адреса бывают разные, то 0x8000, то другой (уже не помню) Сейчас откатился на CCS 5.5 (и TI Emulation Package 5.1.232) все работает отлично... вот и думаю..
×
×
  • Создать...