Отговори на тема  [ 21 мнения ]  Отиди на страница 1, 2  Следваща
Проблеми с управлението на външна RAM с компилатор MCC18 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Апр 12, 2006 10:20 am
Мнения: 41
Местоположение: gr.Plovdiv
Мнение Проблеми с управлението на външна RAM с компилатор MCC18
Има ли някой с опит с управление на външна RAM с компилатора на microchip mcc18?В момента изграждам база от данни във външна RAM от типа 62100 за процесор pic18c801.При отчаяните ми опити открих следните грешки ,които допуска компилаторът:
1.Компилаторът различава указателите декларирани за RAMа на процесора и такива декларирани за външната област(тези създадени с детективата ROM).Има пълна несъвместимост мейду двата типа.Това е така ,заштото за първия компилаторът заделя 2 байта,като може да адресира област до 64kBt,а за втория заделя 3 байта,като може да адресира до 1.67MBt.Моята база е разположена на адрес над 64кBt и следователно ползувам втория тип указатели.
2.Не мога да създам структури за външната област ,заштото надежният запис в тях е невъзможен.Това естествено е следствие и нагорната точка.
3.Компилаторът греши и при деклариране на следния код:
rom far unsigned int *data_ptr
unsigned int br
data_ptr = data_ptr + br;
Грешката се получава при преизчисляване на адреса извън 64kBt област.
4.Компилаторът не може да управлява динамично външна RAM .Това е много съштествен недостатък що се касае за качествено управление на RAMa.
Програмирането с този компилатор по-специално ,що се касае за бази от данни е много трудно.
Може ли някой да ми посочи компилатор,при който тези проблеми са отстранени и може да се програмира много по лесно.

_________________
tig072


Сря Апр 12, 2006 12:52 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Сблъсках се с проблемите които изтъкваш преди 2 години. И тогава решение нямаше (писа се много по форумите и супорта). Предполагам че и сегашната версия на компилатора гледа на външния РАМ по начин различен от този на вътрешния (GPR).

По принцип PIC18 не е удачен за такова нещо, това се обуслява от хардварската му архитектура. Просто това си е контролер за управление. Бързи прости инструкции, бърз прост достъп до паметта, малко видове адресация. Това че се появиха процесори с изведена шина идеята беше да има повече място за код. Сам виждаш че е изведена шината за програмна памет, а не тази за бързите GPRs. А че може на тази външна шина да закачиш РАМ си е просто една добавка. Но тази памет по нищо не прилича на GPR. И понеже компилатора по презумпция смята че РАМ=GPR идват и всичките бели.

Но както казах архитектурата му е на контролер за управление, а не за бази данни.

Това което ти се опитваш да направиш приляга на Войнюмановата архитектура. Според мен най добре е да смениш процесора (има достатъчно евтини решения). А ако си вързан с конкретния процесор, не ти остава нищо друго освен да си направиш някакви тунелни функции които да ти работят с външната памет на ниско ниво, а приложението да комуникира с тях. Кофти решение ама не виждам друго. А и едва ли има компилатор за PIC18 който да менажира външната РАМ памет прозрачно за юзера.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Сря Апр 12, 2006 1:47 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Погледнах и в IAR-ския компилатор има ли нещо вградено в него по въпроса но и там няма. Цецо е съвсем прав.


Сря Апр 12, 2006 1:53 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Апр 12, 2006 10:20 am
Мнения: 41
Местоположение: gr.Plovdiv
Мнение Мерси за обстойния отговор!
Все пак кой просесор ми препоръчваш конкретно за моя случай? И кой компилатор съответно. Предварително благодаря за отговора Цецо!

_________________
tig072


Сря Апр 12, 2006 2:15 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
1. Колко памет трябва да обработваш?
2. Колко бързо? Има ли по сложни сметки (умножение, делене, запетайки)?
3. Каква периферия ти е необходима (АДЦ, УАРТ...)?
4. Компилатора налага ли се да е легален?
5. Трябва ли ти нещо което го има на момента в магазина или нямаш проблем да изчакаш доставка?

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Последна промяна Цецо на Сря Апр 12, 2006 4:02 pm, променена общо 1 път



Сря Апр 12, 2006 3:41 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Апр 27, 2005 2:47 pm
Мнения: 349
Местоположение: Varna
Мнение 
Според мен някой ARM с външна шина ще свърши работа, но не знам от къде може да се вземе.


Сря Апр 12, 2006 3:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
6. RAM (executable and storage) OR (only storage) ?
7. DRAM or SRAM or ...?


Сря Апр 12, 2006 5:02 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Апр 12, 2006 10:20 am
Мнения: 41
Местоположение: gr.Plovdiv
Мнение За Цецо!!!
Цецо написа:
1. Колко памет трябва да обработваш?
2. Колко бързо? Има ли по сложни сметки (умножение, делене, запетайки)?
3. Каква периферия ти е необходима (АДЦ, УАРТ...)?
4. Компилатора налага ли се да е легален?
5. Трябва ли ти нещо което го има на момента в магазина или нямаш проблем да изчакаш доставка?


1.Максимално до 2МBt. RAM.,4МBt Flash.
2.От периферията ми е необходимо UART,i2c,cpi,АЦП 3 канала минимум, да има и някой друг входен порт.
3.По възможност не,поне в началото само за проба :)
4.Може и да се дочака доставка.
6.Чрез компилатора да мога да декларирам масив от 20000 структури във външната RAM по 8 елемента и да мога лесно да управлявам всеки от тях.
7.Да има възможност за динамично управление на RAMa.
8.Процесора лесно да може да сортира символни низове от по 20знака максимум.
Предварително благодаря за отговора!

_________________
tig072


Сря Апр 12, 2006 5:32 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
погледни Infineon XC167 - 16 битов, 40 мипса мах / 160 МHz
256k Internal FLASH
по-малко от 16M адресно пространство
периферия има
USART BOOT
директно управление на външни SRAM/FLASH (4/3 pina hard chip select)
Hardware пригоден за RTOS
IDE, С, АSМ - Keil or Tasking
ASM сходен с Микрочип


Сря Апр 12, 2006 7:31 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Майко мила. И как смяташе това да стане с PIC? Че неговия компилатор ще умре сигурно на 256тата структура :)

Ами то това твойто си плаче за сериозен процесор. Мисля че АРМ най-добре те урежда.

Погледни например LPC2214 на Philips. Друг пройзводител на ARM е ATMEL. Има и други, ама на тия им е изведена шината.

LPC2214 можеш да го тормозиш със KEIL, IAR, CrossWorks, GreenHills - това са комерсиални (но ще се намерят, ако поискаш) и GCC което си е OpenSource. Всичките подържат динамична памет, мисля че който и да решиш - все тая.

Филипса е под 10$ за големи количества естествено. Но за малки, мисля че около 16$ ми го доставиха от Акерман.

Със сигурност има и други решения - мощни контролери - бол. ARM-а обаче се ползва от много хора и ако запецнеш по лесно ще получиш подкрепа.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Сря Апр 12, 2006 7:35 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Явно че трябва да учиш нов процесор.
Ако имаш време достатъчно точно ARM7 ти е доста добър вариант.
Ако те притиска времето малко трудно ще зацепиш бързо да работиш с ARM.
Ако е такъв случая една ATmega128 ти е добър вариант. За Компилатор IAR. Ще стане стига да не ти трябват много мипсове.


Сря Апр 12, 2006 8:37 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Много памет му трябва, а има ли меги с изведени шини?

Освен това аз не съм голям спец в мегите, ама те не са ли харвардска архитектура като пиковете?

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Сря Апр 12, 2006 9:51 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Има с изведени шини,даже и от малките. Мега162 е с изведени шини от малките модели. Мега128 е от големите предполагам че има и други.
Архитектурата не го бърка,не е казал че му трябва да изпълнява код от рама.
Просто това му го дадох като вариант ако го притискат сроковете. На външна памет маи само 8 мипса можеше да се достигне.
Определено е по на далавера да се хване с ARM


Сря Апр 12, 2006 10:07 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Ами той не иска да изпълнява от РАМ-а, а да пази данни. Ама то при пиковете това е проблема, че е изведена програмната шина, а не тая за данни. А те нали при харвардската архитектура са отделно. На него му трябва данновата шина да е навън. Незнам при мегите как е.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Сря Апр 12, 2006 10:55 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Със сигурност може да им се вързава external Ram но самия достъп как става не знам. не ми се е налагало да връзвам допълнителна памет на мега досега. Но съм виждал че връзват хората


Сря Апр 12, 2006 11:59 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 21 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 12 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни