| Автор |
Съобщение |
|
zax
Ранг: Популярен
Регистриран на: Съб Фев 19, 2005 2:22 pm Мнения: 323
|
 CCS проблеми
Имам следния проблем изтеглих си CCS на Тони 3.204 но започвам да откривам някои странности по време на програмирането.
Ползвам го с ICD S40 и като цяло съм доволен, но непрекъснато излиза някакъв проблем.
Например при работа с 16F87 като за начало имах отместване на сорса спрямо стрелката за достигнат код,
после пак с това прословуто 87 при използване на инструкция "printf("CRC [%lu]\r\n", CRC);" веднъж CRC стойноистта излиза веднъж не ще, при условие че в променливата има стойност впоследствие установих че се влияе пряко от компилирането и от добавените редове в програмата дори и един нов ПРАЗЕН ред може да изкарва или съответно маха ст-ста CRC,
от друга страна имам чувството че компилацията не винаги е вярна. и още: добавят се елементи от единия сегмент на програмата в друг но това не съм го наблюдавал пряко с дебъгер просто при следващите проверки установих че се изпълнява код от друга част от програмата после се връща и продължава своята си част едно такова дето създава проблеми които се решават адски трудно
ето още един сериозен проблем той се наблюдава и в 87 и в 876а при достигане на определени проценти от flash паметта за 876а /8k flash/първо беше 87% а сега работи призапълване от 90% т.е. не ефиксирано за 87/4k flash/ границата до която достига е 67% след минаване на тази ст-ст се показва прозорец с указания от къде нататък започва промени или по друг начин казано при верификацията в паметта се намират едни ст-сти а всъщност те трябва да са други.
същевременно ако го компилирам за работа без ICD този проблем не се наблюдава и мога да го запиша в PICа без проблем но не може да ползваш и ICD  а все пак е добре да виждаш какво става това може да се получава защото използването на ICD може да иска код които e невидим за потребителя но това ми изглежда не много вероятно аз го решавам като махна някои от вече тестваните функции но това не винаги е възможно и понякога е съвсем гадно  вероятно някои да се е сблъсквал с такива проблеми и евентуално решение моля да сподели
Последна промяна zax на Сря Юни 15, 2005 2:15 pm, променена общо 1 път
|
| Сря Юни 15, 2005 11:42 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Я обясни това за ПРАЗНИЯ ред. И човек, ако можеш по някакъв начин си разделяй изреченията, страшно трудно ми е да разбера какво искаш да кажеш 
|
| Сря Юни 15, 2005 1:16 pm |
|
 |
|
zax
Ранг: Популярен
Регистриран на: Съб Фев 19, 2005 2:22 pm Мнения: 323
|
коригирах началния си отговор надявам се да е станало по четливо
пример1:
...... // примерен сорс код
#define buffer[10]
main
{
int16 CRC=0, CRC_Re=0;
while ( true )
{
fgets( buffer );
for ( i1=0; i1<10; i1++ ) // za celiq priet "buffer"
{ // wzemam simwol po simwol HEX st-sta i q
CRC += buffer[i1]; // dobawqm kym CRC
}
CRC_Re = ~CRC;
CRC_Re++;
printf( "CRC [%lu]", CRC_Re );
}
}
пример2:
...... // примерен сорс код
#define buffer[10]
main
{
int16 CRC=0, CRC_Re=0;
while ( true )
{
fgets( buffer );
for ( i1=0; i1<10; i1++ ) // za celiq priet "buffer"
{ // wzemam simwol po simwol HEX st-sta i q
CRC += buffer[i1]; // dobawqm kym CRC
}
CRC_Re = ~CRC;
CRC_Re++;
printf( "CRC [%lu]", CRC_Re );
}
}
не гарантирам че при този наи елементарен пример ще се наблюдава същия ефект по скоро не но ще ми послужи за нагледен пример
каква е разликата м/у пример 1 и 2 --> в празния ред които съм добавил преди "while" но в единия случаи функцията printf ще изведе
--> CRC [65586]
а в другия нежелан
--> CRC []
а разликата е само в добавения празен ред
|
| Сря Юни 15, 2005 2:30 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
 Re: CCS проблеми
...
Последна промяна ¶ на Пон Яну 30, 2012 4:33 am, променена общо 1 път
|
| Сря Юни 15, 2005 4:54 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
...
Последна промяна ¶ на Пон Яну 30, 2012 4:33 am, променена общо 1 път
|
| Сря Юни 15, 2005 5:09 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Тоя празен ред доста ме плаши...да не е някакъв бъг на компилатора? Значи аз имах подобен проблем с MPLAB, като натисна Ctrl+Backspace се поставя някакъв char, който е невидим, но заради него не компилира. Друг пак подобен беше като архивирам някакъв сорс, после след дезархивирането е пълно с такива символи 
|
| Чет Юни 16, 2005 11:06 am |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
...
Последна промяна ¶ на Пон Яну 30, 2012 4:33 am, променена общо 1 път
|
| Чет Юни 16, 2005 9:44 pm |
|
 |
|
zax
Ранг: Популярен
Регистриран на: Съб Фев 19, 2005 2:22 pm Мнения: 323
|
това че е проблем на развойната среда е ясно
по скоро въпроса е има ли по нова среда дето да са отсранени тези проблеми защото този CCS ми създава много главоболия, е и  много решава
но в крайна сметка започвам да се отказвам от тези пикове и да мина към 8051 като използвам новите екстри на DXP 200 или Keil което да ме освободи от следенето на банките памет
дори бих се замислил за моторолски чипове които са доста яки в края на краищата съм виждал доста сносни решения с тях и то на сименс милтроникс които все пак правят сериозна апаратура
а и отделно съм имал задачи дето искаха задължително на 8051 да се работи
|
| Съб Юни 18, 2005 12:18 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
За Siemens и Motorola спор няма, я кажи обаче как стои въпроса с цените и доставчиците 
|
| Съб Юни 18, 2005 12:55 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30685 Местоположение: София
|
Бе то процесора според приложението, не са лоши моторолските, и те си искт компилатори и там няма гаранция че ще липсват бъгове. За CCS .. абе сега май ползвам по нова версия не помня, но този проблем не съм го виждал досега .. но чесно казано не ми е и навик да оставям празни редове.
|
| Съб Юни 18, 2005 5:13 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
...
Последна промяна ¶ на Пон Яну 30, 2012 4:33 am, променена общо 1 път
|
| Пон Юни 20, 2005 1:43 am |
|
 |
|
forest_gump
Ранг: Професионалист
Регистриран на: Сря Окт 13, 2004 11:24 pm Мнения: 500 Местоположение: Стара Загора
|
@zax_ruse , само да добавя че и аз работя от скоро със същия компилатор даже съм го кръстил на ТоНи "CCS_Toni" ,преди това работих само на асм, единствените проблеми които имам си ги създавам само и единствено аз , в момента в който разбереш компилатора как работи CCS-a кода който пишеш за него вече почти не създава проблеми , това е един вид знаеш какво иска и ти му го даваш!
|
| Нед Юни 26, 2005 1:47 pm |
|
 |
|
zax
Ранг: Популярен
Регистриран на: Съб Фев 19, 2005 2:22 pm Мнения: 323
|
за това съм съгласен ама доста хляб ще има да изям за да му науча чалъмите
появяват се и изчезват на наи странни места  и то точно когато най не трябва
но това е едно на ръка по важното е че всеки е имал проблеми с него и е добре всички да ги знаем така ще е по лесно за всички и няма да се учим всеки по отделно да открива едни и същи грешки
може би трябва да отяворим една тема с този замисъл и да си я попълваме последователно  я главата ми роди интересна идея  но ще оставя това на друг по опитен от мен
|
| Нед Юли 03, 2005 12:36 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
...
Последна промяна ¶ на Пон Яну 30, 2012 4:34 am, променена общо 1 път
|
| Вто Юли 05, 2005 12:23 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
А, много тъпо ве, с Ctrl+TAB не става 
|
| Сря Юли 06, 2005 9:48 am |
|
|