We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi, I work on st10f168 with uVision2 V2.38 I want to control 2 1Mb * 8 bits external ram by EBC (external bus controller) in 16 bits demux mode. It s like a one chip ram 16 bits * 1Mb So i would declare a table of 1Mb int, but i can t declare one upper that : static unsigned int xhuge Tab[524032]; with user stack : 0x200 But normally i can declare Tab[1048065] I don t understand why i can t ? I feel i lose the half of my memory ! I am also oblige to increment 2 by 2 the pointer on Tab, i can t write on another ! Please explain to me how can i use all the memory Thanks
Not quite sure I understood everything, but I think that the problem has something to do with the way the linker allocates memory: http://www.keil.com/support/man/docs/l166/l166_in_locating.htm As far as I understand, you want an array of ints to occupy the entire external RAM. Perhaps the way to make sure that the linker puts it there is to use the approach described in this knowledgebase article: http://www.keil.com/support/docs/586.htm Regards, - mike