亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? readme.txt

?? FreeRTOS 是一個源碼公開的免費的嵌入式實時操作系統
?? TXT
字號:

       =================================================
       README file for the CC8E C compiler, DEMO edition
       =================================================

Welcome to the CC8E C compiler. The DEMO edition can generate up to
1024 words of code in a single module. External linker support is
not available on the DEMO edition.

The alternative TEST edition allows a large program to be compiled
using CC8E. However, NO hex file is generated and the assembly file
is NOT complete.


RESTRICTIONS
------------

  The DEMO edition can be used to generate code for all prototype
  and non-commercial systems without restrictions. NO permission is
  given to use the generated code in commercial systems.

  No restriction applies to source code written by the user.


COPYRIGHT NOTICE
----------------

  Copyright (c) B Knudsen Data, Trondheim, Norway, 2001 - 2006.

  www.bknd.com         Fax: (+47) 73 96 51 84

  The CC8E compiler is protected by Norwegian copyright laws and
  thus by corresponding copyright laws agreed internationally by
  mutual consent. Modification of the compiler is strongly
  prohibited. All rights reserved.

  B Knudsen Data assumes no responsibility for errors or defects in
  the compiler or in the other supplied files. This also applies to
  problems caused by such errors.

  Permission is required to distribute the DEMO edition.


SPECIAL ISSUES
--------------

  1. The new EXTENDED instruction set available on PIC18 devices
     released after May 2004 is NOT yet supported by CC8E. The
     extended instruction set is enabled or disabled by the XINST
     bit of config address 0x30006. The extended instruction set
     allows reentrant code and add 8 extra instructions: ADDFSR,
     ADDULNK, CALLW, MOVSF, MOVSS, PUSHL, SUBFSR, SUBULNK.

     a) By not enabling the extended instruction the access bank
        address 0 - 0x5F can be used as normal by the compiler.

     b) If the extended instruction is enabled, then the access bank
        address 0 - 0x5F MUST NOT be used for direct variable access
        by the compiler (not in inline assembly either). It can be
        used for indirect access (INDFx, ..).


  2. Computed goto using an 8 bit offset does not update PCLATU, and
     must therefore not cross a 64k address boundary. This condition
     is checked automatically when using the built in single module
     linker. For relocatable assembly on devices with over 64k code,
     this condition must be ensured manually. This is best done by
     using separate code SECTIONs of 64k byte each. Computed goto is
     generated when using skip(), skipL(), skipM() and also for
     leanslice tasks.


  3. The maximum call level must be restricted manually when using
     NESTED interrupts. This can be done by setting the maximum
     stack level allowed:

       #pragma stackLevels 28   // reserve three levels (31 is max)

     This statement must be put after the chip definition, and 2
     extra levels must be reserved when using ICD2 debugging. The
     extra levels for ICD2 debugging are normally reserved
     automatically in the header file.


SUPPLIED FILES
--------------

  cc8e.exe      : CC8E compiler, DEMO edition

  install.txt   : installation guide and MPLAB setup
  inline.txt    : information on inline assembly syntax
  chip.txt      : how to make new chip definitions
  cdata.txt     : info on the #pragma cdata statement
  config.txt    : the chip configuration bits
  linker.txt    : using MPLINK to link several modules (C or asm)
  math.txt      : math library support
  errata.txt    : silicon errata issues

  int18xxx.h    : interrupt header file

  hexcodes.h    : direct coded instructions

  cc8e.mtc      : MPLAB configuration file
  tlcc8e.ini    : MPLAB configuration file

  op.inc        : compiler options in a file
  reloc.inc     : options for generating object modules for linking

  demo.c        : sample syntax including interrupt
  demo-var.c    : defining RAM variables
  demo-mat.c    : integer math operations
  demo-fpm.c    : floating point math
  demo-fxm.c    : fixed point math
  demo-rom.c    : const data and DW
  demo-ptr.c    : indexed tables and pointers
  demo-ins.c    : generating single instructions using C code

  18C242.H, ..  : header files for specific chip support

  math16.h      : 8-16 bit math library, signed and unsigned
  math24.h      : 8-24 bit math library, signed and unsigned
  math32.h   (1): 8-32 bit math library, signed and unsigned
  math16x.h     : 16 bit fixed point library
  math24x.h     : 24 bit fixed point library
  math32x.h  (1): 32 bit fixed point library
  math16f.h  (1): 16 bit floating point library
  math24f.h     : 24 bit floating point library
  math32f.h     : 32 bit floating point library
  math24lb.h    : 24 bit floating point math functions (log,sqrt,cos,..)
  math32lb.h    : 32 bit floating point math functions (log,sqrt,cos,..)

  (1) : Not available on the DEMO and STANDARD edition

  news.txt      : recent added features
  readme.txt    : this file


SUPPORTED DEVICES
-----------------

  The compiler supports the PIC18 devices from Microchip. Take a
  look in chip.txt for details on how to generate code for a
  particular device.


PROGRAMMING RECOMMENDATIONS THAT ENABLES COMPACT CODE
-----------------------------------------------------

  1. If you are going to use multiplication and division, take a
     look at 'math.txt'.

  2. CC8E will update the bank bits automatically, but variables
     have to be placed on the different RAM banks by using pragma
     statements or bank type modifiers. It therefore recommended to
     locate all global variables belonging to the same RAM bank
     together (in header files).

        #pragma rambank 0
         char a;  // variables to be located in bank 0
        #pragma rambank 1
         // variables to be located in bank 1
         ..

     Some notes when locating variables:
     a) Access RAM and bank 0 is the most valuable RAM area. Use
        this with care.
     b) Locate most local variables in access RAM (move arrays
        to bank 1, 2 etc. if not enough space)
     c) Locate global arrays in banked memory (bank1, 2, etc.)
     d) Use option -V to generate the *.var file. This contains
        the number of access in each variable (#AC). Move variables
        with few accesses to bank 1, 2, etc.
     e) Locate variables which are close related to each other in
        the same bank.
     f) Locate all variables accessed in the same function in the
        same bank if possible.
     g) Use as few banks as possible


  3. It is most efficient to put all local variables in access RAM.
     This is easiest done by moving all global variables to the
     beginning of the program (or to header files). Then change the
     rambank to mapped RAM before compiling the functions:

         // all global variables
         #pragma rambank -    // access RAM
         // all functions


  4. It is recommended to define all functions before they are
     called. That is, make sure that the function code is compiled
     before the first function call is made. This allows better
     optimization of the bank selection bits (BSR).


  5. Computed goto is very efficient for implementing a multi-
     selection (instead of using the switch or multiple if
     statements). Many examples of how to do this is found in
     'Application Notes' in the User's Manual.


  6. The smallest possible variables should be used. Variables of 1
     and 8 bit are efficient. Also, some operations on signed
     variables requires more code compared to using unsigned
     variables.


SOME REGISTER ARE VOLATILE
--------------------------

  Note that RAM and special purpose registers are treated different.
  Most special purpose registers are volatile. That is, the compiler
  assumes that the contents may have changed between each register
  access. Optimization will therefore be different.



SOME CODE GENERATION NOTES:
---------------------------

  The compiler has some powerful features which may be confusing
  when the assembly file is examined:

    1) Peephole optimization: can be switched off with the '-u'
       command line option

    2) Extended call level: CALL's are replaced by GOTO's in some
       cases.

    3) Overlapping local variables: The compiler calculates a
       safe mapping to global addresses based on the variable
       scope, global optimized.

    4) Global optimization when updating the bank selection bits.
       The contents of these bits can be difficult to trace because
       the compiler removes nearly all unnessesary updating.

    5) The switch test constants will be different from the
       constants in the source file because the W register is
       modified through a series of XORLW instructions.

  If the code looks wrong, think twice. The advanced optimization
  is sometimes difficult to understand.



PROGRAMMING PRECAUTIONS:
------------------------

  1. The bank selection bits (BSR) are checked and updated by the
     compiler. Attempts to set or clear these bits in the source
     code are removed by the optimizer. This process may be switched
     off, local or global.

  2. Note that global variabeles are NOT initialized. The function
     clearRAM() can be used to clear ALL RAM locations (at startup).



MAIN COMPILER VERSIONS:
-----------------------

  February 2002 :  Version 1.0 released
  January  2004 :  Version 1.1 released



WRITING CODE THAT CAN BE COMPILED BY CC8E
-----------------------------------------

  CC8E is not a full C compiler. There are restrictions to be aware
  of. The main problem is that CC8E has limited ability to allocate
  temporary variables. Because of this, complex statements often
  have to be rewritten using simpler statements. This is most
  notisable when using variables of 16 bit or larger. There is an
  advantage of such rewriting. Often the generated hex code gets
  more compact.


  MODIFIED SAMPLE:

    uns16 array[10], temp, temp2;
    char j, k;

    //if(array[j] > array[j+1])
    //{
    //    temp = array[j];
    //    array[j] = array[j+1];
    //    array[j+1] = temp;
    //}

    temp = array[j];
    k = j+1;
    temp2 = array[k];
    if(temp > temp2)
    {
        array[j] = temp2;
        array[k] = temp;
    }


  MODIFIED SAMPLE:

    #include "math32f.h"
    #include "math32lb.h"

    void main( void)
    {
        double X, input;
        #define Const 22.94

        //X = exp( ( Const / input ) + ( Const * log(input) ) );
        X = log(input) * Const;
        X = exp( Const/input + X );
    }


  MODIFIED SAMPLE:
    //if (x++ < 20) { /* .. */ }
    if (x < 20) { x++;  /* .. */ }
    if (++x < 20) { /* .. */ }  // ok


  MODIFIED SAMPLE:

    unsigned long checksum;
    unsigned char c;
    unsigned long calc(unsigned long c);
    //checksum = calc(c^checksum) ^ (checksum/256);
    unsigned long tmp = calc(c^checksum);
    checksum /= 256;
    checksum ^= tmp;


  MODIFIED SAMPLE:

    //rx_str[ptr2] = rx_str[ptr1];
    char tmp = rx_str[ptr1];
    rx_str[ptr2] = tmp;


  MODIFIED SAMPLE:

    // if (c = TestOptions(0x00c6)) { /* .. */ }
    c = TestOptions(0x00c6);
    if (c) { /* .. */ }


  MODIFIED SAMPLE:

    //if (!((1<<(rx_str[ptr1]-1))&option)) { /* .. */ }
    unsigned char xtmp = rx_str[ptr1] - 1;
    unsigned long tmp = (unsigned long)1 << xtmp;
    tmp &= option;
    if (!tmp) { /* .. */ }


  MODIFIED SAMPLE:

    unsigned long packet;
    //packet = rx_str[2]*256 + rx_str[3];
    packet.high8 = rx_str[2];
    packet.low8 = rx_str[3];


  MODIFIED SAMPLE:

    unsigned long length;
    //length = 0x45 + 0x88 + 0x40 + 127 + addr1 + addr3 + str[1] + str[3];
    length = (unsigned long) 0x45 + 0x88 + 0x40 + 127 + addr1;
    length += addr3;
    length += str[1];
    length += str[3];

    //length = (length & 255) + packet / 256;
    length &= 255;
    length += packet.high8;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九九视频精品免费| 欧美性受xxxx黑人xyx| eeuss鲁片一区二区三区在线看| 在线亚洲精品福利网址导航| 亚洲精品一线二线三线| 亚洲精品成人悠悠色影视| 久久99精品久久只有精品| 欧美亚洲尤物久久| 中文字幕欧美日本乱码一线二线 | 91精品在线麻豆| 中文字幕在线一区免费| 韩国精品在线观看| 欧美日本一道本在线视频| 国产精品久久久久影院| 激情另类小说区图片区视频区| 日本韩国一区二区三区| 欧美激情在线观看视频免费| 麻豆高清免费国产一区| 在线观看视频欧美| 亚洲欧美在线视频| 成人激情校园春色| 精品国产乱码久久久久久图片| 婷婷综合在线观看| 欧美午夜精品一区| 一区二区高清免费观看影视大全 | 日韩专区中文字幕一区二区| 99re热视频精品| 国产精品视频一区二区三区不卡| 国产一区二区看久久| 精品久久久久久久久久久久久久久| 亚洲自拍偷拍av| 欧洲一区在线电影| 亚洲图片一区二区| 欧美日韩精品一区二区| 亚洲成人一区二区| 欧美日韩不卡一区| 日韩在线卡一卡二| 日韩欧美国产一二三区| 久久成人久久鬼色| 久久夜色精品国产欧美乱极品| 久久国产精品色| 日韩免费电影一区| 极品少妇xxxx偷拍精品少妇| 欧美xxx久久| 高清国产午夜精品久久久久久| 国产精品视频九色porn| av高清不卡在线| 亚洲午夜在线视频| 日韩欧美一区在线观看| 国产综合久久久久久久久久久久| 国产日本欧洲亚洲| 91丨porny丨最新| 五月婷婷另类国产| 精品国产免费人成电影在线观看四季 | 久久色中文字幕| 国产jizzjizz一区二区| 一色屋精品亚洲香蕉网站| 91久久免费观看| 欧美a级一区二区| 国产视频一区在线播放| 一本一本大道香蕉久在线精品 | 日本一区二区三区在线不卡| 成人国产亚洲欧美成人综合网| 亚洲裸体xxx| 日韩美女在线视频| 国产精品亚洲成人| 亚洲一区二区中文在线| 欧美va在线播放| 色哟哟一区二区| 老司机精品视频在线| 中文字幕中文乱码欧美一区二区| 欧美久久久久久蜜桃| 国产乱码精品一品二品| 亚洲午夜精品网| 欧美极品xxx| 日韩一区二区免费视频| 成人av在线观| 免费高清在线视频一区·| 国产精品久久久久三级| 欧美久久久久免费| 97se亚洲国产综合在线| 久久机这里只有精品| 一区二区免费看| 国产精品无圣光一区二区| 欧美日韩国产影片| 波多野结衣中文一区| 美日韩一区二区| 亚洲小少妇裸体bbw| 中文字幕一区二区在线观看| 日韩亚洲国产中文字幕欧美| 欧洲视频一区二区| 高清不卡一二三区| 久久爱另类一区二区小说| 亚洲精品视频在线看| 国产视频不卡一区| 日韩限制级电影在线观看| 欧美在线不卡一区| 97超碰欧美中文字幕| 国产精品香蕉一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲精品自拍动漫在线| 久久九九影视网| 日韩欧美的一区| 日韩一区二区在线看| 7777精品伊人久久久大香线蕉| 色av一区二区| 91视频xxxx| 91丨九色丨黑人外教| 欧美精品欧美精品系列| 欧美在线观看视频在线| 91麻豆免费在线观看| 99久久免费国产| 99精品视频中文字幕| 成人免费毛片嘿嘿连载视频| 国产主播一区二区三区| 黄页视频在线91| 国产福利一区二区三区视频| 国产乱一区二区| 国产 欧美在线| 成人午夜电影小说| 9l国产精品久久久久麻豆| jizzjizzjizz欧美| 99精品黄色片免费大全| 色域天天综合网| 欧洲色大大久久| 欧美日韩另类国产亚洲欧美一级| 精品视频在线免费看| 7777女厕盗摄久久久| 日韩免费高清电影| 久久久久久99精品| 国产精品视频线看| 亚洲男人天堂av| 婷婷综合在线观看| 国内精品国产三级国产a久久| 精品亚洲成a人在线观看| 国产a区久久久| 色婷婷精品久久二区二区蜜臀av| 欧美性生活大片视频| 欧美一级日韩免费不卡| 欧美大片一区二区三区| 久久精品欧美一区二区三区不卡 | 国产成人精品免费一区二区| 成人精品视频一区二区三区| 久久久久久久久伊人| 国产精品私人影院| 亚洲成人激情综合网| 麻豆国产欧美日韩综合精品二区| 加勒比av一区二区| 91在线免费看| 91精品国产入口| 国产精品久久久久久久久免费樱桃| 亚洲精品久久久蜜桃| 男女激情视频一区| 9人人澡人人爽人人精品| 欧美日本在线一区| 久久久www免费人成精品| 亚洲精品菠萝久久久久久久| 免费精品99久久国产综合精品| 国产91精品露脸国语对白| 欧美色倩网站大全免费| 久久久久久久久久久黄色| 一区二区三区在线观看网站| 久久福利视频一区二区| 在线影院国内精品| 精品99999| 亚洲mv在线观看| 成人免费观看av| 精品国产乱码久久久久久久久 | 一区二区三区在线视频免费观看| 久久成人羞羞网站| 欧美性视频一区二区三区| 国产三区在线成人av| 天天综合网 天天综合色| 成人av小说网| 精品国精品国产| 亚洲一区二区三区四区中文字幕 | 精品国产乱码久久久久久图片 | 国产精品热久久久久夜色精品三区| 亚洲成人精品一区二区| a美女胸又www黄视频久久| 精品国产一区二区亚洲人成毛片 | 日韩午夜激情免费电影| 自拍偷在线精品自拍偷无码专区| 老司机精品视频一区二区三区| 91黄色免费看| 亚洲国产精品成人综合色在线婷婷 | 国产精品国产三级国产aⅴ中文 | 欧美一区在线视频| 亚洲免费观看高清在线观看| 国产精品资源站在线| 日韩女优视频免费观看| 亚洲va国产天堂va久久en| 在线一区二区视频| 一区二区三区免费在线观看| 91片在线免费观看| 亚洲天堂精品视频| 91亚洲精品久久久蜜桃| 亚洲国产精品成人久久综合一区| 国产麻豆精品在线| 精品粉嫩超白一线天av|