Hello everybody,
I started compiling and I went to look the final result on the assembler code.
The purpose was to compile for an 12F180 which should be able to use self saving register on an interrupt call, but the compiler handle as old midrange MCU.
The addressing of strings written in program memory should be possible to use single byte, but it shown a series of RETLW char .
I'm pleased to see a good optimization for the rest of the compiled result.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The use of RETLW is the call method we use across a number of chip families. The real person to answer this is specific question is Hugh.
Regarding the saving of the interrupt register. I did make a major change last year but I had to revert the change as it broke other chips. See below. If we were to have another attempt at this then we would need a more robust test regime across a lot of chips. The change itslef is relatively simple... the testing failed on change 1019 and 1020 to find the side effects.
10/05/20221117FixCOMPILER"Fix: Reverting the complete method AddInterruptCode() to resolve this Family15 interrupt issue. This also reverts K42 interrupt handler improvements. This will increase interrupt latency but it is intended to resolve stability issues.[1355]Removes the following two changes.-1019NEWCOMPILERINTERUPTNew:ImprovedinterruptlatencybyaddingFamily15(12Fand16F)interrupthandlertouseshadowlocationsforsystemvariables,thereforeusechipsautomaticcontextsaving[1258]-1020NEWCOMPILERINTERUPTNew:ImprovedinterruptlatencyforallFamily16(18F),wasjustK42chips,interrupthandlertouseshadowlocationsforsystemvariables,thereforeusechipsautomaticcontextsaving[1259]"
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you so much for your appreciation, but I have a little knowledge to accomplish such a task. Further more the capability to make a solution will imply even some hardware testing, of which I'm poorly able to keep up.
I was almost able to do something with midrange PIC MCU. But I got to agree that family is obsoleted and should be discouraged to make any project. Then currently I looking forward to the newer MCU which even Microchip wants to promote.
For this case, I suppose that there should be some declaration that will tell the kind of MCU that are excluded from the procedure of saving the registers. Also some other features added, in particular the enhanced mid-range, that has doubled the stack for subroutines jumps.
But to make a bit easier for developing, just let the user to decide whether wants to use the new features, like the mentioned one. In most of the cases is not a problem the cost of some additional routine currently in use.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello everybody,
I started compiling and I went to look the final result on the assembler code.
The purpose was to compile for an 12F180 which should be able to use self saving register on an interrupt call, but the compiler handle as old midrange MCU.
The addressing of strings written in program memory should be possible to use single byte, but it shown a series of RETLW char .
I'm pleased to see a good optimization for the rest of the compiled result.
The use of RETLW is the call method we use across a number of chip families. The real person to answer this is specific question is Hugh.
Regarding the saving of the interrupt register. I did make a major change last year but I had to revert the change as it broke other chips. See below. If we were to have another attempt at this then we would need a more robust test regime across a lot of chips. The change itslef is relatively simple... the testing failed on change 1019 and 1020 to find the side effects.
Be good to geta developer. Are you interested in helping in the development work?
Thank you so much for your appreciation, but I have a little knowledge to accomplish such a task. Further more the capability to make a solution will imply even some hardware testing, of which I'm poorly able to keep up.
I was almost able to do something with midrange PIC MCU. But I got to agree that family is obsoleted and should be discouraged to make any project. Then currently I looking forward to the newer MCU which even Microchip wants to promote.
For this case, I suppose that there should be some declaration that will tell the kind of MCU that are excluded from the procedure of saving the registers. Also some other features added, in particular the enhanced mid-range, that has doubled the stack for subroutines jumps.
But to make a bit easier for developing, just let the user to decide whether wants to use the new features, like the mentioned one. In most of the cases is not a problem the cost of some additional routine currently in use.
I like the idea of a declaration. I will look again soon as optimising the interrupt handler.
I do not want to clutter the compiler with declarations, but, it may be required.