probably off topic, sorry, but what I miss in the 8051 port is a 16
bit-stack pointer in xdata mode :(
On Fri, Feb 26, 2010 at 9:30 AM, Anthony Asterisk <
anthony.aster...@gmail.com> wrote:
> Oh GREAT!!!
>
> I'll give it a try tomorrow, thanks!
>
> a*
>
>
> Maarten Brock wrote:
>
> I think you missed my announcement. It is already in the
> latest revision. I still need to document it though. Use
> --model-huge and all functions will be banked including
> the library (except some lowest level helper functions).
> The library therefor must also be build with this
> switch.
>
> Maarten
>
>
>
> Hi Maarten, I was wondering how are you progressing on the huge memory
> model?
>
> I have been using the banked features pretty extensively but the
> requirement to explicitly mark code banked has limited what code I can
> move into the non-default banks. I would love if there was a way to
> make this all much more flexible.
>
> a*
>
> Anthony Asterisk wrote:
>
>
> Thanks Maarten, your fix has helped! I look forward to your full
> release. Let me know if you need any assistance with testing.
>
> Anthony
>
> Maarten Brock wrote:
>
>
> No, not quite. This is where it should be:
>
> if (IFFUNC_ISREENT (name->type) || options.stackAuto)
> {
> if (options.useXstack)
> xstackPtr -= port->stack.direction * port->stack.reent_overhead;
> else
> stackPtr -= port->stack.direction * port->stack.reent_overhead;
> }
>
> if (IFFUNC_ISBANKEDCALL (name->type))
> stackPtr -= port->stack.direction * port->stack.banked_overhead;
>
> fetype = getSpec (name->type); /* get the specifier for the
> function */
> /* if this is a reentrant function then */
> if (IFFUNC_ISREENT (name->type))
> reentrant++;
>
>
>
>
>
>
> Hi Maarten. I'm not sure my line numbers line up with your. I'm pretty
> sure I got the correct location in mcs51/main.c, but the change is
> SDCCCast might be different. Does this look good to you?
>
>
> if (options.dump_tree)
> PA(ex);
> if (fatalError)
> goto skipall;
>
> * if (IFFUNC_ISBANKEDCALL (name->type))
> stackPtr -= port->stack.direction * port->stack.banked_overhead;
>
> *
> /* Do not generate code for inline functions unless extern also. */
> #if 0
> if (FUNC_ISINLINE (name->type)&& !IS_EXTERN (fetype))
> goto skipall;
> #else
> /* Temporary hack: always generate code for static inline functions. */
> /* Ideally static inline functions should only be generated if needed. */
> if (FUNC_ISINLINE (name->type)&& !IS_EXTERN (fetype)&& !IS_STATIC
> (fetype))
> goto skipall;
> #endif
>
>
> Maarten Brock wrote:
>
>
>
> Anthony,
>
> I think I've found the bug.
>
> In mcs51/main.c(795) banked_overhead should be set to 1.
> And in SDCCast.c(6514) the following should be added:
> if (IFFUNC_ISBANKEDCALL (name->type))
> stackPtr -= port->stack.direction * port->stack.banked_overhead;
>
> When I fully have --model-huge working I'll commit ot svn.
>
> Greets,
> Maarten
>
>
>
>
>
> Hi Maarten,
>
> any other way I can help narrow down the cause of this issue?
>
> a*
>
> Anthony Asterisk wrote:
>
>
>
>
> Indeed, no .rst for library objects. But maybe you could
> link the object explicitly to override the library and
> this will generate the .rst file. That is assuming you
> have built the library first from source.
>
> Maarten
>
>
>
>
> Yep can do that.
>
> program output:
> sending 2d bytes.
> payload addr X:0xe0a0.
> SP 72.
> sending ff00 bytes.
> payload addr X:0xe0a0.
> SP 78.
>
>
> rst file excerpts
>
>
> 1047
> ;------------------------------------------------------------
> 1048 ;Allocation info for local variables
> in function 'cc2430_rf_send'
> 1049
> ;------------------------------------------------------------
> 1050 ;payload_len Allocated
> to stack - offset -4
> 1051 ;payload Allocated
> to registers r2 r3 r4
> 1052
> ;------------------------------------------------------------
> 1053 ;
> ../../cpu/cc2430/dev/cc2430_rf_intr.c:128: cc2430_rf_send(void
> *payload, unsigned short payload_len)
> 1054 ;
> -----------------------------------------
> 1055 ; function cc2430_rf_send
> 1056 ;
> -----------------------------------------
> 0468 1057 _cc2430_rf_send:
> 0468 C0 09 1058 push _bp
> 046A 85 81 09 1059 mov _bp,sp
> 046D AA 82 1060 mov r2,dpl
> 046F AB 83 1061 mov r3,dph
> 0471 AC F0 1062 mov r4,b
> 1063 ;
> ../../cpu/cc2430/dev/cc2430_rf_intr.c:130: printf("sending %x
> bytes.\n",payload_len);
> 0473 C0 02 1064 push ar2
> 0475 C0 03 1065 push ar3
> 0477 C0 04 1066 push ar4
> 0479 E5 09 1067 mov a,_bp
> 047B 24 FC 1068 add a,#0xfc
> 047D F8 1069 mov r0,a
> 047E E6 1070 mov a,@r0
> 047F C0 E0 1071 push acc
> 0481 08 1072 inc r0
> 0482 E6 1073 mov a,@r0
> 0483 C0 E0 1074 push acc
>
> 0485 74 C1 1075 mov a,#__str_0
> 0487 C0 E0 1076 push acc
> 0489 74 7C 1077 mov a,#(__str_0>> 8)
> 048B C0 E0 1078 push acc
> 048D 74 80 1079 mov a,#0x80
> 048F C0 E0 1080 push acc
> 0491 12 3D 15 1081 lcall _printf
> 0494 E5 81 1082 mov a,sp
> 0496 24 FB 1083 add a,#0xfb
> 0498 F5 81 1084 mov sp,a
> 049A D0 04 1085 pop ar4
> 049C D0 03 1086 pop ar3
> 049E D0 02 1087 pop ar2
> 1088 ;
> ../../cpu/cc2430/dev/cc2430_rf_intr.c:131: printf("payload addr
> %p.\n", payload);
> 04A0 C0 02 1089 push ar2
> 04A2 C0 03 1090 push ar3
> 04A4 C0 04 1091 push ar4
> 04A6 C0 02 1092 push ar2
> 04A8 C0 03 1093 push ar3
> 04AA C0 04 1094 push ar4
> 04AC 74 D4 1095 mov a,#__str_1
> 04AE C0 E0 1096 push acc
> 04B0 74 7C 1097 mov a,#(__str_1>> 8)
> 04B2 C0 E0 1098 push acc
> 04B4 74 80 1099 mov a,#0x80
> 04B6 C0 E0 1100 push acc
> 04B8 12 3D 15 1101 lcall _printf
> 04BB E5 81 1102 mov a,sp
> 04BD 24 FA 1103 add a,#0xfa
>
> 04BF F5 81 1104 mov sp,a
> 1105 ;
> ../../cpu/cc2430/dev/cc2430_rf_intr.c:132: printf("SP %x.\n", SP);
> 04C1 AD 81 1106 mov r5,_SP
> 04C3 7E 00 1107 mov r6,#0x00
> 04C5 C0 05 1108 push ar5
> 04C7 C0 06 1109 push ar6
> 04C9 74 E6 1110 mov a,#__str_2
> 04CB C0 E0 1111 push acc
> 04CD 74 7C 1112 mov a,#(__str_2>> 8)
> 04CF C0 E0 1113 push acc
> 04D1 74 80 1114 mov a,#0x80
> 04D3 C0 E0 1115 push acc
> 04D5 12 3D 15 1116 lcall _printf
> 04D8 E5 81 1117 mov a,sp
> 04DA 24 FB 1118 add a,#0xfb
> 04DC F5 81 1119 mov sp,a
> 04DE D0 04 1120 pop ar4
> 04E0 D0 03 1121 pop ar3
> 04E2 D0 02 1122 pop ar2
> 1123 ;
> ../../cpu/cc2430/dev/cc2430_rf_intr.c:133: return
> cc2430_rf_send_b(payload, payload_len);
> 04E4 E5 09 1124 mov a,_bp
> 04E6 24 FC 1125 add a,#0xfc
> 04E8 F8 1126 mov r0,a
> 04E9 E6 1127 mov a,@r0
> 04EA C0 E0 1128 push acc
> 04EC 08 1129 inc r0
> 04ED E6 1130 mov a,@r0
> 04EE C0 E0 1131 push acc
> 04F0 8A 82 1132 mov dpl,r2
> 04F2 8B 83 1133 mov dph,r3
> 04F4 8C F0 1134 mov b,r4
> 04F6 78 8D 1135 mov r0,#_cc2430_rf_send_b
> 04F8 79 82 1136 mov r1,#(_cc2430_rf_send_b
>
>
>
>
> 8)
>
>
>
>
> 04FA 7A 02 1137 mov r2,#(_cc2430_rf_send_b
>
>
>
>
> 16)
>
>
>
>
> 04FC 12 06 27 1138 lcall __sdcc_banked_call
> 04FF AA 82 1139 mov r2,dpl
> 0501 AB 83 1140 mov r3,dph
> 0503 15 81 1141 dec sp
> 0505 15 81 1142 dec sp
> 0507 8A 82 1143 mov dpl,r2
> 0509 8B 83 1144 mov dph,r3
> 050B D0 09 1145 pop _bp
> 050D 22 1146 ret
>
> 1115
> ;------------------------------------------------------------
> 1116 ;Allocation info for local variables
> in function 'cc2430_rf_send_b'
> 1117
> ;------------------------------------------------------------
> 1118 ;payload_len Allocated
> to stack - offset -4
> 1119 ;payload Allocated
> to stack - offset 1
> 1120 ;i Allocated
> to registers r5
> 1121 ;counter Allocated
> to registers r2
> 1122
> ;------------------------------------------------------------
> 1123 ;
> ../../cpu/cc2430/dev/cc2430_rf.c:160: cc2430_rf_send_b(void *payload,
> unsigned short payload_len) __banked
> 1124 ;
> -----------------------------------------
> 1125 ; function cc2430_rf_send_b
> 1126 ;
> -----------------------------------------
> 828D 1127 _cc2430_rf_send_b:
> 828D C0 09 1128 push _bp
> 828F 85 81 09 1129 mov _bp,sp
> 8292 C0 82 1130 push dpl
> 8294 C0 83 1131 push dph
> 8296 C0 F0 1132 push b
> 1133 ;
> ../../cpu/cc2430/dev/cc2430_rf.c:164: printf("sending %x
> bytes.\n",payload_len);
> 8298 E5 09 1134 mov a,_bp
> 829A 24 FC 1135 add a,#0xfc
> 829C F8 1136 mov r0,a
> 829D E6 1137 mov a,@r0
> 829E C0 E0 1138 push acc
> 82A0 08 1139 inc r0
> 82A1 E6 1140 mov a,@r0
> 82A2 C0 E0 1141 push acc
> 82A4 74 31 1142 mov a,#__str_2
> 82A6 C0 E0 1143 push acc
> 82A8 74 7C 1144 mov a,#(__str_2>> 8)
> 82AA C0 E0 1145 push acc
> 82AC 74 80 1146 mov a,#0x80
> 82AE C0 E0 1147 push acc
> 82B0 12 3D 15 1148 lcall _printf
> 82B3 E5 81 1149 mov a,sp
> 82B5 24 FB 1150 add a,#0xfb
> 82B7 F5 81 1151 mov sp,a
> 1152 ;
> ../../cpu/cc2430/dev/cc2430_rf.c:165: printf("payload addr %p.\n",
> payload);
> 82B9 A8 09 1153 mov r0,_bp
> 82BB 08 1154 inc r0
> 82BC E6 1155 mov a,@r0
> 82BD C0 E0 1156 push acc
> 82BF 08 1157 inc r0
> 82C0 E6 1158 mov a,@r0
> 82C1 C0 E0 1159 push acc
> 82C3 08 1160 inc r0
> 82C4 E6 1161 mov a,@r0
> 82C5 C0 E0 1162 push acc
> 82C7 74 44 1163 mov a,#__str_3
> 82C9 C0 E0 1164 push acc
> 82CB 74 7C 1165 mov a,#(__str_3>> 8)
> 82CD C0 E0 1166 push acc
> 82CF 74 80 1167 mov a,#0x80
> 82D1 C0 E0 1168 push acc
> 82D3 12 3D 15 1169 lcall _printf
> 82D6 E5 81 1170 mov a,sp
> 82D8 24 FA 1171 add a,#0xfa
> 82DA F5 81 1172 mov sp,a
> 1173 ;
> ../../cpu/cc2430/dev/cc2430_rf.c:166: printf("SP %x.\n", SP);
> 82DC AD 81 1174 mov r5,_SP
> 82DE 7E 00 1175 mov r6,#0x00
> 82E0 C0 05 1176 push ar5
> 82E2 C0 06 1177 push ar6
> 82E4 74 56 1178 mov a,#__str_4
> 82E6 C0 E0 1179 push acc
> 82E8 74 7C 1180 mov a,#(__str_4>> 8)
> 82EA C0 E0 1181 push acc
> 82EC 74 80 1182 mov a,#0x80
> 82EE C0 E0 1183 push acc
> 82F0 12 3D 15 1184 lcall _printf
> 82F3 E5 81 1185 mov a,sp
> 82F5 24 FB 1186 add a,#0xfb
> 82F7 F5 81 1187 mov sp,a
>
>
>
>
>
> ------------------------------------------------------------------------------
> Throughout its 18-year history, RSA Conference consistently attracts the
> world's best and brightest in the field, creating opportunities for
> Conference
> attendees to learn about information security's most important issues
> through
> interactions with peers, luminaries and emerging and established
> companies.http://p.sf.net/sfu/rsaconf-dev2dev
> _______________________________________________
> Sdcc-user mailing
> listsdcc-u...@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/sdcc-user
>
>
>
>
>
> ------------------------------------------------------------------------------
> Throughout its 18-year history, RSA Conference consistently attracts the
> world's best and brightest in the field, creating opportunities for Conference
> attendees to learn about information security's most important issues through
> interactions with peers, luminaries and emerging and established
> companies.http://p.sf.net/sfu/rsaconf-dev2dev
> _______________________________________________
> Sdcc-user mailing
> listsdcc-u...@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/sdcc-user
>
>
>
>
> ------------------------------------------------------------------------------
> Throughout its 18-year history, RSA Conference consistently attracts the
> world's best and brightest in the field, creating opportunities for Conference
> attendees to learn about information security's most important issues through
> interactions with peers, luminaries and emerging and established
> companies.http://p.sf.net/sfu/rsaconf-dev2dev
> _______________________________________________
> Sdcc-user mailing
> listsdcc-u...@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/sdcc-user
>
>
> ------------------------------------------------------------------------------
> Download Intel® Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during
> beta.http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Sdcc-user mailing
> listsdcc-u...@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/sdcc-user
>
>
>
>
> ------------------------------------------------------------------------------
> Download Intel® Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Sdcc-user mailing list
> Sdcc-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sdcc-user
>
>
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user