anna1979 0 2 августа, 2012 Опубликовано 2 августа, 2012 · Жалоба Есть отладка с kintex7 kc705. Написал простенькую программу на си мигания светодиода и вывода надписи через rs232. Если прошиваю эту программу в брам все работает, если в настройках линкер скрипта указываю ддр3 то после прошивки программа не работает. Версия ise 13_4. Помогите, что я не так делаю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Opex 0 2 августа, 2012 Опубликовано 2 августа, 2012 · Жалоба Внешняя память, вообще, работает? Проверяли каким-нибудь мемтестом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Apast 0 2 августа, 2012 Опубликовано 2 августа, 2012 · Жалоба Есть отладка с kintex7 kc705. Написал простенькую программу на си мигания светодиода и вывода надписи через rs232. Если прошиваю эту программу в брам все работает, если в настройках линкер скрипта указываю ддр3 то после прошивки программа не работает. Версия ise 13_4. Помогите, что я не так делаю? А как она туда попадет. Это надо загрузчик который вычитает программу из (загрузочной памяти, флаш и пр.) и загрузит ее в ДДР, а затем передаст управление туда. С брам проще программа там гразиться вместе с прошивкой, т.е. она находится в прошивке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anna1979 0 2 августа, 2012 Опубликовано 2 августа, 2012 · Жалоба А разве через XMD консоль программа не может быть загружена прямо в ддр? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex77 4 2 августа, 2012 Опубликовано 2 августа, 2012 · Жалоба А разве через XMD консоль программа не может быть загружена прямо в ддр? временно - да. (проверено на edk 12.4) Но автор задал вопрос без объяснений что ему надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anna1979 0 2 августа, 2012 Опубликовано 2 августа, 2012 · Жалоба Извините, не уточнил, пробую разбираться с отладочной платой, пишу простые программы и гружу через xmd консоль прямо из SDK. Может какие-нибудь настройки забыл указать, кроме линкер скрипта. Аппаратная платформа взята готовая в EDK просто выбрал отладочную кс705. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 2 августа, 2012 Опубликовано 2 августа, 2012 · Жалоба Вообще, после загрузки программы в DDR через XMD работать она должна. Стоит проверить, что: - DDR доступна (пишется/читается в XMD, причем читается то, что туда записали); - процессор (microblaze?) имеет доступ к DDR на исполнение (есть доступ через порт IC, диапазон разрешен для работы кэша программ); - линкер компонует программу в нужные адреса. Кстати, вместо простых программ мигания светодиодом можно всунуть в BRAM целый u-boot - дела пойдут значительно веселее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anna1979 0 3 августа, 2012 Опубликовано 3 августа, 2012 (изменено) · Жалоба Внешняя память, вообще, работает? Проверяли каким-нибудь мемтестом? Сегодня проверил, в тесте память работает В консоли выдается такое при загрузке и запуске из ддр3 XMD% connect mb mdm JTAG chain configuration -------------------------------------------------- Device ID Code IR Length Part Name 1 33651093 6 XC7K325T MicroBlaze Processor Configuration : ------------------------------------- Version............................8.20.b Optimization.......................Performance Interconnect.......................AXI-LE MMU Type...........................No_MMU No of PC Breakpoints...............1 No of Read Addr/Data Watchpoints...0 No of Write Addr/Data Watchpoints..0 Instruction Cache Support..........on Instruction Cache Base Address.....0xc0000000 Instruction Cache High Address.....0xc7ffffff Data Cache Support.................on Data Cache Base Address............0xc0000000 Data Cache High Address............0xc7ffffff Exceptions Support................off FPU Support.......................off Hard Divider Support...............off Hard Multiplier Support............on - (Mul32) Barrel Shifter Support.............on MSR clr/set Instruction Support....on Compare Instruction Support........on Data Cache Write-back Support......off Fault Tolerance Support............off Stack Protection Support...........off Connected to "mb" target. id = 0 Starting GDB server for "mb" target (id = 0) at TCP port no 1235 XMD% dow empty_cpp_0/debug/empty_cpp_0.elf Downloading Program -- empty_cpp_0/debug/empty_cpp_0.elf section, .vectors.reset: 0x00000000-0x00000007 section, .vectors.sw_exception: 0x00000008-0x0000000f section, .vectors.interrupt: 0x00000010-0x00000017 section, .vectors.hw_exception: 0x00000020-0x00000027 section, .text: 0xc0000000-0xc0000ecb section, .init: 0xc0000ecc-0xc0000f07 section, .fini: 0xc0000f08-0xc0000f23 section, .ctors: 0xc0000f24-0xc0000f2b section, .dtors: 0xc0000f2c-0xc0000f33 section, .rodata: 0xc0000f34-0xc0001331 section, .sdata2: 0xc0001332-0xc0001337 section, .data: 0xc0001338-0xc0001473 section, .eh_frame: 0xc0001474-0xc0001477 section, .jcr: 0xc0001478-0xc000147b section, .bss: 0xc0001480-0xc00014a3 section, .heap: 0xc00014a4-0xc00018a7 section, .stack: 0xc00018a8-0xc0001ca7 Setting PC with Program Start Address 0x00000000 System Reset .... DONE XMD% run RUNNING> 0 XMD% state -------------------------------------------------------- System(1) - Hardware System on FPGA(Device 1) Targets: -------------------------------------------------------- Blocked on Mem Instr Target(0) - MicroBlaze(1) Debug Target* XMD% XMD% rst System reset successfully 0 XMD% run ERROR: Debug Operation Not Supported on the Target MicroBlaze Pipeline Stalled on a Blocking Instruction or Invalid Bus Access Stalled PC: 0x00000008 Try Resetting the Processor to Continue.. Изменено 3 августа, 2012 пользователем electronik1979 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fox12 0 3 августа, 2012 Опубликовано 3 августа, 2012 · Жалоба electronik1979, исходя из того что Вы представили: section, .vectors.reset: 0x00000000-0x00000007 section, .vectors.sw_exception: 0x00000008-0x0000000f section, .vectors.interrupt: 0x00000010-0x00000017 section, .vectors.hw_exception: 0x00000020-0x00000027 и section, .text: 0xc0000000-0xc0000ecb Вам следует указать в lscript.ld адреса векторов сброса, прерывания и обработчиков исключений, так что-бы они располагались не в BRAM (0x00000000), а начиная с 0xС0000000 (там где адресуется ваша DDR3). SECTIONS { .vectors.reset 0xС0000000 : { *(.vectors.reset) } .vectors.sw_exception 0xС0000008 : { *(.vectors.sw_exception) } .vectors.interrupt 0xС0000010 : { *(.vectors.interrupt) } .vectors.hw_exception 0xС0000020 : { *(.vectors.hw_exception) } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anna1979 0 6 августа, 2012 Опубликовано 6 августа, 2012 (изменено) · Жалоба electronik1979, исходя из того что Вы представили: и Вам следует указать в lscript.ld адреса векторов сброса, прерывания и обработчиков исключений, так что-бы они располагались не в BRAM (0x00000000), а начиная с 0xС0000000 (там где адресуется ваша DDR3). А не подскажете, где можно поменять эти параметры, в линкер скрипте что-то не получается electronik1979, исходя из того что Вы представили: и Вам следует указать в lscript.ld адреса векторов сброса, прерывания и обработчиков исключений, так что-бы они располагались не в BRAM (0x00000000), а начиная с 0xС0000000 (там где адресуется ваша DDR3). А не подскажете, где можно поменять эти параметры, в линкер скрипте что-то не получается. Вы уверены что эти адреса надо менять, у меняесть пример xapp472 так там программа храниться в ддр3 а адреса этих секций такие же Изменено 6 августа, 2012 пользователем electronik1979 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex77 4 6 августа, 2012 Опубликовано 6 августа, 2012 · Жалоба electronik1979, исходя из того что Вы представили: и Вам следует указать в lscript.ld адреса векторов сброса, прерывания и обработчиков исключений, так что-бы они располагались не в BRAM (0x00000000), а начиная с 0xС0000000 (там где адресуется ваша DDR3). Этого совершенно не надо делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anna1979 0 6 августа, 2012 Опубликовано 6 августа, 2012 · Жалоба Добавил в проект файлы platform.c и platform.h и программа стала запускаться, при выполнении по шагам в консоли почему-то указывается одна и та же команда add r0 , r0 , r0 . Что это может значить? XMD% stp C0000074: 00000070 add r0 , r0 , r0 XMD% stp C0000078: 00000078 add r0 , r0 , r0 XMD% stp C000007C: 00000078 add r0 , r0 , r0 XMD% stp 2 C0000084: 00000080 add r0 , r0 , r0 XMD% stp C0000088: 00000088 add r0 , r0 , r0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anna1979 0 9 августа, 2012 Опубликовано 9 августа, 2012 · Жалоба Спасибо всем за ответы, я толком не разобрался в чем была проблема, но взяв новую аппаратную платформу от примера kc705_bist программа стала запускаться из ДДР. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться