<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[RAISONANCE forums - Microcontroller and Smart Card development tools]]></title>
	<link rel="self" href="http://forum.raisonance.com/extern.php?action=feed&amp;type=atom"/>
	<updated>2012-05-16T21:56:01Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.raisonance.com/index.php</id>
		<entry>
			<title type="html"><![CDATA[How to include static libraries in Ride 7 projects]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4454&amp;action=new"/>
			<summary type="html"><![CDATA[Hello,

 I am working on a RIDE 7 based project. And I need to include some static libraries (file extensuin .a) in my project.
 
 How could this be done?

 Thanks in advance.]]></summary>
			<author>
				<name><![CDATA[Eselchen]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=26659</uri>
			</author>
			<updated>2012-05-16T21:56:01Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4454&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Bad peephole optimization code]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4576&amp;action=new"/>
			<summary type="html"><![CDATA[I just cranked up the optimizer to level 3 in Ride7 for the STM8L151C8 mcu, and it is generating bad code. In particular, after I call a function, the function pushes 3 bytes of data to the stack, but when the function returns it puts the stack pointer forward 5 bytes - not 3. Therefore, when RETF is executed, an invalid address is loaded and the processor crashes.

Is there something special I have to do to get optimization level 3 to work?]]></summary>
			<author>
				<name><![CDATA[bcoons]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=30298</uri>
			</author>
			<updated>2012-05-16T16:26:58Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4576&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RLink ST7 ICC ADP burns after some time programming ST7 devices]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4574&amp;action=new"/>
			<summary type="html"><![CDATA[Q: I use RLink for programming ST7 devices. At first it works but after some time the it stops working. Changing the ADP makes it work again but only for some time. Why does it happen and how can I stop it?

A: This behavior is caused by an electrical conflict that does not prevent the system from working but that after some time burns the ADP. The typical sources of such conflicts are:


1. Several power supplies. If your board has its own power supply, you MUST NOT plug the PW5V jumper on the ADP. Of course in all cases you must make sure the VCC signal is connected from the RLink to the target board.


2. Several clocks. If your board contains its own oscillator/crystal, then you MUST NOT plug the 12MHz jumper on the  ADP. Of course you must make sure that there are no electrical conflicts between the RLink and the components of the board on all signals. Especially on 12MHz, but also on VPP, RESET , etc.


3. Not isolated power supply. If you use an external power supply, you must make sure that it is correctly isolated from mains. Keep in mind the RLink's GND is connected to your building's ground through the USB and PC, so you must not connect to a phase or neutral of mains.


4. Current peaks during connection. You must respect this order of connection as much as possible:

  1. First plug all the "non-supplied" connections: ADP to RLink, ADP to target board, all the jumpers on ADP, all the components and jumpers on target board.

  2. Then plug the board's power supply. (if it is not powered from the RLink)

  3. Finally plug the RLink's USB.

If for some reason (automated process) you must plug the ADP to the target board after the RLink (and/or the target board) is powered, then you must make sure that the power and ground are connected before the other signals, especially VPP and 12MHz, but also ICCDATA, ICCCLK and RESET. But only do this if there is no other solution, and if at all possible, prefer to follow the procedure recommended above.


You can find more information on the RLink [url=ftp://www.raisonance.com/pub/Support/RLink/GettingStartedRLink.pdf]here[/url]

And the schematics of the ADPs [url=http://forum.raisonance.com/viewtopic.php?id=2449]here[/url]


Note that the ST STICK is more robust than the RLink in some situations (and less in other situations) so the fact that there is no problem with the Stick is no proof that your system is correctly configured.

Note that this problem is not related to the use of STVP/SPVD or Ride/RFlasher.]]></summary>
			<author>
				<name><![CDATA[VincentC]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=105</uri>
			</author>
			<updated>2012-05-10T08:43:10Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4574&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Question about device selection]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4562&amp;action=new"/>
			<summary type="html"><![CDATA[I am trying to flash a ST72F325 device but I can only select ST72325 device.  Is that right? Will it still work or amI missing something? I get the]]></summary>
			<author>
				<name><![CDATA[Bruno]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=32007</uri>
			</author>
			<updated>2012-05-10T07:35:28Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4562&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[#pragma SRC and project file build order]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=2363&amp;action=new"/>
			<summary type="html"><![CDATA[When #pragma SRC is used to make a .src. file from a .c file, where should .src. be in the project pane. I presume that it must be below the .c from whence it came so that .c is compiled before .src is assembled. Is this order guaranteed?

   regards Steven Pruzina]]></summary>
			<author>
				<name><![CDATA[fkalensky]]></name>
				<email><![CDATA[steven.pruzina@csiusa.com]]></email>
				<uri>http://forum.raisonance.com/profile.php?id=109</uri>
			</author>
			<updated>2012-05-09T06:24:18Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=2363&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Code Banking on XA-G49]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4558&amp;action=new"/>
			<summary type="html"><![CDATA[Please, can anyony show example of accessing code (LEA of MOV) longer than 64kb limit?

I have code+resource 178 kbytes and resourse strings block.
From 0x7800 ofset i need to load resource string that placed at the end of code.
Please any example in ASM how to address it.
Thanks a lot!]]></summary>
			<author>
				<name><![CDATA[TonyW]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=31933</uri>
			</author>
			<updated>2012-05-08T06:41:10Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4558&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Using FPU on Cortex-M4]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4557&amp;action=new"/>
			<summary type="html"><![CDATA[The STM32F4xx series is based on a Cortex-M4 core. This includes a floating-point unit which can help a lot in improving your application performance in case you are performing floating-point operation.
Here is a series of useful points to keep in mind before using the FPU of your processor:

- The floating-point unit in the STM32F4xx offers hardware support for [i]single-precision[/i] IEEE-754 floats. This means that the "float" type is fully supported in hardware. But this also means that the "double" type is supported through software emulation (veeery slow). All the functions available from <math.h> such as sin(), expf() and the like are using double by default, which means that if you use them your code be big and slow! So consider using the float versions of these functions (with a "f" suffix) such as sinf() or cosf(). These will make good use of the FPU capabilities.

- If you use multiple independent tasks that use floats, such as if you use floating-point in the foreground of your application as well as in interrutps; or if you use an RTOS with several tasks that perform floating-point arithmetic, you will be in trouble: The FPU state has to be preserved between its different uses, as it is not reentrant! This may lead to complex code or inefficiencies.

- The GCC toolchain offers 3 ways to handle floating-point on STM32F4xx: Emulated float (-mfloat-abi=soft option) which disables the FPU; Hardware FPU with standard EABI parameter passing (-mfloat-abi=softfp option); and hardware FPU with specific parameter passing (-mfloat-abi=hard option). Choosing the right one between these 3 options depends on your application and its requirements.


Remember that floating-point computing on emebedded systems requires some care, so you should only use it if necessary. In particular, be wary of the float comparisons, which are not absolute (an "epsilon" difference may exist), also some operations may generate exceptions, infinities, Not-a-Number...]]></summary>
			<author>
				<name><![CDATA[Bruno]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=123</uri>
			</author>
			<updated>2012-05-07T09:39:40Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4557&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[TIM4 Configuration]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4552&amp;action=new"/>
			<summary type="html"><![CDATA[Hi
When configuring the TIM 4, I noticed that although the definition of reserved registers, the configuration is incorrect.
The library is:
# if defined (STM8S103) | | defined (STM8S003)
Reserved1 uint8_t / * <Reserved register * /
RESERVED2 uint8_t / * <Reserved register * /
# endif
but if you check in the debugger, what is the address of the register IER, it turns out that it has a value: 0x5341. According to me the address of this register should be 0x5343. Record is valid only in the register TIM4_CR1 (addr: 0x5340). Other records are not saved.
Microcontroller: STM8S003
IDE Version: 2.42.12.0083]]></summary>
			<author>
				<name><![CDATA[Bruno]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=17072</uri>
			</author>
			<updated>2012-05-02T08:41:53Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4552&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Configure STM8S903 for Timer6 auto reload]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4493&amp;action=new"/>
			<summary type="html"><![CDATA[Hi,

I am new to RIDE IDE and want start an application with IDE and Raisonance Tool-chain of 32K free compiler.

I Configured it to start application, for 16 MHz internal oscillator and want use Timer6 as basic time base for my application.

I configured it with all expected configuration, however I could not able to trigger the Interrupt for this timer.
Even I could not see increment in counter register too. 

Please help me to start interrupt.

Or list the sequence of register filling to start that.



void TimerInterrupt__Initialize(void)
{
    unsigned char temp;
    TIM6_CR2 = 0x10;    // No Sync
    TIM6_SMCR = 0x00;   //
    TIM6_IER = 0x00;
    TIM6_ARR  = 125;    // To Generate 250 micro sec Interrupt
    TIM6_CNTR = 125;
    TIM6_PSCR = 0x01;   // Prescalar  = 32 for 16 MHz F_Master Time base = 2 micro
    TIM6_IER = 0x01;
    TIM6_CR1 = 0x81;    //
   // TIM6_EGR = 0x01;
    temp = TIM6_CNTR;
    
}

Also please add / suggest if I missed something.

Thanks in advance.]]></summary>
			<author>
				<name><![CDATA[mantug]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=30469</uri>
			</author>
			<updated>2012-05-01T06:34:58Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4493&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Demo period is over]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4122&amp;action=new"/>
			<summary type="html"><![CDATA[Hello!
I'm registering and downloading Rkit-for STM8 -7.
Was fixed the license with restriction 32 kb code. Presently writes that ended the demo a period code-compressor and it is necessary registering.
But!!! I'm registering already!
What registration else needs?]]></summary>
			<author>
				<name><![CDATA[gt_2011]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=19397</uri>
			</author>
			<updated>2012-04-27T16:29:53Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4122&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[OPI Driver Error]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4539&amp;action=new"/>
			<summary type="html"><![CDATA[I am using the REva Starter kit with the STM32F107 Arm chip.  I am having difficulty with loading a program where I get the following error:
OPI Driver Error (ARM) Timeout error when programming flash

Not sure if this is something in my code, the environment or the hardware.  I validated the examples programs load and run fine, so I think hardware is fine.  Any ideas?

Thanks

Bill]]></summary>
			<author>
				<name><![CDATA[VincentC]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=27643</uri>
			</author>
			<updated>2012-04-26T07:18:04Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4539&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[global var in 2 c-files]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4531&amp;action=new"/>
			<summary type="html"><![CDATA[Hi,

I want to use a global variable in 2 c-files. I wrote a headerfile globalvar.h with
#ifndef GLOBALVAR
#define GLOBALVAR
unsigned char mytestbyte;
#endif

and included it in program1.c and program2.c
Program1.c and program2.c belong to the same project.
After Build Project I get: ***ERROR 104 : MULTIPLE PUBLIC DEFINITIONS symbol mytestbyte
Is there a convenient way to solve this problem?
I did the same using another mcu and a gnu compiler. There was no problem.
I have to manage a lot of global variables and want to save a lot of writing stuff.

Regards
cs]]></summary>
			<author>
				<name><![CDATA[cs]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=608</uri>
			</author>
			<updated>2012-04-19T09:23:45Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4531&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Make Default Enum Type Unsigned]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4532&amp;action=new"/>
			<summary type="html"><![CDATA[Hello Forum:

I have come across something unexpected when working with enumerated values with the Raisonance compiler.  Long story short, I was wondering if there was a way to tell the compiler to treat enumerations as unsigned rather than signed values?  I had expected using the ET(CHAR) and UNSIGNEDCHAR directives together would have this effect, but it does not.

The code snippet below shows the issue I have been seeing.  This code is in a packet handler in a link that has fixed packet type priorities.  When my current state is idle and I receive a command packet (and I expect 0x80 to be greater than 0x01), I do not do any processing on the packet.

[code]
typedef enum
{
   IdleEvent = 0x01,
   AcknowledgementEvent = 0x40,
   CommandEvent = 0x80,
   MaxEventType = 0x81
} EventType;

typedef struct
{
   EventType LinkState;
   /* ... */
} LinkEventParameters;

typedef struct
{
   EventType PacketType;
   uint8_t* PacketBuffer;
   /* ... */
} ReceivedPacketInfo;

static LinkEventParameters DataLinkEventParams;

static void doPacketProcessing(const ReceivedPacketInfo * const packetInfo)
{
   if (DataLinkEventParams.LinkState < packetInfo->PacketType)
   {
      /* Do work */
   }
   else if (DataLinkEventParams.LinkState == packetInfo->PacketType)
   {
      /* Do different work */
   }
   /* else, do no work */
}
[/code]

Here is the assembly generated by the compiler:

[code]
; FUNCTION ?doPacketProcessing?MY_MODULE?S (BEGIN)
              ; Register XW is assigned to parameter packetInfo
0000 88                                PUSH   A
0001 B600       F                   LD     A,DataLinkEventParams
0003 F1                                CP     A,(X)
0004 2E03                            JRSGE  ?ELSE_0036 ; Doing a signed compare!
              ; SOURCE LINE # 609 
                                             ; Do Work
0009         ?ELSE_0036:
              ; SOURCE LINE # 611 
0009 B600       F                      LD     A,DataLinkEventParams
000B F1                                   CP     A,(X)
000C 265E                              JRNE   ?NXT_0039
             ;...
[/code]

Note that I have been able to workaround this problem by casting EventType to a uint8_t before doing the compare, but I would rather not have to do this.

Any help would be appreciated.]]></summary>
			<author>
				<name><![CDATA[Bruno]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=31136</uri>
			</author>
			<updated>2012-04-19T07:47:23Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4532&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Cannot Install RLinkPro yet -- I read other forum and followed all.]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4530&amp;action=new"/>
			<summary type="html"><![CDATA[I would like to use RLin-kPro on my Windows XP laptop but it gives error message:

Cannot Install this Hardware
There was a problem installing this hardware: Raisonance RLINKUSB Dongle.
An error occurred during the installation.
Access is denied.

I read all forum related to RLink-Pro installation include:
http://forum.raisonance.com/viewtopic.php?id=2702
http://forum.raisonance.com/viewtopic.php?id=2173
http://www.stm32circle.com/forum/viewtopic.php?id=113

I followed all steps that the forum recommended -- Uninstall completely and reinstall:

I (1) uninstall driver from Device Manager, (2) remove all files from Windows folder that contains windrvr6 and RLinkDrv, (3) delete register key that conains windrvr6, RLinkDrv and VID_138E&PID_9000, and (4) manual driver search from]]></summary>
			<author>
				<name><![CDATA[Bruno]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=31117</uri>
			</author>
			<updated>2012-04-18T08:40:27Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4530&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Copying inram functions to RAM when no main() is defined?]]></title>
			<link rel="alternate" href="http://forum.raisonance.com/viewtopic.php?id=4518&amp;action=new"/>
			<summary type="html"><![CDATA[I am trying to copy some inram functions to RAM when no main() function is linked in my project (on an STM8L151C8). The problem is that when no main() function is present in a project, the symbol "__address__functionname" is not defined. It looks like this is a result of the static init section not being linked with the project, because no startup code is being linked with the project.

The reason I do not have a main() function is so that the image I am building can be bundled into a firmware file and downloaded to the device in the field through a custom bootloader. The problem is that when main() is defined, the linker inserts a jump at the reset vector (0x8000) to some startup code, but the reset vector needs to be claimed by my bootloader. 

Is there a way I can trick the linker into including the static var init block, while not inserting a jump at 0x8000?]]></summary>
			<author>
				<name><![CDATA[Bruno]]></name>
				<uri>http://forum.raisonance.com/profile.php?id=30298</uri>
			</author>
			<updated>2012-04-16T09:40:59Z</updated>
			<id>http://forum.raisonance.com/viewtopic.php?id=4518&amp;action=new</id>
		</entry>
</feed>

