16bit

FAQ

Welcome to Epson Semiconductor Support, where you can find information and helps relating to product supports.

We recommend you to make use of our FAQ or Search services before submitting an inquiry.

Assembler

Compiler (GCC)

Integrated development environment (GNU17 IDE)

Debugger (GDB)


Assembler

  • as-01How can I calculate the minimum display memory size for my application?
Terget Version All versions
Question Is there a way to set the interrupt level when using software interrupts (int instruction)?
Answer Use C17 assembly instruction 'intl' (interrupt with level).
intl imm5, imm3 Specify vector number as imm5, and interrupt level as imm3.
ex) intl 0x3, 0x2
This will invoke maskable software interrupt 0x3 and set IL to 0x2.
For more information, please refer to S1C17 Family Core Manual "7. Details of Instructions".

Compiler (GCC)

  • gcc-01Reduce the code size
Terget Version All versions
Question How can I reduce the code size as much as possible?
Answer Use single arrays as much as possible instead of multi dimensional arrays, because accessing multi dimensional arrays decreases code efficiency.

In addition, it is better to use pointers in case of passing structures to functions, or returning structures from functions,
In case noe to use pointer, the process to copy the whole structure is needed and the code size increases.

  • gcc-02Access way to PSR
Terget Version All versions
Question How can PSR is read to know the current interrupt state?
Can PSR is modified directly?
Answer S1C17 does not have PSR accessing instructions.

To refer and modify PSR value,
PSR value is referred and modified after it is stored to stack memory by using int instruction, and then it is returned by using reti insturuction.

Some models have implemented PSR accessing instructions.
Please refer to each technical manuals.

Example: PSR example PDF

Integrated development environment (GNU17 IDE)

  • ide-01Source file which should be controlled in project on IDE
Terget Version All versions
Question I would like to control the project which is made by IDE in a source file version management software.Which file should be control?
Answer The files which need to be controlled are;
  • The files you creat under the project, -as follows;
    • *source file
    • *header file
  • The files below whichare automatically created by IDE
    (Refer to Compiler manual 5.11 Files Generated in a Project by the IDE)
    • * .project IDE project file
    • * .cdtproject IDE project file
    • * .gnu17project IDE project file
    • * GDB17 Launch for <project_name>.launch GDB launch setting file
    • * <project_name>_gnu17IDE.cmd GDB command file
    • * .settings Project settings directory
    • * .externalToolBuilders Project settings directory

For example,in case that 'proj' project is created in eclipse/workspace/proj, the source files under \proj folders should be controlled.
No need to control the workspace folder.

In case that the rebuildable resources are not necessary to manage,

  • * No need to manage mak/lds/par files
    (need to manage cmd files)
  • * No need to manage .o files / .d files.
    (These will be generated at a build)

NOTICE:

  • .project/.cdtroject/.gnu17project/proj.launch
    These files hold the critical information for a project and are very important. Need to controlled them but it is not good to overwrite them so often.
    ( Epson recommends such control, for example, as anyone can check-out but only a project leader can check-in)
  • ide-02Generate .psa file
Terget Version All versions
Question .psa file can not be generated because Build goal switch of "[Project Properties] -> [GNU17 Build Option]" is not selectable.
Answer .psa files are generated by specifiying the memory range depending on the product information.
In case that the project will be created but target CPU is not specified yet (target CPU is not specified in "GNU17 General"),
.psa files will not be generated but only up to .elf files will be.

The target CPU can not be changed after the project is generated,and please specify target CPU when you make new project.

  • ide-03The meaning of "S1C17" in target CPU of GNU17 General
Terget Version All versions
Question In Project Properties - GNU17 General - Target CPU Device, there is a "S1C17" in the CPU name selection.
What purpose is this?
Answer S1C17 is prepared to simulate CPU core in the generic settings independent of the model of target CPU.
The memory maps are not configured.
The default boot address is set to 0x8000, which can be modified.
When S1C17 is selected, S1C17 MCU core's simulator can be used but ES Simulator can not be used.ES Simulator can simulate the circuit around CPU core which is different from each models.
  • ide-04Can not link the program by section overlap error
Terget Version All versions
Question Can not link the program by section overlap error.
Also, some sections are registered double and then program size is increased.
Answer For example, the default object for .vector section is "vector.o", but is your actual file "Vector.o". (begin in big letter)
In this case, those tow files are treated as separate files, and .rodata for vector.o will be allocated twice.

GNU originates from Unix/Linux and treates files case -sensitive, while Windows treates them case- insensitive.

  • ide-05Error message is not displayed in link process
Terget Version All versions
Question The linker seems to report an error but there is no message for error.
Answer "lderr" file is generated by Linker error.
Refer to "lderr" file for linker error.

On GNU17 V1.1.3 or later, the errors can be shown in the Problems view.

  • ide-06Can not delete the project on Windows Vista
Terget Version Earier version 1.4(Windows Vista is supported by ver.1.4 or later)
Question On Windows Vista, when project is deleted by [Delete project contents on disk] of
[Delete Resource] dialogue, the project folder can not be deleted with the error message
[An exception has been caught while processing the refactoring 'Delete Resource']
Answer When the project is in the process of the build, conime.exe (command prompt to enables Japanese language input) runs as project folder is current directory, This conime.exe does not finished after the build has completed.
Therefore, the project folder cannot be deleted.

In this case, make the conime.exe process terminate by the Task Manager,or restart PC and then delete the project folder.

Debugger (GDB)

  • gdb-01Sudden change of the values of auto variables in Watch window
Terget Version All versions
Question Variable values in the Watch Window is changed unintensionally.
The actual values seem to be correct but they are displayed wrong.
Answer Auto variables are allocatated on either stack or register while functions is executed.
Then, the location for these data varies all the time.
Additionally, in case that the variables are allocated to registers, some other variables use the same registers.
When the used variables is referred, there is a case that the different variables (is used in same register) is displayed.
That is the same as the variable referrence in other windows than Watch window, and this happens more frequently when the compiler optimization level is higher.
This does not apply for global variables, which are allocated at the same memory address throughout.
  • gdb-02Can not start the functions when step is executed.
Terget Version All versions
Question When "step" is executed in the source window, functions sometimes does not start.
Answer It is because of the optimization of code by compiler.
The program location changes as the program language changes from C to assembler due to optimization of code by compiler. Then, it looks like that the program is not existing.

In this case, it can be avoided by setting the optimization off.
Refer the S5U1C17001C manual "6. C compiler" about setting of opitimization.

  • gdb-03GDB hangs while loading program.
Terget Version All versions
Question GDB hangs while loading program.
Answer Is the debug RAM broken by loading code or data to internal RAM area?

For example, in S1C17701, 0xfc0-0xfff 64 bytes are reserved for debug RAM.
When this area is broken, the S1C17 debug function does not work, and the program can not loaded

  • gdb-04Load two different files to flash memory.
Terget Version All versions
Question Is there any way to load the new different program to flash memory as having left a part of the program on flash memory?
(Is there any way to load two different files to flash memory?)
Answer It can be loaded by following procedure.
  1. #1. Read out a part of program on flash memory before erasing it, and save it as file.
  2. #2. The new program is loaded to flash memory
  3. #3. The data is saved at #1 is reloaded to flash memory.

Below is the example of command file.

Example command file Example command file

Example command file PDF