Отговори на тема  [ 93 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5 ... 7  Следваща
Ядове с MPLAB X 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Ядове с MPLAB X
TheWizard написа:
X-са че е смотан си е смотан, но компилатора си е GCC


Ако е GCC то проблемът с делението не е в компилатора, щото той не се занимава с такива неща :-)
Деленията, както и много други неща трябва да са реализирани в т.н. "стандартни" библиотеки. Специално за математиките GNU имат универсални имплементации, но те не са оптимални изобщо. Затова е редно да се пренапишат за съответната платформа и явно някой от майкрочеп ги е пренаписал, ама как...


Пет Юни 02, 2017 9:43 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: Ядове с MPLAB X
Не е проблемът в библиотека или компилатор! Определено не дефинирам променливите правилно! Опитах същите сметки върху контролера - абсолютно същия резултат. Спирането на оптимизациите също не дава резултат! За сега ще го карам с volatile пред всяка променлива.
И методът, който предлагат, за генериране на закъснения е супер зле. При XC8 и XC16 функциите са читави, но тук предлагат да използва системния боряч и да се смятат тактовете, но това е супер зле, защото стойността се качва и в един момент започват да се препълват променливите, които се използват. Не че не може да се направи, но къде къде по-лесно е просто да си настроя един таймер на 1мс и един на 100 примерно и толкова...

_________________
www.elkran.com


Пет Юни 02, 2017 7:46 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение Re: Ядове с MPLAB X
ам никъде не е написано че Примерите, трябва да са професионално написани
за хубаво закъснение със системен таймер търси rollover и Two's complement
аз го ползвам с XС32 и си бачка окей с превъртането, тествам съм го 100MHz таймер // _CP0_GET_COUNT // и си превърта на 40 и еди-кояси секунда без проблем със закъснението

_________________
main[-1u]={1};


Пет Юни 02, 2017 8:42 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Ядове с MPLAB X
stoyanoff написа:
За сега ще го карам с volatile пред всяка променлива..


ъъъ не мой така! Я дай примерен код, другаде ти е проблемът...


Пет Юни 02, 2017 9:23 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: Ядове с MPLAB X
Ще се хвърля от някъде! Ъпдейтнах тъпото животно и сега всичко е 6... Аз си бях инсталирал версията, която имах(май 1.36). Макар че това са елементарни неща. Не вдявам как са пуснали продукт на пазара с такъв фундаментален пропуск...

_________________
www.elkran.com


Пет Юни 02, 2017 9:52 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 11:53 pm
Мнения: 4582
Местоположение: Brussels / Пловдив
Мнение Re: Ядове с MPLAB X
woody написа:
radolin написа:
Аз все още не мога да разбера защо е тази тъпотия с компилаторите за микрочип контолерите. Едно, че са 300 вида, а и все комерсиални. Ще кажеш, че искат да продават компилатори, не чипове.

За да добавят няколко прагми и библиотеки, така че ползвателите със засилка от PIC-чета да се чустват по-удобно.

Абе на чупена архитектура като PIC (то това си има и предимства де) да се направи C компилатор си е направо геройство, особенно добре оптимизиращ - иска си сериозна инвестиция за да се хване някой да го прави за без пари :)

_________________
Мразя да мразя ...


Пет Юни 02, 2017 10:37 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение Re: Ядове с MPLAB X
palavrov написа:
Абе на чупена архитектура като PIC (то това си има и предимства де) да се направи C компилатор си е направо геройство, особенно добре оптимизиращ - иска си сериозна инвестиция за да се хване някой да го прави за без пари :)

В случая става дума за XC32, т.е. за PIC32, т.е. за MIPS 4K / 14K.


Пет Юни 02, 2017 11:28 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: Ядове с MPLAB X
Счупени, несчупени хората стоят стабилно на пазара, че даже и други компании купуват! Друго, което ми харесва е, че имат страшно много модели в групи по няколко взаимозаменяеми... Много често компании, които наблягат на количеството, а не качеството, стоят по-добре на пазара. Аз не съм имал някакви проблеми с дефектни контролери или несвойствени действия след написването на кода(по време на писането такива неща бол, както се вижда). Съдба!

_________________
www.elkran.com


Съб Юни 03, 2017 5:25 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: Ядове с MPLAB X
И на всичкото отгоре, като заредих програмата на контролера се появи същия проблем! Мога да заменя с div да ракърпя положението. Може пък наистина това да е коректния начин и като по-умен компилаторът да не го кефи директното делене... При 50MHz осцилатор и 25MIPs на периферията това не е кой знае какъв проблем, но ще трябва да преправям доста код...

_________________
www.elkran.com


Съб Юни 03, 2017 11:27 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 03, 2005 2:21 am
Мнения: 12765
Местоположение: София
Мнение Re: Ядове с MPLAB X
Ми нормално е по-тъпичките компилатори да се шашкат. Все пак, "/" е половин коментар. Той откъде да знае дали искаш да си поприказвате или да направиш нещо друго... :D


Съб Юни 03, 2017 11:35 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: Ядове с MPLAB X
Би трябвало деленето да става нормално, трябва да разгледаш листинга - ако има де. {
Това, което показваш като код - не е код,
void main() {
int x=10;int y=3 ;int z=x/y.
}

На тоя "код" компилаторът с пълно право може да генерира 0 байта машинен код.
Най-добре - разгледай листингите.


Съб Юни 03, 2017 1:30 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 8:04 pm
Мнения: 2663
Местоположение: София / Велико Търново
Мнение Re: Ядове с MPLAB X
Обаче как се разбрало, че z не е изчислено, като не се ползва никъде ?

_________________
https://github.com/slav4ocom/


Съб Юни 03, 2017 2:00 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: Ядове с MPLAB X
Ето какво става:
Цитат:
In response to the first entry in this thread. The address shown for findmediaId (r2684354680 (CPU)) is the result of a known bug which affects MPLAB X v3.05. The cause was identified during the v3.10 development cycle and has been fixed.

We do apologize for the inconvenience.

Summary:

It is apparent that the debugger has store the value for findmediaId in one of the CPU working registers in this case. Unfortunately, the bug results in a misinterpretation of way the compiler stores the register info. In this case I am fairly certain that the debugger is adding the value of the stack pointer or frame pointer register to the actual CPU register offset value where the true value is stored. In other words findmediaId is being treated like an auto variable that is offset some number of bytes from the frame pointer base.

You should be able to derive the correct CPU register offset by subtracting the value stored in CPU r30 (frame pointer). Open the PIC memory view for the CPU register window. If compiler optimization is in use, you may need to use the value stored in r29 (stack pointer) since the frame pointer may be omitted. At any rate, the remainder of subtracting the fp or sp value from 2684354680 should be a small value like 2, 3, 4 etc which would relate to CPU register r02, r03 or r04 in this case. One of those working registers should hold the value of findmediaId at the PC address indicated in this debug context.

Само дето леко не са го оправили, защото аз съм с 3.55! Ще тествам малко по-късно дали това се случва runtime и ако всичко е ок ще го оставя така. Да се надяваме, че проблемът е само в телевизора.. Това ще е много куцо ако ми прави така, докато дебъгвам голямата програма.
Може ли малък пример как да избера място за дадена променлива? Мисля, че ако задам при дефинирането къде да я сложи, няма да го има този проблем(защото като дам volatile се оправя)... Само идея разбира се!
Трябва да взема да им напиша! Барем го оправят този път...

_________________
www.elkran.com


Съб Юни 03, 2017 4:13 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: Ядове с MPLAB X
Не схванах тоз бъг какво общо има с деленето.
Ама аз от Ц и английски много не фащам.


Съб Юни 03, 2017 6:34 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: Ядове с MPLAB X
Проблемът е в дебъгер-а. Когато си в режим дебъг или на симулатор, MPlab-a трябва да чете състоянията на регистрите и клетките на паметта, и да ти ги показва. ОБАЧЕ вместо да слага променливите в RAM-a глупавата програма ти ги показва в нещо като кеш на процесора(внесто на адрес да имаш 0х87932тралала имаш r02 (CPU)). На самият контролер променливата е, където трябва и програмата си се изпълнява правилно, но ти не виждаш това в дебъдер-а и няма как да разбереш. И вместо резултат слага вътре някакъв офсет спрямо, който да намериш къде ти е резултата или нещо от сорта. Не съм го гледал това. Явно като са го оправяли, са забравили този вариант! Защото само при делене се получава. Възможно е да е конкретно за този контролер, който използвам(не знам точно как е изградена програмата им!).

_________________
www.elkran.com


Съб Юни 03, 2017 8:33 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 93 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5 ... 7  Следваща

Кой е на линия

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


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

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