For the previous version you used, the limitation was 16KB for both ST7 and STM8. For the new version, it is now 32KB for the STM8 and only 4KB for the ST7 derivatives. You should keep the old RIDE on your old computer (if not, you would have to purchase a complete version).
2 2010-04-29 13:41:15
Re: POSSIBLE LOOP IN OVERLAY PROCESSING (4 replies, posted in 8051)
As I said, the error message is supposed to be generated when a recursive call is found. If it is not the case, it would be nice to send us an example to analyze the situation.
On the principle, when the warning is generated, the overlay is not applied to the branch that is being analyzed. Therefore, YES, the warning can be just ignored. The warning means that the resulting overlay rules could be better, but with a potential risk. Giving up the overlay mechanism is not risky, but the overall data consumption could be higher than the optimal solution.
3 2010-04-22 09:45:52
Re: POSSIBLE LOOP IN OVERLAY PROCESSING (4 replies, posted in 8051)
This problem occurs typically with recursive function. Is writeRegister recursive ?
If it it the case, and you know that there is no problem with the local variables, just ignore the warning. I know that the warning is output even with functions declared as reentrant. We will remove the warning in this case.
4 2010-04-08 13:24:54
Re: RCSTM8 locks up during build (3 replies, posted in ST7/STM8)
Thanks for the report. We will fix it (but the fix will not be available in the very next version that is already finalized).
The issue is caused by a combination of several syntactic errors. Typically, adding any instruction after the last if-statement (if(iXhome==1)) will fix the problem. For example a null instruction (semicolon).
5 2010-03-05 14:52:51
Topic: "Multiple vector-single handler" and "global code translation" (0 replies, posted in 8051)
I got the 2 following questions and want to post the answers that could help some other developpers facing the same issues:
1. It´s possible that a unique function (interrupt service routine) serves
several HW interrupts? When possible how can we implement it?
Try this:
void timer0_irq ( void ) interrupt 1
{
output_packet_timeout--;
}
typedef struct
{
unsigned char ljmp_opcode;
void (*fct) ( void );
} t_irq_handler;
at 0x001b code t_irq_handler timer1_irq_handler = { 0x02, &timer0_irq }; //timer1 irq call timer0 handler
2. How can I allocate all the code in a fixed position (i.e we want that all
the code starts on the position 0x4000, reset interrupt included), without
to change the startup.a51, only with linker/compiler directives.
Insert the following directives in the additional options of the linker:
ABSOLUTECODEOFFS(04000H) CODE(04000H)
6 2010-02-25 10:01:24
Re: Simulator shows Time 2x to fast (2 replies, posted in 8051)
We'll check and fix this issue for the next release (that will come soon).
7 2010-02-25 09:59:11
Re: Optimization issue with delay loops (2 replies, posted in 8051)
Adding the _nop_() is the best solution. At least, it forces the body of the loop. However, it does not specify how the 'frame' of the loop will be built. For sure, it could depends on the complier settings (and -at least- on the compiler itself). But such a simple loop will probably stay unchanged in the future versions of the compiler. Thus, it could work..
Now, the best way to implement a delay is, for sure, programming a timer!
8 2010-02-12 17:05:43
Re: Signed vs. Unsigned Divide (3 replies, posted in ARM)
The general rule for the common binary operators is: when two operators signed/unsigned of the same size are used, both are converted to the 'unsigned' type, and the operation is performed as an unsigned operation.
When the type size are different, the 'bigger' type is choosen (whatever the 'signed' attribute).
9 2010-02-12 17:01:28
Re: Can't use XRAM for storing array of strings (2 replies, posted in 8051)
xdata unsigned char *array[10];
array[0]="MENU 1";In this case array is an array located in the default memory space (data for small memory model, xdata for large memory model,...) of pointers to uchar in xdata. A string is located in CODE space. Therefore, the pointed spaces do not match.
If you wish to relocated the array in xdata, you have to place the 'xdata' keyword on the right side of the star (same rule as the ANSI rules for const/volatile) :
unsigned char * xdata array[10];In this case, array[0] is considered as a generic pointer (if the default 'generic' mode is active), pointing either to code/data/xdata/....
10 2010-02-12 10:19:39
Re: Trace support for RLink ARM Cortex (7 replies, posted in ARM)
Yes, this feature has been implemented under RIDE7. It will be available first for the next 'Primer'.
11 2009-11-03 14:54:37
Re: Debug errors using STM32 (9 replies, posted in ARM)
We'll check the issue and will send you a patch (or make it available on the web site).
12 2009-11-02 15:16:57
Re: Error 107 when code banking is used (1 replies, posted in 8051)
On the principle, the data overlay does not depend on the bankswitching. These are two independent mechanisms.... I made a simple try, and I don't see the difference. Could you send us a small example that shows the issue ?
13 2009-10-05 07:26:11
Re: Use of Ride 7 and RLink with my own ST M3 Board (4 replies, posted in ARM)
Yes, both RLink and RLink pro are provided with 20 pin adapters to be connected to your own board. The difference between them is the 32K limit (for debugging only, not for programming). Both handle both JTAG and SWD protocols.
14 2009-09-25 14:22:38
Re: Code Coverage Listing and Reports (5 replies, posted in 8051)
Bob,
Behnaz is not at the office this afternoon and I cannot check with her. I read what you wrote, checked with the RIDE 6 version installed on my computer, and I see an extra command 'Code Coverage' (that opens a sub-menu') in the popup menu of the editor view. The sub-menu provides the commands "Show", "Create a Report" and "Reset".
The 'Create Report' opens a text file that looks like:
[0x0001] for (i = 0; i <= SIZE; i++)
{
[0x1491] if (flags[i]) /* found a prime */
{
[0x0506] prime = i + i + 3; /* twice index + 3 */
[0x0506] for (k = i + prime; k <= SIZE; k += prime)
{
[0x3A97] flags[k] = FALSE; /* kill all multiples */
}
[0x0506] count++; /* primes found */
}
}I don't if it could help.
I believe that, for RIDE6) script files can be executed for some packages only (RKit Entreprise).
Could you let me know if you can (in debug mode) load the following script (and if it is properly executed).
void main ()
{
int i;
i = 0;
while ( i < 10 )
{
DebugStepInto(1);
i = i+1;
}
}To execute it, save the contents into a file named test.wsc, then execute the command RideScript | Load file.
If it works, I will try to write for you a small script that creates a simple report.
15 2009-09-23 15:37:41
Re: RIDE7, Cortex-M3, CMSIS and ITM Channel debugging (1 replies, posted in ARM)
The current RLink version does not support SWV/ITM. Under development.
16 2009-09-23 15:32:57
Re: Code Coverage Listing and Reports (5 replies, posted in 8051)
In the source view (editor), you have (popup menu) a command that allows to display code coverage, and also another command that creates another report. This report will be a copy of the source file, with the code coverage information on the left side. Don't know if it could help...
Another possibility would be to create a small script to generate a customized report.
17 2009-08-27 15:33:14
Re: How to use assembly code in 8051 c programs in the RIDE ide ? (5 replies, posted in 8051)
Did you declare the function as reentrant in the definition ? The naming of a reentrant (versus non-reentrant) is different. It allows to check that the parameters are stored at the right place.
18 2009-08-24 10:44:32
Re: REva 3.3 and JTAGjet ?? (5 replies, posted in ARM)
The STR912 board used to be delivered with a REVA2 (that has the 20 pin connector on the mother board). There is also a footprint on the daughter board for a mictor connector (to connect JTAGJet-ETM), but the mictor connector was soldered only when sold with a JTAGJet-ETM.
You will find the pinout of the REVA schematic.
For the SWD connection, see also: http://raisonance-forum.xsalto.com/view
hp?id=2449
19 2009-08-14 12:40:48
Re: Bootloader ELF file disappears (3 replies, posted in Ride IDE)
It looks like a CircleOS application, for the Primers. You can download any CircleOS application from www.stm32circle.com (see project section), and build your project in the same way (two applications in a single project).
20 2009-08-11 07:21:58
Re: Variable casting/comparing problem (16 replies, posted in 8051)
Ok, I look at the email and I will answer.
21 2009-08-10 10:16:03
Re: REva 3.3 and JTAGjet ?? (5 replies, posted in ARM)
The ARM connector was available on REVA2, but it is not on REVA3. The 20 pin is also available on some boards to connect JtagJET when ETM is available on the device (STM32F107 and STR9), but it's not the case of F103.
Conclusion:
1. you cannot connect JTAGjet to 'REVA3+STM32F103) with a simple ribbon cable.
2. the only possiible connection could be with a set of single wires (only two wires if you use SWD).
22 2009-08-07 08:55:16
Re: Variable casting/comparing problem (16 replies, posted in 8051)
The problem with our specific program, however, remains
I thought you fixed the issue when fixing:
if(ident & 0x7F == node_id || ident==0 ) //node_id is 0x31
Do you have another problem?
If you have a problem with interrupt, I suggest that you disable the optimization option that make the compiler using the 'Absolute Registers".
23 2009-08-07 08:50:36
Re: REva 3.3 and JTAGjet ?? (5 replies, posted in ARM)
Which daughter board (or derivative..) are you working on ?
24 2009-08-06 11:18:28
Re: Variable casting/comparing problem (16 replies, posted in 8051)
ok... I believe that the parenthesis could be NOT supported in this case... (for the directory name).
25 2009-08-06 09:14:17
Re: Ride crashes (2 replies, posted in Ride IDE)
Yes, the procedure looks complex, but all the steps are mandatory. Most of times, it does not work because only one step is missing...