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, my eval board is Phytec KC-161 (with 64k ext RAM, and 256k ext FLASH). Why the target doesn't initialize arrays in free running? Thank you.
Thank you for for paying atention, Chris Wunderlich . The information you requested is: My simple code is:
#include <reg161.h> void main (void) { unsigned char array[6]={1,2,3,4,5,6}; while (1) {} }
(1),(3) the size and the declaration - look above; (2) If it'll help you to discover what may be the problem, I pasted the important parts(I think so) from two files(Ithe 'array' word is red as to find it quickly): -> "Phytec KC161.lst"
C166 COMPILER V6.06, PHYTEC_KC161 04/25/2007 09:50:00 PAGE 2 NAME CLASS SPACE TYPE OFFSET SIZE ---------------------------------------------------------------------------- BUSCON1. . . . . . . . . . . . . . . . sfr uint FF14H 2 .. .. main . . . . . . . . . . . . . . . . . public FCODE funct ----- array. . . . . . . . . . . . . . . . auto array 0H 6 ?tpl?0001. . . . . . . . . . . . . . . static NCONST array 0H 6 MODULE INFORMATION: INITIALIZED UNINITIALIZED CODE SIZE = 20 -------- NEAR-CONST SIZE = 6 -------- ......
-> "project.m66" :
....... MEMORY MAP OF MODULE: .\Object\project (PHYTEC_KC161) START STOP LENGTH TYPE RTYP ALIGN TGR GRP COMB CLASS SECTION NAME ===================================================================================== 000000H 000003H 000004H --- --- --- --- --- --- * INTVECTOR TABLE * 000004H 000005H 000002H XDATA REL WORD --- --- GLOB --- ?C_INITSEC 000008H 00000BH 000004H --- --- --- --- --- --- * RESERVED MEMORY * 00000CH 00001FH 000014H CODE REL WORD --- --- PUBL FCODE ?PR?PHYTEC_KC161 0000ACH 0000AFH 000004H --- --- --- --- --- --- * RESERVED MEMORY * 0000B0H 0001CDH 00011EH CODE REL WORD --- --- PRIV ICODE ?C_STARTUP_CODE 004000H 004005H 000006H DATA REL WORD --- 1 PUBL NCONST ?NC?PHYTEC_KC161 008000H 0080FFH 000100H DATA REL WORD --- 2 PUBL NDATA ?C_USERSTACK 00D900H 00DFFFH 000700H --- --- --- --- --- --- * RESERVED MEMORY * 00FA00H 00FBFFH 000200H --- --- --- --- --- --- * SYSTEM STACK * 00FC00H 00FC1FH 000020H DATA --- BYTE --- --- --- *REG* ?C_MAINREGISTERS .......... SYMBOL TABLE OF MODULE: .\Object\project (PHYTEC_KC161) VALUE TYPE REP LENGTH TGR SYMBOL NAME ========================================================= 00000CH GLOBAL LABEL --- --- main 004000H SYMBOL VAR --- --- ?tpl?0001 00000CH BLOCK LVL=0 0014H --- main 00000EH BLOCK LVL=1 0012H --- 000000H SYMBOL AUTO --- --- array --- BLOCKEND LVL=1 --- --- ........
I though Phytec gives you a START167.A66 file with the correct settings of the memory. But it looks like you are using a standard one and as Joost implied you most likely have a problem with this setup.
I believe you have the data set to Flash this is your problem. You need the data in RAM.
I would suggest that you look for this *.a66 file from Phytec or make sure you have the correct settings for SYSCON and only use the RAM on-chip for now. Your memory settings should look something like this:
From the *.lnp file
"START167.obj", "main.obj" TO "test" IXREF CLASSES (ICODE (0x0-0xBFFF), NCODE (0x0-0xBFFF), FCONST (0x0-0xBFFF), HCONST (0x0-0xBFFF), XCONST (0x0-0xBFFF), NCONST (0x4000-0x7FFF), NDATA (0xC000-0xD7FF, 0xF600-0xFDFF), NDATA0 (0xC000-0xD7FF, 0xF600-0xFDFF), SDATA (0xC000-0xD7FF, 0xF600-0xFDFF), SDATA0 (0xC000-0xD7FF, 0xF600-0xFDFF), IDATA (0xF600-0xFDFF), IDATA0 (0xF600-0xFDFF), FDATA (0xC000-0xD7FF, 0xF600-0xFDFF), FDATA0 (0xC000-0xD7FF, 0xF600-0xFDFF), HDATA (0xC000-0xD7FF, 0xF600-0xFDFF), HDATA0 (0xC000-0xD7FF, 0xF600-0xFDFF), XDATA (0xC000-0xD7FF, 0xF600-0xFDFF), XDATA0 (0xC000-0xD7FF, 0xF600-0xFDFF)) CINITTAB (0x0-0xBFFF)
Then you will get something like this which should work.
C166 COMPILER V6.06, MAIN NAME CLASS SPACE TYPE OFFSET SIZE ---------------------------------------------------------------------------- main . . . . . . . . . . . . . . . . . public NCODE funct ----- array. . . . . . . . . . . . . . . . auto array 0H 6 ?tpl?0001. . . . . . . . . . . . . . . static NCONST array 0H 6 START STOP LENGTH TYPE RTYP ALIGN TGR GRP COMB CLASS SECTION NAME ===================================================================================== 000000H 000003H 000004H --- --- --- --- --- --- * INTVECTOR TABLE * 000004H 000005H 000002H XDATA REL WORD --- --- GLOB --- ?C_INITSEC 000006H 000125H 000120H CODE REL WORD --- --- PRIV ICODE ?C_STARTUP_CODE 000126H 000139H 000014H CODE REL WORD --- 2 PUBL NCODE ?PR?MAIN 004000H 004005H 000006H DATA REL WORD --- 3 PUBL NCONST ?NC?MAIN 00C000H 00C1FFH 000200H DATA REL WORD --- 1 PUBL NDATA ?C_USERSTACK 00FA00H 00FBFFH 000200H --- --- --- --- --- --- * SYSTEM STACK * 00FC00H 00FC1FH 000020H DATA --- BYTE --- --- --- *REG* ?C_MAINREGISTERS
If you are a student then you can post your email and I will send you a project.
-Chris
Thank you , Chris Wunderlich.
Yes , I'm a student and I have to do a project to take my degree. My profesor gave me an eval board and have problems at the begining of the project.
Well, if you can give a project with proper settings , my email is damian_dumitras@yahoo.com (or, if it is restricted: damian_dumitras @.. yahoo dot com)
Thank you very much.
I modified the project, except the startup file, and no changes have made... What and how can I modify in the startup file?
I'll send you an example program in a few minutes.
But again check the value of the SYSCON0 register. You need to enable the XPEN bit.
Thanks for the project, and sorry for disturbance. But no changes. I replyed to your mail the results... Is it posible chat anywhere ?
Damian.
Thanks for Chris Wunderlich. The problem was at the project settings. Also the modifications in the startup file solved this problem. Good luck to every body.