Global mainīgie iegulto sistēmu

B

bharaths_jois

Guest
Apskatīsim iegulto sistēmu, kura programmatūra sastāv no globālo mainīgo. Q1) Kurš ir vieta piešķirta par globālo mainīgo? Ja atmiņa, lūdzu, norādiet kurā sadaļā RAM. Q2) vietējās mainīgais ir izveidots un aizņem atmiņu, kad par programmu, kur mainīgais ir deklarēti joma tiek izpildīts. Labi:: Līdzīgi, kad šie globālie mainīgie aizņem atmiņu? Paldies jau iepriekš Sveicieni, Bharath
 
[Quote = bharaths_jois] Apskatīsim iegulto sistēmu, kura programmatūra sastāv no globālo mainīgo. Q1) Kurš ir vieta piešķirta par globālo mainīgo? Ja atmiņa, lūdzu, norādiet kurā sadaļā RAM. [/Quote] Global mainīgie (par šo jautājumu jebkuru mainīgo) tiek piešķirti no RAM. GCC kompilators neinicializēts mainīgajiem dosies uz BSS sadaļu un inicializēts mainīgie iet. Dati.. Sadaļā vārdi mainīsies atbilstoši jūsu kompilatoru. [Quote = bharaths_jois] Q2) vietējās mainīgais ir izveidots un aizņem atmiņu, kad par programmu, kur mainīgais ir deklarēti joma tiek izpildīts. Pa labi:?: [/Quote] Tā pareizi, precīzāk tās ir piešķirtas off kaudze. [Quote = bharaths_jois] Tāpat, ja šie globālie mainīgie aizņem atmiņu? [/Quote] Space globālo mainīgo ir rezervēta pie kompilēšanas laikā pati. Ielādējot programmu, c starta kods nodrošinās rezervēta telpa ir inicializēts pareizi.
 
Paldies. Virzās uz priekšu ar šo, es uzzināju, ka par to, ko kādreiz ir iet uz RAM kopija būs hex failu un līdz ar to ROM. Un starta kods, kas iet laikā sākuma pieteikuma režīmā sistēma būs nokopēt šo saturu ROM atbilstošu platību RAM, tas ir labi?
 
Tas ir pareizi, tomēr par inicializēts mainīgajiem hex failu tikai satur informāciju par to, cik baiti ir jāpiešķir RAM. Tātad starta kods paturēs ka daudz vietas un aizpildīt šo vietu ar visām nullēm. Par inicializēts mainīgo hex fails satur inicializēts datiem, kā arī kopā ar lielums gadījumā starta kods kopēt šo datus no Hex failu (ROM) līdz RAM.
 
Paldies vēlreiz. Kā būtu ar kādu uzglabāšanas klase izmantošanu lemj telpu, kurā mainīgais varētu iet? Arī izmantojot const, kā būtu šajā jautājumā? Kur šie mainīgie aiziet (globālā un vietējā)? ti, ja būtu pasaules const sēdēt un kur tad vietējā const sēdēt?
 
Konstantes vienmēr glabājas ROM / Flash neatkarīgi no tā, vai tās ir vietēja vai pasaules mēroga, tomēr kompilators rūpēsies ierobežojot vietējo konstantes. Tas nav iespējams, lai apspriestu Eiropas konstantes kopumā, jo tas ir atkarīgs no individuālās procesoru ģimeni un kompilatoru.
 
GCC complier visas pasaules un statiskās mainīgie tiek glabāti datasement. ja mainīgais sāk tad mainīgo ietilpst kategorijā IDS (sāk datu segments). Ja mainīgais nav sāk tad mainīgo ietilpst kategorijā UIDS (ANO INITIALISED datu segments).
 
Ar jebkuru kompilators, jūs varat saņemt informāciju par atmiņas izkārtojumu un īpašu mainīgo, piemēram, karšu failus vietu. Kā neviens mērķa sistēmas vai kompilators ir teicis sākotnējā jautājuma, es gribētu pieminēt, ka daudzas lietas teica diskusiju, iespējams var , ir nepareizi. E. g. uz procesors ar kaudze atdalīt no datu telpa (8051 vai PIC), vietējie mainīgie parasti neatrodas uz skursteņa.
 

Welcome to EDABoard.com

Sponsor

Back
Top