This release note covers version v8.6r2. It describes the changes and new features of all TASKING C166/ST10 products since v8.5r1.
The following sections are included in this release note:
C COMPILER
ASSEMBLER
CROSSVIEW PRO
Summary of changes between v8.6r1 and v8.6r2:
Summary of changes between v8.5r2 and v8.6r1:
Summary of changes between v8.5r1 and v8.5r2:
Solved and known problems as well as known restrictions are listed in a separate file, delivered with the software package: solved_8_6r2.html.
The _using() attribute for interrupt functions allows a special keyword: push When specifying _using(push), the compiler will use PUSH and POP instructions instead of a context switch to save the GPRs in the interrupt frame.
A silicon bug workaround has been added for the 'CPU_MOVB_JB' problem (jump-bit wrongly executed after byte manipulation instructions).
-BZmovbjb
Insert NOP instruction between an explicit byte-register modification and a
bit-jump that uses the opposite byte of the same word GPR.
-BZno_movbjb
Default. Do not insert NOP instruction between explicit byte-register
modification and a bit-jump.
The following pragmas have been added for specific control:
#pragma prohibit_atomic / #pragma noprohibit_atomic
When the pragma prohibit_atomic is set the compiler will issue a warning on
the _atomic () intrinsic.
#pragma prohibit_bit_init / #pragma noprohibit_bit_init
When the pragma prohibit_bit_init is set the compiler will issue a warning
when initializing a bit
#pragma warn_signed_var_unsigned_const_relation / #pragma
nowarn_signed_var_unsigned_const_relation
When the pragma warn_signed_var_unsigned_const_relation is enabled, the
compiler will generate a warning when a signed variable of type: char, short or
int is compared with an unsigned constant value in the range: 0u <= value <=
255u. When an int has the type modifier 'long', or when the constant has the l/L
suffix, the warning will not be generated.
With the word: "relation" the relational operators are meant, as described in
the C standard (1990), section 6.3.8. According to this section, relational
operators are: <, <=, > and >=. I.e: the equality operators (==, !=) are not
included.
#pragma indirect_access [([_]near)]<address>[-<address>],...
With this pragma the address (ranges) that have to be accessed using an indirect
addressing mode can be specified. When a near address is specified the ([_]near)
keyword must be added, otherwise the address will be interpreted as _huge. In
the segmented memory models, _near, _xnear and _system/_iram/_bita are all
separate near memory spaces. The correct DPP-number must be included in the
address.
Multiple uses of this pragma accumulate the specified addresses.
Example for a segmented memory model:
#pragma indirect_access (near)0x9234,(near)0x5232-0x5236,0x200200 /* include DPP number in address */ void main( void ) { *((_near int *)0x1234) = 5; *((_xnear int *)0x1234) = 10; *((_far int *)0x200200) = 15; return; }
This pragma applies to constant pointers only.
Previously the gso166 tool assumed all memory in a particular memory space to be the same: RAM. However, sometimes objects have to be allocated ROM. Therefore gso166 has been extended to support ROM and RAM areas in the memory spaces. To accomplish this, the command line interface as well as the file formats of gso166 have been updated.
The -m command line option has been extended to control the size of the ROM area in a particular memory space. In addition, different object-size thresholds can be set for the ROM and RAM areas. This can be done by using the -T command line option.
The compiler and assembler have been updated to generated the correct memory-types, and are capable of reading the new file formats generated by gso166.
A silicon bug check has been added for the 'CPU_MOVB_JB' problem (jump-bit wrongly executed after byte manipulation instructions). The C166SV1MOVBJB control enables the check and the NOC166SV1MOVBJB control disables the check.
Infineon DAS (Device Access Server) is supported as new communication channel between CrossView Pro and the target board with OCDS. CrossView Pro can connect to the DAS server using TCP/IP. The DAS server (which may run on any computer in the network) connects to the target board, using a USB or Parallel connection. For communication with DAS via USB it is required to use a so called 'wiggler box'. This is a small device that is used to connect with USB to the JTAG port on the board. Starting v8.6r2 the old OCDS LPT drivers are no longer included and DAS should be used for debugging via LPT.
When installing the v8.6 toolset you can choose at the end of the installation to install DAS and DAS for LPT software. It is possible to install these packages afterwards from the reinstall directory in the installed product.
In the "Project Options" dialog on the page "CrossView Pro" -> "Execution Environment" you can select one DAS board configurations. When one of the DAS configurations is selected you can setup the DAS connection on the page "CrossView Pro" -> "OCDS via DAS Setup". Here you can also select between using the USB wiggler or an (on-board) LPT port wiggler.
With version v8.6r2 the naming of the on chip flash devices has changed. Previously the names did include the stepping code, for example "XC167CI-16FF AB". Now the stepping code is no longer included, except for steppings that have a different flash algorithm. For example:
XC167CI-16FF (< AC)
XC167CI-16FF
XC167CI-32FF
When using EDE to configure and launch CrossView Pro, the configuration should be updated automatically. When starting CrossView Pro outside EDE, you may need to update *.cfg files or select the correct Flash device from the Target => Flash Setup... dialog within CrossView Pro.
@(#)readme.html 1.38