 |

|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 10 16, 18:07. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Keista problema su codevisionavr
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
Puslapis 1 iš 2 Pereiti prie 1, 2 Toliau |
|
 |
 |
 |
Keista problema su codevisionavr |
Parašytas: 2010 04 23, 18:37 |
|
|
|
Yra veikianti programa. Užima apie 65 proc. mega8 atminties. Jei aš parašau dar nors vieną komandą (bet kokią, bet kokioje programos vietoje, kad ir a=2), programa nustoja veikti. Kompiliuojasi viskas normaliai, resursų požiūriu tai atrodo taip:
Bit variables area: 2h to 2h
Bit variables size: 1 byte(s)
Data Stack area: 60h to 15Eh
Data Stack size: 255 byte(s)
Estimated Data Stack usage: 76 byte(s)
Global variables area: 15Fh to 3CAh
Global variables size: 620 byte(s)
Hardware Stack area: 3CBh to 45Fh
Hardware Stack size: 149 byte(s)
Heap size: 0 byte(s)
EEPROM usage: 0 byte(s) (0,0% of EEPROM)
Program size: 2678 words (65,4% of FLASH)
Jei programą bandau proteus simuliatoriuje, ji neveikia, ir eina krūva klaidų apie tai, kad out of program memory size 0x2000.
Suprantama, kad to tikrai nėra. Bandau ištrinti bet kokią komandą programoje - iš karto viskas pradeda veikt. T.y. taip atrodo, kad pasiekta kažkokia riba. Pirma mintis, kad iš tikro pasiekta kažkokia keista programos dydžio riba. Bandymui aprašau tokį kintamąjį: flash char aa[255]; Kadangi jis papuola į flash, tai programos dydis padidėja 255 baitais. Viskas veikia. Reiškia programos dydis čia niekuo dėtas. Kita mintis - kvailioja proteus. Tačiau įrašius programą į realų mikrokontrolerį, programa irgi neveikia. Kas per keistenybės? Gal kas turit minčių kame gali būt reikalas? |
|
|
|
|
 |
 |
Keista problema su codevisionavr |
Parašytas: 2010 04 23, 19:50 |
|
|
|
Iš ko tai matosi? Aprašau dar vieną kintamąjį: char bb[100] (globalus). Kompiliatorius rodo:
Global variables area: 15Fh to 42Eh
Global variables size: 720 byte(s)
Viskas kaip veikė, taip veikia... Reškia 100 baitų papildomai naudot dar galiu, o parašyt a=2; niekaip? Kažko aš čia nesuprantu... |
|
|
|
|
 |
Keista problema su codevisionavr |
Parašytas: 2010 04 23, 20:08 |
|
|
|
Matai tas tavo bb[100] yra tavo galvoje ir kompo ekrane, kompiliatoriui sio masyvo nera, nes jam niekas nepriskirta ir jis nenaudojamas. Sudek visus stakus ir kiek gaunasi baitu? Cia ta programa gal naudoja koki RTOS? |
|
|
|
|
 |
Keista problema su codevisionavr |
Parašytas: 2010 04 23, 20:18 |
|
|
|
Ne, jis ne galvoje. Globaliam kintamajam atmintis išskiriama iš karto. Be to, aš galiu naudoti tą kintamąjį - viskas OK. Žinoma tik tuo atveju, jei bus išmesta keletas komandų iš bet kurios programos vietos.
Dar klausimas: argi toks priskyrimas a=2 naudoja kokią papildomą atmintį, jei kintamasis a ir be šios komandos naudojamas programoje ir jokių problemų nekelia?
RTOS nenaudoju.
Dar bandymai. Jei sumažinu kintamųjų kiekį net 50-100 baitų, niekas nesikeičia - programa neveikia. Čia tikrai reikalas ne RAM'e... |
|
|
|
|
 |
 |
Keista problema su codevisionavr |
Parašytas: 2010 04 24, 18:17 |
|
|
|
Panašu, kad tai codevision bug'as. Išbandžiau dar keletą versijų, įdomu tai, kad su naujesne galima parašyti dar keletą komandų, t.y. aprašyta situacija pasireiškia šiek tiek vėliau. Išbandžiau įvairiausius programų variantus, bandydamas suprast, kas konkrečiai jam nepatinka. Nieko konkretaus neradau, yra kažkokia durna riba, priklausomai nuo programos, nuo naudojamų bibliotekų, pasireiškia kai užimta apie 55-65 proc. mega8 atminties. Ilgesnės programos parašyt niekaip neina.
Gal kam visgi pavyko? |
|
|
|
|
 |
Keista problema su codevisionavr |
Parašytas: 2010 04 24, 18:49 |
|
|
|
Matomai teks kažką bandyt. Labai nesinori, bet koks perėjimas atima daug laiko, kol susigaudai... microC - vienas iš variantų. |
|
|
|
|
 |
Keista problema su codevisionavr |
Parašytas: 2010 04 24, 21:18 |
|
|
|
Padariau dar vieną bandymą. Pakeičiau mega8 į mega168. Skirtumas tik vienas - mega8 turi 8Kb, o mega 168 - 16Kb flash atminties. RAM tiek pat. Viskas veikia, problemų nebeliko. Turbūt vėl kol pasieksiu tą pačią ribą apie 60 proc. atminties.
Bet reiškinys keistas... |
|
|
|
|
 |
Keista problema su codevisionavr |
Parašytas: 2010 04 25, 13:46 |
|
|
|
Tikrai ne viskas tas pats, skiraiasi nemazai registru pavadinimu... Ir kuo tas codevision avr gerensis uz nemokama, paprasta naudoti ir galinga "avr studio" iranki, tuao labaiu, kad jis sukurtas tos pacios kompanijos kuri gamina tuos valdiklius kuriuos tu programuoji? |
|
|
|
|
 |
Keista problema su codevisionavr |
Parašytas: 2010 04 25, 16:01 |
|
|
|
Prie ko čia registrų pavadinimai?
O kalbant apie Codevision... Nebūtų geresnis, neprogramuočiau. AVR studio tai tik asembleris. Tai man siūlai? Ar visgi nemokamą C variantą (WinAVR)? |
|
|
|
|
 |
Keista problema su codevisionavr |
Parašytas: 2010 04 25, 20:25 |
|
|
|
ReM rašo: |
Prie ko čia registrų pavadinimai?
O kalbant apie Codevision... Nebūtų geresnis, neprogramuočiau. AVR studio tai tik asembleris. Tai man siūlai? Ar visgi nemokamą C variantą (WinAVR)? |
Prie to, kad ne VISKAS tas pats Teip AvrStudio+WinAVR.
Hmm, ne jei isbandes ir maniski siuloma varianta papasakok skirtumus, idomu butu suzinoti, nes cvavr nesu bandes.
PS. tas wizard visai nieko dalykas pas cvavr  |
|
|
|
|
 |
Keista problema su codevisionavr |
Parašytas: 2010 04 25, 22:04 |
|
|
|
Tai pabandyk, iš karto bus aišku. O tas wizard tai ypač geras dalykas pradedantiems. Šiaip kiekviena kalba turi savų pliusų ir minusų, o geriausia visada yra ta, kurią geriausiai žinai ir prie kurios esi pripratęs... |
|
|
|
|
|
 |
Google paieška forume |
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
|

|
 |