µOne FAQ

Welcome to the µOne FAQ page, click a question to see the answer.

  1. Why can’t I connect to my target via the AIMLink to upload and debug my application?
  2. Why won’t my project build when I create a new thread in a µRTS application?
  3. Why can’t I load my µRTS application to my target?
  4. Why has my Ethernet connection crashed?
  5. Why can’t I use the Eclipse commands “Rename” and “Copy”?
  6. How do I configure my AIM-Kit in µOne to use the LCD screen with Agilia?

Why can’t I connect to my target via the AIMLink to upload and debug my application?

When you try to launch your debug session (by clicking on the micro one command « Upload to Target » or the downward arrow next to the bug in the eclipse toolbar) the application is not uploaded and flashed to the target. The AIM Link GDB server displays the following message (or similar):
AIMLinkGDBServerErrorMessage1
…and Eclipse displays this message:

eclipseErrorMessage1
or this message:
No probe available

When this happens, try the following:

  • Make sure the AIM Link is properly connected to the target
  • Make sure that Agilia is not connected to your target via the AIM Link
  • Reset your target by disconnecting its power supply then reconnecting it
  • Restart the AIM Link GDB Server program by clicking on the GDB server icon in µOne
  • See the question below

Why won’t my project build when I create a new thread in a µRTS application?

If you get an error message in the Eclipse console when building your project saying “RAM overflowed with stack”, you need to optimise your target’s memory, this can easily be achieved using the µOne command “Optimise Addresses”. Right click your µRTS system project and go to « µOne Commands » and click « Optimise Addresses ». Make sure you tick the boxes « rebuild project » and « upload to target » before clicking OK. Once the project is loaded, right click your µRTS application go to « µOne Commands » and click « Upload to target », the application should now build and be loaded to the target.

Why can’t I load my µRTS application to my target?

An error when loading a µRTS application will generate an exception (Hardfault). It can be linked to memory ranges (FLASH and RAM) being defined incorrectly.
The total FLASH and RAM memory of the micro-controller must be shared between the µRTS system and the application. If the system takes up all the memory, the application can therefore not be loaded.

For example, if we have a micro-controller with 256K of FLASH and 64K of RAM, the system should use only 64K of FLASH and 16K of RAM and leave 192K of FLASH and 48K of RAM for the application.

You must verify the memory sections (addresses and sizes) of the system and application in the file “memory.ld” of each project (available in the folder ldscripts). It is necessary to verify the addresses and sizes of the memory zones. If they are not correct re-optimise the system and re-load it to your target. You must then re-optimise and re-load the application.

– Using the Embedded GDB Server and Ethernet communication

When using communication via Ethernet with the embedded GDB Server, an error when loading a µRTS application can be linked to a bad definition of “Bootconfiguration”. The “Bootconfiguration” is a symbol that allows the definition of the start address of the µRTS application for the embedded debugger (using an Ethernet connection). This addresss is situated generally at the start of the memory zone assigned for the application.
The symbol “__BOOTCONFIGURATION” is defined in the system file “_symbol.ld” (in the ldscripts folder of the system project).
By default it is equal to ORIGIN(FLASH) + LENGTH(FLASH) that corresponds to the end address of the memory range for the system. If “__BOOTCONFIGURATION” = 0, The start address of the application will not be defined and the application cannot function.
You must verify that “__ BOOTCONFIGURATION” is not equal to 0, re-optimise the system using the « optimise addresses » command and re-load it to your target. You must then re-optimise and re-load the application.

– Using the PC based GDB Server and AIM-Link communication:

When using communication via AIM link with the PC based GDB server, an error when loading a µRTS application can occur if the Ethernet stack is active.
If this happens you must completely deactivate the Ethernet stack by using the AIM command “Enable the IP Stack” or simply by commenting the line ETHERNET_Init(); in the main.c file ot the system project (preventing the initialisation of the stack).
You must verify that the stack is not activated, re-optimise and re-load the system, you must then do the same for the application.
For the moment, the use of the IP stack with the PC based debugger and AIM-Link communication is not possible.

Why has my Ethernet connection crashed?

The Ethernet connection to your target can crash for several reasons:

1) System crash: If the system has crashed (i.e. the micro-controller is stopped), it is because the program has generated an exception (hard-fault). This is a software problem that can come from the system or the user program. Verify your program.

2) Problem with the remote target: If the system is not crashed but the target is not responding, you must verify that it is functional and still connected to the network (Verify the Ethernet cable).

3) System configuration: If the system has not crashed and the target is connected and is responding, it’s that the Ethernet buffers are saturated. In this case restarting/resetting the card can temporarily resolve the problem until the next “saturation”. This problem can be resolved by increasing the number of buffers used for the Ethernet communication. This number depends on the type and the size of the application being developed.

For example, an application sending a few frames on the network from time to time will not need many buffers (two for transmission and two for reception will suffice).
On the other hand if the application is composed of embedded modbus/web servers etc, a consequent number of buffers will need to be assigned. However, if the number of buffers is increased, the amount of memory used by the system will be increased, this can quickly limit the space for a user application.
When using a web server, you must preview the use of at least four reception buffers and two to transmission buffers. These values can be changed in configuration files (ethernet_init.c) accessible in the system project in µOne. It can be found at /src/ethernet/ethernet_init.c.

In the file you must modify the values:
ETH_NBRXDESC, ETH_NBTXDESC and ETH_NBRXTXBUFF.
– ETH_NBRXDESC corresponding to the number of reception buffers.
– ETH_NBTXDESC corresponding to the number of transmission buffers.
– ETH_NBRXTXBUFF corresponding to the total number of buffers. It is preferable that this value corresponds to 2xNBRXDESC + NBTXDESC.
For example if we have NBRXDESC=3 and NBTXDESC=1, NBRXTXBUFF will be equal to: (2×3)+1=7.

After having modified these values, you must optimise the project using the AIM command – “Optimise addresses” before re-uploading the program to the target.

Why can’t I use the Eclipse commands “Rename” and “Copy”?

The standard Eclipse commands “Rename” and “Copy” cannot be used for renaming or copying a µOne project because they do not take into account the project’s file structure. If you use them you will also have to modify the project files manually to make them compatible with the structure of the new or renamed µOne project.
The command “Rename…” does not copy an entire µOne project. It simply changes the name of the project (Folder name) without affecting the files. This name change provokes an incompatibility of files with µOne commands because several files contain references to the project name. If the project name is changed the references will be destroyed and the project will be “corrupted” and therefore unusable.

The command “Copy” functions along the same lines as the “Rename…” command. This means it copies the project without changing the file references linked to the name of the project.

How can I keep the compatibility of my µOne project after copying it or changing the name?

In order to keep the compatibility of a µOne project while using the commands “Rename” or “Copy”, it is necessary to modify some project files manually to recreate the destroyed references: There are three files to modify, two of which are hidden by default (to be able to see the hidden files use the command “Customize view…” in the project explorer and deselect the filter “.*resources”):

1 – File ‘.cproject': (hidden file) Find the lines below and modify the project name ‘your_project_name’ between the tags:

– <resource resourceType= »PROJECT » workspacePath= »/your_project_name »/>

– <builder buildPath= »${workspace_loc}/your_project_name/Debug » command= »aim-make »

2 – File ‘.project': (hidden file) Find the lines below and modify the project name ‘your_project_name’ between the tags:

– <name>your_project_name</name>

– <value>${workspace_loc}/your_project_name</value>.

3 – File ‘your_project_name Debug.launch': You must first modify the name of the file by right clicking on it, selecting “Rename…”, and changing the name of the file. Afterwards, you must open the file and modify the three following lines:

– <stringAttribute key= »org.eclipse.cdt.launch.PROGRAM_NAME » value= »Debug\your_project_name »/>

– <stringAttribute key= »org.eclipse.cdt.launch.PROJECT_ATTR » value= »/your_project_name »/>

– <listEntry value= »/your_project_name »/>

How do I configure my AIM-Kit in µOne to use the LCD screen with Agilia?

AIM-Kit1 – In MicroXplorer use the following pin configuration:

Gw pin conf
– Add the Agilia service GwCore and select the parameters you require:

Gw Service

GW config

– Once you have made your selections click “OK” then click on the boxes “Rebuild project” and “Upload project”. You will now be able to use the GUI Editor in Agilia.