Eger 0 14 апреля, 2008 Опубликовано 14 апреля, 2008 · Жалоба EALLOW; ............... EIDS; сорри ерунду написал это для доступа к защищённым регистрам немного оффтоп ) Все равно LF2407A я считаю очень удачным решением техаса, нравится мне он ) Да, они неплохи, реально тяжело найти альтернативу, за её цену. Хотя я о 2401. 07 дороговата. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rv3dll 0 18 апреля, 2008 Опубликовано 18 апреля, 2008 · Жалоба 2406 тоже иногда часть памяти вылетала через пару сотен раз арм - сигнальник никакой!!!!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stepserg 0 4 мая, 2008 Опубликовано 4 мая, 2008 · Жалоба Меня тоже очень смутили цифры 100 (минимум) и 1000 (типовое). Долгое время отлаживал прогу перепрошивая флешь (пока не пришел долгожданный jtag-эмулятор). Флешка TMS320F2810 не умерла :) Перепрошивал раз 300. Хотя это не много, конечно. Задавал вопрос напрямую в Texas Instruments по поводу флешки. Вот что они ответили (сначала мои вопросы - затем идут ответы инженера TI). ======================================================== >>>This processor is planned to use in one of our development (system control of two engines). In technical documentation processor TMS320F2810 (SPRS174N doc) on page 154 there is minimal (100) and nominal (1000) cycle recording/deleting Flash memory. Max cycles of rewritting is not mentioned. Why such a low number? Processors and microcontrollers from other manufacturers for example Microchip, Atmel amount of rewritting of Flash is several tens of thousands times. We have not performed a 10k W/E qualification on the F28xx products due to resource/schedule issues. Our expectation is that we would pass the qualification. >>>How do you suggest to debug software and not recording whole program in Flash memory? Using integrated RAM (L0,L1,H0)? On the F28x DSPs you have the possibility of setting two H/W breakpoints in Flash and debug it. . By default, CCS is setting these two breakpoints when you debug your code. In order to free up these two breakpoints to use them by you please make sure that the following two boxes are checked in CCS under Options -> Customize -> Program Load Options: 1. Check `Do not set CIO breakpoint at load.` 2. Check `Do not set end of program breakpoint at load.` With this settings, you should be able to use the two available H/W breakpoints. In CCS go to Debug -> Breakpoints and select H/W break, enter the line and file name for the breakpoint location. The steps are 1) flash programming 2) then you make a load symbol in CCS (with the .out-file) in order to be able to do symbolic debugging 3) then you can set the breakpoint The flash pipeline is implemented to accelerate the code execution out of the DSP internal flash memory. The flash has compared to the DSP speed a really long access time. i.e. CPU speed is 150MHz (cycle time 6.666ns); Flash access time is 36ns => It takes 36ns/6.666ns = 5.4 CPU cycles to do one fetch one instruction from the flash memory. Since 5.4 CPU cycles is not possible, we need to round it up to 6 CPU cycles. => So it takes 6 CPU cycles to do one access to the flash memory and therefore we need to setup in the wait state register 5 wait states to be added per flash access. This also means that code execution performance is dramatically reduced. In this example if you execute code out of flash memory, you will reach a performance of 150MHz/6 = 25MIPS. Compared to code execution from the internal RAM, there you can reach a performance of 150MIPS. In order to increase the performance out of the flash memory, we have implemented the flash pipeline which allows to fetch up to 64 bit of instructions in one access. This allows you by executing linear code out of the flash memory to multiply the performance by a maximum factor of 4 which leads to a performance of 100MIPS. Please note that we always advice to run time critical code like ISRs from the DSP internal RAM. The following app note might be interesting for you: Running an Application from Internal Flash Memory on the TMS320F28xx DSP (Rev. F) http://focus.ti.com/general/docs/techdocsa...ctName=spra958f Associated code examples is provided at same page as well. >>>During debugging of software, constantly rewritting Flash can just produce its resources. We have programmer SUP2000 from company SoftBaugh. This programmer unit meant for recording only Flash processor memory? Can we using this programmer record loader in RAM of processor? We do not have experience with SoftBaugh SUP2000. They offer a single unit which allows you only to program the DSP via the SCI interface before you put it on your board. In case you have more detailed questions to their solution, please contact them directly. ============================================================ Вот... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 6 мая, 2008 Опубликовано 6 мая, 2008 · Жалоба Странно они так ушли от конкретного ответа на вопрос "How do you suggest to debug software and not recording whole program in Flash memory?" начали рассказывать как отлаживать из флэш. Интересные такие ) На самом деле предпологается цеплять внешнюю память на XINTF и запускать из неё. Просто грузить туда код неудобно. По сути нужно, через JTAG, загрузить в RAM загрузчик байтиков во внешнюю память(предварительно сконфигурировав всё, для её успешной работы), а после копирования прыгнуть на нужный адрес. На eZdsp boards устанавливают 256KB offchip SRAM memory. Есть примерчик даже. Правда примитивный, но - обработчик прерывания находится во внешней памяти, при этом его "клон" так и остается висеть в RAM :) Но как пример годится, я думаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorek07 0 8 мая, 2008 Опубликовано 8 мая, 2008 · Жалоба Мне хватает вполне SARAM, ее расширяешь немного от стандартно выделенных, там не все разделы в карте памяти используются полностью, какие то области сокращаешь другие за счет них увеличиваешь. Поэтому мне пока хватает. Во когда с менюшкой и пультом придется работать видимо не хватит. придется во флэш писать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 20 мая, 2008 Опубликовано 20 мая, 2008 · Жалоба А мне уже не хватает! Люди, а может быть прямо с CCS во внешнюю память можно записать прогу?! Слинковать всё красиво, чтоб .text лежал в XINTF ZONE7 и load program! В GEL есть инициализация XINTF. прям через JTAG пропишет все регистры, а дальше простая запись в адрес такой-то и вперед! Что скажете? По-моему вполне реально! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lapunou 0 21 мая, 2008 Опубликовано 21 мая, 2008 · Жалоба Я для отладки программы на отладочной плате ezdsp tms320f2812 так и делаю. Там 64k word внешней памяти и я проект гружу прямо туда через JTAG как и во внутреннюю память. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 21 мая, 2008 Опубликовано 21 мая, 2008 · Жалоба В общем всё работает. Редактируем linker .cmd файл, .gel файлик, очень кстати, инициализирует XINTF перед загрузкой проги. Поначалу, когда наблюдал за GPIO регистрами, закомментировал эту функцию, а вот сейчас пришлось вернуть )) Для интересующихся, выкладываю свою версию XINTF_lnk.cmd MEMORY { PAGE 0 : /* BEGIN is used for the "boot to SARAM" bootloader mode */ /* BOOT_RSVD is used by the boot ROM for stack. */ /* This section is only reserved to keep the BOOT ROM from */ /* corrupting this area during the debug process */ BEGIN : origin = 0x200000, length = 0x000002 /* Boot to XINTF zone7A */ BOOT_RSVD : origin = 0x200002, length = 0x00004E /* Part of M0, BOOT rom will use this for stack changed for XINTF*/ RAML0123 : origin = 0x008000, length = 0x004000 /*Together*/ /* RAML1 : origin = 0x009000, length = 0x001000 */ /* RAML2 : origin = 0x00A000, length = 0x001000 */ /* RAML3 : origin = 0x00B000, length = 0x001000 */ ZONE7A : origin = 0x200050, length = 0x03F7B0 /* XINTF zone 7 - program space */ CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */ CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */ ADC_CAL : origin = 0x380080, length = 0x000009 RESET : origin = 0x3FFFC0, length = 0x000002 IQTABLES : origin = 0x3FE000, length = 0x000b50 IQTABLES2 : origin = 0x3FEB50, length = 0x00008c FPUTABLES : origin = 0x3FEBDC, length = 0x0006A0 BOOTROM : origin = 0x3FF27C, length = 0x000D44 PAGE 1 : RAMM01 : origin = 0x000050, length = 0x0007B0 /* RAMM1 : origin = 0x000400, length = 0x000400 */ RAML4567 : origin = 0x00C000, length = 0x004000 /*together*/ /* RAML5 : origin = 0x00D000, length = 0x001000 RAML6 : origin = 0x00E000, length = 0x001000 RAML7 : origin = 0x00F000, length = 0x001000 */ ZONE7B : origin = 0x23F800, length = 0x000800 /* XINTF zone 7 - data space */ } SECTIONS { /* Setup for "boot to SARAM" mode: The codestart section (found in DSP28_CodeStartBranch.asm) re-directs execution to the start of user code. */ codestart : > BEGIN, PAGE = 0 ramfuncs : > RAML0123, PAGE = 0 .text : > ZONE7A, PAGE = 0 /*all code in external RAM*/ .cinit : > ZONE7A, PAGE = 0 .pinit : > ZONE7A, PAGE = 0 .switch : > RAML0123, PAGE = 0 .stack : > RAMM01, PAGE = 1 .ebss : > RAML4567, PAGE = 1 /*here, we use internal RAM*/ .econst : > RAML4567, PAGE = 1 .esysmem : > RAML4567, PAGE = 1 IQmath : > RAML0123, PAGE = 0 IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD /* DMARAML4 : > RAML4, PAGE = 1 DMARAML5 : > RAML5, PAGE = 1 DMARAML6 : > RAML6, PAGE = 1 DMARAML7 : > RAML7, PAGE = 1*/ ZONE7DATA : > ZONE7B, PAGE = 1 .reset : > RESET, PAGE = 0, TYPE = DSECT /* not used */ csm_rsvd : > CSM_RSVD PAGE = 0, TYPE = DSECT /* not used for SARAM examples */ csmpasswds : > CSM_PWL PAGE = 0, TYPE = DSECT /* not used for SARAM examples */ /* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */ .adc_cal : load = ADC_CAL, PAGE = 0, TYPE = NOLOAD } Много лишнего мусора, также, кажется не вся внутренняя оперативка используется, но чистить окончательно было лень. Главное сам смысл - циферки каждый сам подставит :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorek07 0 22 мая, 2008 Опубликовано 22 мая, 2008 · Жалоба Так я же вам отвечал что просто расширяете участки карты памяти под которые не хвататет за счет недоиспоьзующихся. Поэтому вполне можно обойтись оперативой, главное нельзя лезть в защищенные зоны, ибо будут ошибки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 23 мая, 2008 Опубликовано 23 мая, 2008 · Жалоба Не хватает мне оперативки как ни крути! То, о чём вы писали, я проделывал раньше, но после сборки speex, секция .text уже никуда не вмещалась. Пришлось мудрить с XINTF.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kamil_yaminov 1 23 мая, 2008 Опубликовано 23 мая, 2008 (изменено) · Жалоба Чтобы не плодить тем, напишу свой вопрос сюда: как правильно зашиь крнстанты во флешь процессора LF2407A, чтобы с ними можно было нормально работать. В хелпе нашел пример, где опичано каким образом подправить библиотеку rts2xx.lib чтобы константы при загрузке автоматически копировались в ОЗУ, проделанные манипуляции не сильно помогли. Знаю что есть такая вещь как pfunc. Как кто решает проблему? Изменено 23 мая, 2008 пользователем kamil yaminov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 28 мая, 2008 Опубликовано 28 мая, 2008 · Жалоба 2 kamil yaminov Не темы плодите, так оффтоп ) Ответы на оффтоп плодят флуд. Мне кажется лучше уж создать тему)) /*Поможем модераторам! Скажем нет оффтопу и флуду. А сам-то я какраз и нафлудил вот сейчас */ А вообще вопрос лучше конкретизировать(а что, щас не нормально с ними работается??) и делать это уж точно не в этой ветке. Тут про TMS320F28xx flash и всё, что связано с её ресурсом)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VyV 0 29 мая, 2008 Опубликовано 29 мая, 2008 · Жалоба Не хватает мне оперативки как ни крути! То, о чём вы писали, я проделывал раньше, но после сборки speex, секция .text уже никуда не вмещалась. Пришлось мудрить с XINTF.... Я уже почти год работаю с одним процессором (2808). По началу всячески экономил ресурс флешки пока программа помещалась в оперативку. Сейчас количество перезаписей уже за 500. Вообще эту проблему удалось частично решить при помощи конструктивных ухищрений – был изготовлен общий для всех изделий модуль, на котором расположены: процессор, стабилизаторы напряжений, резонатор и пара разъемов по 40 контактов. В случае отказа флешки на проце будет просто заменен модуль. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lapserdak 0 29 мая, 2008 Опубликовано 29 мая, 2008 · Жалоба Господа, а загляните сюда, пожалуйста. Очень помощь нужна... http://electronix.ru/forum/index.php?showtopic=48546 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться