Witam,
Pisze program w C w srodowisku Keil uVision2. ( procek atmel 89s52 )
Program prosty, jednak korzysta z duzej ilosci danych wiec potrzebowalbym je umieścic w pamieci programu ( dane tylko do odczytu). Nie moge przeskoczyc problemu, a może robie cos zle,
jedyne co znalazlem to to ze 8051 nadaje sie tylko doprogramowania w asemblerze ( zacząłem pisac w asemblerze ale przesiadlem sie na C - wiadomo pewne rzeczy duzo latwiej zrobic) a teraz mam problem i szczerze mówiąc nie wiem już jak mam szukac rozwiazania
mam zdefiniowana strukture, i wszystko dzialalao, popisalem odpowiednie procedury i zacząłem dopisywac reszte rekordów do struktury i dostaję komunikat:
nie wiem jak tego sie pozbyc, a danych musze jeszcze wiecej wprowadzic.
w asemblerze po prostu bym zapodał ( przyklad) :
i byłoby po problemie. Wiem gdzie dane są i moge z nich korzystać). Juz nawet mi nie zalezy abym mógł odwolywac sie do tych danych poprzez konkretne zmienne, moge uzywac CBYTE,
ale jak w C zadeklarowac/zdefiniowac dane aby byly w pamieci programu?
Juz sie zastanawiam czy nei wrócic do asemblera, tam jest chyba wieksza kontrola, ale za to dluzej pewne algorytmy sie adoptuje.. echh...
prosze pomóżcie lub podpowiedzcie jakis punkt zaczepienia
Defectus
Poprawiłem tytuł:
https://www.elektroda.pl/rtvforum/topic1015361.html
[c_p]
Pisze program w C w srodowisku Keil uVision2. ( procek atmel 89s52 )
Program prosty, jednak korzysta z duzej ilosci danych wiec potrzebowalbym je umieścic w pamieci programu ( dane tylko do odczytu). Nie moge przeskoczyc problemu, a może robie cos zle,
jedyne co znalazlem to to ze 8051 nadaje sie tylko doprogramowania w asemblerze ( zacząłem pisac w asemblerze ale przesiadlem sie na C - wiadomo pewne rzeczy duzo latwiej zrobic) a teraz mam problem i szczerze mówiąc nie wiem już jak mam szukac rozwiazania
mam zdefiniowana strukture, i wszystko dzialalao, popisalem odpowiednie procedury i zacząłem dopisywac reszte rekordów do struktury i dostaję komunikat:
*** ERROR L107: ADDRESS SPACE OVERFLOW
SPACE: DATA
SEGMENT: _DATA_GROUP_
LENGTH: 0012H
Program Size: data=135.0 xdata=0 code=1652
Target not created
nie wiem jak tego sie pozbyc, a danych musze jeszcze wiecej wprowadzic.
w asemblerze po prostu bym zapodał ( przyklad) :
org 0x1000
tekst_2: db '11111111111111111111',0
tekst_1: db '22222222222222222222',0
tekst_3: db '33333333333333333333',0
i byłoby po problemie. Wiem gdzie dane są i moge z nich korzystać). Juz nawet mi nie zalezy abym mógł odwolywac sie do tych danych poprzez konkretne zmienne, moge uzywac CBYTE,
ale jak w C zadeklarowac/zdefiniowac dane aby byly w pamieci programu?
Juz sie zastanawiam czy nei wrócic do asemblera, tam jest chyba wieksza kontrola, ale za to dluzej pewne algorytmy sie adoptuje.. echh...
prosze pomóżcie lub podpowiedzcie jakis punkt zaczepienia
Defectus
Poprawiłem tytuł:
https://www.elektroda.pl/rtvforum/topic1015361.html
[c_p]