preatorian
Junior Member
Offline
Posts: 44
Thank You
-Given: 16
-Receive: 18
|
|
« on: December 20, 2008, 10:43:02 10:43 » |
|
Hi all, I'm using Hi-tech PICC PRO v9.60 and i have a problem using it for PIC12F675. In the interrupt service routine the W register is saved automatically by compiler, but in wrong address - 0x7F, which is invalid RAM address. Is it a bug or I am doing something wrong? No matter what code I write - whatever is main, with some ISR function which change the W register, the compiler saves it at invalid address. Can anyone confirm that and is there a solution? Thanks
|
|
|
Logged
|
|
|
|
FriskyFerret
Hero Member
Offline
Posts: 560
Thank You
-Given: 513
-Receive: 360
Put it in, take it out.
|
|
« Reply #1 on: December 20, 2008, 02:36:38 14:36 » |
|
Are you using a cracked version? If yes, have you tried this with the trial or Lite version for confirmation of the behavior?
|
|
|
Logged
|
Dancing pants and leotards, that's what I'm talkin' about!
|
|
|
preatorian
Junior Member
Offline
Posts: 44
Thank You
-Given: 16
-Receive: 18
|
|
« Reply #2 on: December 20, 2008, 02:43:27 14:43 » |
|
I've tried on v9.51 which is not "PRO" - the code is generated correctly there. The problem is showed on 9.60 PRO, which is cracked. I haven't tried on lite or trial one.
|
|
« Last Edit: December 20, 2008, 02:49:18 14:49 by preatorian »
|
Logged
|
|
|
|
|
preatorian
Junior Member
Offline
Posts: 44
Thank You
-Given: 16
-Receive: 18
|
|
« Reply #4 on: December 21, 2008, 08:24:48 08:24 » |
|
yes, it is actually the HCPICP-pro-960PL3...Full ******UPDATED***** one.
|
|
|
Logged
|
|
|
|
bunion
Hero Member
Offline
Posts: 701
Thank You
-Given: 660
-Receive: 4122
|
|
« Reply #5 on: December 21, 2008, 08:34:03 20:34 » |
|
preatorian try using the lite version of 9.60 pl3 and eval using untouched exes... itll be hard for my patched exes to mess stuff up themselves as i havnt changed any jumps etc..how my crack works is this.... EDITED by bunion , i did notice however that that version your talkin about and only that version always seemed to run as lite when i was testing it in hitide ide even though it ran as pro eval in mplab...i found out that the place where i had stored code ( in an area only used for memory buffer overun errors ) somehow was messing with my code so i relocated the code to unused areas and that solved it...i then redone all the exes just to make sure...if it doesnt happen on legit eval of same version then no prob i can shift the code along somemore to free up memory your project might be trying to use...pleas check first tho ok ....tip...u can also try my ist patch of 960p3 BEFORE i updated it as that uses diff memory location...if your not using hitide ide that is bunion
|
|
« Last Edit: December 21, 2008, 09:07:09 21:07 by bunion »
|
Logged
|
|
|
|
preatorian
Junior Member
Offline
Posts: 44
Thank You
-Given: 16
-Receive: 18
|
|
« Reply #6 on: December 21, 2008, 10:00:17 22:00 » |
|
preatorian try using the lite version of 9.60 pl3 and eval using untouched exes...
OK bunion I'll try that, will report the results later... thanks Posted on: December 21, 2008, 10:39:05 22:39 - Automerged
OK, I uninstalled the cracked one. Installed it again with 45 days evaluation period. Recompiled the very same code and the error remains. I am attaching screenshot for visualization of the problem.
|
|
|
Logged
|
|
|
|
bunion
Hero Member
Offline
Posts: 701
Thank You
-Given: 660
-Receive: 4122
|
|
« Reply #7 on: December 21, 2008, 10:29:33 22:29 » |
|
preatorian try same project in mplab ide...if u read my post above youll see that i discovered some bugs in latest hitide ide that dont happen in mplab
...also to remove any doubts about whats causing the error it be best if u can get a new key officially as im guessing u used my tip in pm ?
bunion
|
|
|
Logged
|
|
|
|
preatorian
Junior Member
Offline
Posts: 44
Thank You
-Given: 16
-Receive: 18
|
|
« Reply #8 on: December 22, 2008, 09:41:14 09:41 » |
|
yes bunion, I was using you instructions in pm. Now I tried with mplab. The result is the same.
|
|
|
Logged
|
|
|
|
bunion
Hero Member
Offline
Posts: 701
Thank You
-Given: 660
-Receive: 4122
|
|
« Reply #9 on: December 22, 2008, 02:15:33 14:15 » |
|
preatorian does the error happen with all chips or just the one u r using?
if u can plz attach complete project so i can try here bro
bunion
|
|
|
Logged
|
|
|
|
preatorian
Junior Member
Offline
Posts: 44
Thank You
-Given: 16
-Receive: 18
|
|
« Reply #10 on: December 22, 2008, 06:46:23 18:46 » |
|
Sure bunion, I'll try to isolate the problem and post a simpler code that shows exactly what's all about. Will compile the simpler code for 12F629 and will post the results here.
Posted on: December 22, 2008, 07:05:12 19:05 - Automerged
OK, I created a new project with only 2 empty functions - main and Isr. Compiled them in mplab for 12F675 and 12F629, where 0x7F is invalid address for both chips. Results are attached.
|
|
« Last Edit: December 22, 2008, 07:01:31 19:01 by preatorian »
|
Logged
|
|
|
|
si_bin
Guest
|
|
« Reply #11 on: December 23, 2008, 02:06:11 02:06 » |
|
it's seem to be picc's bug
|
|
« Last Edit: December 23, 2008, 06:21:58 06:21 by si_bin »
|
Logged
|
|
|
|
bunion
Hero Member
Offline
Posts: 701
Thank You
-Given: 660
-Receive: 4122
|
|
« Reply #12 on: December 23, 2008, 02:23:59 02:23 » |
|
preatorian im getting same result as you using a completely legit version od picc pro 963 _T1SYNC 0082 _INTEDG 040E _PCLATH 000A _INTCON 000B _OSCCAL 0090 _TMR1GE 0086 _TMR1IE 0460 _TMR1IF 0060 _TMR1CS 0081 _TMR1ON 0080 _OPTION 0081 _STATUS 0003 _TRISIO 0085 __end_of_Isr 0018 saved_w 007F __Hrdata_0 0001 __Hramdata 0001 so...you are either reading it wrong or youve found a bug and best bet is to talk to them via there forum if it is a bug then i couldnt use it as id lose all trust in it working correctly bunion ah just seen si bins post so he read it wrong si_bin?
|
|
« Last Edit: December 23, 2008, 02:27:13 02:27 by bunion »
|
Logged
|
|
|
|
preatorian
Junior Member
Offline
Posts: 44
Thank You
-Given: 16
-Receive: 18
|
|
« Reply #13 on: December 23, 2008, 08:43:21 08:43 » |
|
I added a simple counter to the code that increments by 5 in the Isr. The results showed the disassembly in mplab is not complete, for full dissasembly you have to open the *.lst file generated by PICC. Attaching the results. Posted on: December 23, 2008, 09:25:46 09:25 - Automerged
OK, I've made a post in hi-tech forum, here is the link: http://forum.htsoft.com/all/showflat.php/Cat/0/Number/90642/an/0/page/0#Post90642
|
|
« Last Edit: December 23, 2008, 08:51:50 08:51 by preatorian »
|
Logged
|
|
|
|
preatorian
Junior Member
Offline
Posts: 44
Thank You
-Given: 16
-Receive: 18
|
|
« Reply #14 on: December 23, 2008, 11:15:03 11:15 » |
|
Hah, Hi-tech have posted this bug as issue: Variables in unimplemented memory (Build 2685) description: Midrange devices which have more than one RAM bank but GPR memory in only implemented in bank zero, and the limit of GPR memory was less than 07Fh, could have allocated temporary variables into an unimplemented region of bank zero. More info: http://forum.htsoft.com/all/showflat.php/Cat/0/Number/69352/an/0/page/0/gonew/1#UNREADPosted on: December 23, 2008, 11:56:28 11:56 - Automerged
Just downloaded the latest hotfix and installed it - 9.60PL4 build 3206. It seems everything is fine now, they have fixed that bug.
|
|
|
Logged
|
|
|
|
bunion
Hero Member
Offline
Posts: 701
Thank You
-Given: 660
-Receive: 4122
|
|
« Reply #15 on: December 23, 2008, 06:53:20 18:53 » |
|
Nice one we sorted it in the end ...ok preatorian next step is to share the hotfix as i dont see it anywhere ta bro nice job bunion
|
|
|
Logged
|
|
|
|
|
|
bunion
Hero Member
Offline
Posts: 701
Thank You
-Given: 660
-Receive: 4122
|
|
« Reply #18 on: December 23, 2008, 10:48:16 22:48 » |
|
lol thats y i asked you to get us it pretorian :p
thanks
bunion
|
|
|
Logged
|
|
|
|
preatorian
Junior Member
Offline
Posts: 44
Thank You
-Given: 16
-Receive: 18
|
|
« Reply #19 on: December 24, 2008, 08:48:15 08:48 » |
|
But registration is free bunion
regards
|
|
|
Logged
|
|
|
|
mitsos
Hero Member
Offline
Posts: 860
Thank You
-Given: 3087
-Receive: 4596
|
|
« Reply #20 on: December 25, 2008, 06:11:58 18:11 » |
|
hi in the net I find also this link www.htsoft.com/forum/attachments/HCPICP-pro-9.60PL4.2729.exeis this patch from hitech, a previous version than HCPICP-pro-9.60PL4.3206.exe? Please make clear to use or not this official patch. regards mitsos
|
|
|
Logged
|
|
|
|
preatorian
Junior Member
Offline
Posts: 44
Thank You
-Given: 16
-Receive: 18
|
|
« Reply #21 on: December 25, 2008, 06:45:34 18:45 » |
|
Hi, here is what hi-tech say about the different builds: Fixes are now available for HI-TECH C PRO for PIC10/12/16 MCU Family Compiler Version 9.60PL3.
The fixes are distributed in the form of a complete compiler installer. The compiler to be installed is a release candidate for the PICC PRO V9.60PL4 build 3206 compiler. The installed compiler will identify its build number when run.
DISCLAIMER: Please note that the installers posted here may not have been subjected to the same level of testing as the production releases. Installation of this product shall be done at your own risk.
Select the compiler installer corresponding to your operating system from the list below:
* For Windows installer click here * For Linux installer click here * For Mac OSX installer click here
NOTE: The above Windows installer includes v1.26 of the MPLAB toolsuite plug-in.
The details of the fixes in this build are as follows:
Driver
* Additional RAM ranges (Build 3001) description: When using the additional RAM ranges feature, the additional ranges were only being added to BANK linker classes. This has been corrected so that the additional ranges are also added to the RAM linker class. * IRP bit after startup (Build 2729) description: In some circumstances the IRP bit may have been left set prior to entering main(). The main() function assumes that it is clear and therefore indirect accesses in this function may have been affected. * Printf in Lite-mode (Build 2685) description: When compiling in Lite mode, Error [712] C:\Program Files\HI-TECH Software\PICC\PRO\9.60\lib\doprnt.c; 741. can’t generate code for this expression may have resulted if a project used printf or sprintf library routines, and the %s format specifier was not used in the program. * Variables in unimplemented memory (Build 2685) description: Midrange devices which have more than one RAM bank but GPR memory in only implemented in bank zero, and the limit of GPR memory was less than 07Fh, could have allocated temporary variables into an unimplemented region of bank zero.
Code Generator
* Bit Objects (Build 3206) description: A missing bank select instruction was found to occur in some circumstances dealing with operations involving bits. For example: banked_bit_object ^= 1; * Pointers to Functions (Build 3206) description: In some circumstances where a function is only called via a function pointer, no entry was entered into the jump table to access it. This resulted in an undefined label error. This tended to occur mostly when the function pointer was defined as a local variable (auto). * Indirectly accessing objects (Build 3206) description: A problem was identified that caused the IRP bit to get out of synch with indirectly accessing objects in some circumstances. * Externally defined pointers (Build 3001) description: The compiler will now allow externally defined pointers (defined in assembly) to be two bytes in size. * FNALIGN error (Build 2740) description: In complex applications using function pointers to many functions which have no parameters, the compiler may have given an FNALIGN error. This has been corrected. * Error message for auto bits (Build 2740) description: An error message is now emitted if a bit variable has been declared not static or global. * Indirect access with 2-byte pointers (Build 2740) description: In some expressions involving multiple indirect accesses via two-byte pointers to RAM objects, the IRP bit could get set incorrectly. This has been corrected. * Return value on base-line devices (Build 2729) description: In some circumstances on base-line devices (eg: 10Fxxx/12Cxxx) that had a non-fastcall function that returned a byte, the return value may have been incorrect. This has been fixed. * Uninitalized Objects (Build 2685) description: If a program had bit variables defined and these happened to be allocated in a separate region to other uninitialized objects within a bank, then only one of these regions would get cleared. This has been fixed so that all uninitialized objects are kept in the same region within a bank and therefore the startup code has only one range per bank to clear. * Indirect access to 16 bit object (Build 2685) description: Fixed a sequence of code used in some circumstances to provide indirect access to a 16 bit data object. The indirect selection would have always operated on bank 0 and 1 which would have caused a problem if the target was in bank 2 or 3. * Integer to long conversion (Build 2685) description: Fixed bank selection problem with conversion of int to long. * Bit operations in Lite mode (Build 2685) description: Fixed bank selection bug with assignments to bit objects – this bug is more likely to occur when in Lite mode as more efficient productions can be used in Pro mode. * Indirect access to 32 bit object (Build 2685) description: Fixed a typo in code for dereferencing a pointer to 32bit object.
Assembler
* Optimizations on direct switch code (Build 2729) description: C code that used the #pragma switch direct on switch statement(s) may have caused the assembler optimizer to incorrectly remove some instructions. This has been corrected.
Libraries
* Flash library routines (Build 3001) description: The library routines provided for accessing flash memory has been update. This is to correct a problem which was preventing them for working correctly. * Writing to EEPROM in Lite mode (Build 2685) description: Previously, the library function, eprom_write() would fail if building in Lite mode.
Header files
* EEPROM_WRITE in Lite mode (Build 2685) description: Rewrote the EEPROM_WRITE routine so that the timing-critical sequence is observed. Previously, this routine would not succeed if compiled in Lite mode.
Processor definition file (PICC.INI)
* Incorrect RAM bank ranges for 16F726/727 & 16LF726/727 (Build 3001) description: There is an additional 16 bytes of RAM available for these devices in banks 2 & 3 which was missing from the definition.
HI-TIDE plug-in
* HI-TIDE v3.13 compatibility (Build 3206) description: The HI-TIDE plug-in has been updated to support the previous v3.13 HI-TIDE. Regards
|
|
|
Logged
|
|
|
|
|