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

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

?? startup.s

?? Modbus協議的源代碼 Modbus協議的源代碼、 Modbus協議的源代碼 Modbus協議的源代碼
?? S
字號:
/*

 * STR71X/GCC Startup Scripts for FreeModbus



 * Copyright C) 2005 Anglia Design, Spencer Oliver

 * Copyright (C) 2006 Christian Walter <wolti@sil.at>

 *

 * This program is free software; you can redistribute it and/or modify

 * it under the terms of the GNU General Public License as published by

 * the Free Software Foundation; either version 2 of the License, or

 * (at your option) any later version.

 *

 * This program is distributed in the hope that it will be useful,

 * but WITHOUT ANY WARRANTY; without even the implied warranty of

 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

 * GNU General Public License for more details.

 *

 * You should have received a copy of the GNU General Public License

 * along with this program; if not, write to the Free Software

 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

 *

 * File: $Id: startup.S,v 1.1 2006/11/02 23:14:44 wolti Exp $

 */



/* ----------------------- Target settings ----------------------------------*/

    .equ    FOSC,           4000000

    .equ    FRTC,           32768



/* ----------------------- ARM7 CPU modes -----------------------------------*/

    .equ    MODE_USR,       0x10

    .equ    MODE_FIQ,       0x11

    .equ    MODE_IRQ,       0x12

    .equ    MODE_SVC,       0x13

    .equ    MODE_ABT,       0x17

    .equ    MODE_UND,       0x1B

    .equ    MODE_SYS,       0x1F          /* available on ARM Arch 4 and later */



    .equ    I_Bit,          0x80          /* when I bit is set, IRQ is disabled */

    .equ    F_Bit,          0x40          /* when F bit is set, FIQ is disabled */



/* ----------------------- System memory locations --------------------------*/

    .equ    EIC_ADDR,       0xFFFFF800    /* EIC base address */

    .equ    EIC_ICF_OFF,    0x00          /* Interrupt Control register offset */

    .equ    EIC_CIPR_OFF,   0x08          /* Current Interrupt Priority Register offset */

    .equ    EIC_IVR_OFF,    0x18          /* Interrupt Vector Register offset */

    .equ    EIC_FIR_OFF,    0x1C          /* Fast Interrupt Register offset */

    .equ    EIC_IER_OFF,    0x20          /* Interrupt Enable Register offset */

    .equ    EIC_IPR_OFF,    0x40          /* Interrupt Pending Bit Register offset */

    .equ    EIC_SIR0_OFF,   0x60          /* Source Interrupt Register 0 */



    .equ    CPM_ADDR,       0xA0000040    /* CPM Base Address */

    .equ    CPM_BC_OFF,     0x10          /* CPM - Boot Configuration Register */

    .equ    CPM_BC_FLASH,   0x0000        /* to remap FLASH at 0x0 */

    .equ    CPM_BC_RAM,     0x0002        /* to remap RAM at 0x0 */

    .equ    CPM_BC_EXTMEM,  0x0003        /* to remap EXTMEM at 0x0 */



/* ----------------------- Startup code -------------------------------------*/

    .text

    .arm

    .section .init, "ax"

    

    .global _start

    .global RCCU_Main_Osc

    .global RCCU_RTC_Osc



/* ----------------------- Exception vectors ( ROM mode with remap ) --------*/

.if ROM_RUN == 1

_vector_reset_rom:

    ldr   pc, =_start_rom

    nop

    nop

    nop

    nop

    nop

    nop

    nop



    /* Copy the final vectors from ROM into RAM and map RAM at address 

     * 0x00000000 */

_start_rom:

    ldr   r1, =_vecstart                  /* r1 = start address from which to copy */

    ldr   r3, =_vecend

    sub   r3, r3, r1                      /* r3 = number of bytes to copy */

    ldr   r0, =_vectext                   /* r0 = start address where to copy */

copy_ram:

    ldr   r2, [r0], #4                    /* Read a word from the source */

    str   r2, [r1], #4                    /* copy the word to destination */

    subs  r3, r3, #4                      /* Decrement number of words to copy */

    bne   copy_ram

        

    ldr   r1, =CPM_ADDR

    ldrh  r2, [r1, #CPM_BC_OFF]           /* Read BOOTCONF Register */

    bic   r2, r2, #0x03                   /* Reset the two LSB bits of BOOTCONF Register */

    orr   r2, r2, #CPM_BC_RAM             /* change the two LSB bits of BOOTCONF Register */

    strh  r2, [r1, #CPM_BC_OFF]           /* Write BOOTCONF Register */

.endif



/* ----------------------- Default reset handler (After remap ) -------------*/

_start:

    ldr   pc, =NextInst

NextInst:

    nop                                   /* Wait for OSC stabilization */

    nop

    nop

    nop

    nop

    nop

    nop

    nop

    nop



    /* Enter Undefined Instruction Mode and set its Stack Pointer */

    msr   cpsr_c, #MODE_UND|I_Bit|F_Bit

    ldr   sp, =__stack_und_end__



    /* Enter Abort Mode and set its Stack Pointer */

    msr   cpsr_c, #MODE_ABT|I_Bit|F_Bit

    ldr   sp, =__stack_abt_end__



    /* Enter IRQ Mode and set its Stack Pointer */

    msr   cpsr_c, #MODE_IRQ|I_Bit|F_Bit

    ldr   sp, =__stack_irq_end__



    /* Enter FIQ Mode and set its Stack Pointer */

    msr   cpsr_c, #MODE_FIQ|I_Bit|F_Bit

    ldr   sp, =__stack_fiq_end__



    /* Enter Supervisor Mode and set its Stack Pointer */

    msr   cpsr_c, #MODE_SVC|I_Bit|F_Bit

    ldr   sp, =__stack_svc_end__



    /* Set User Mode Stack pointer but remain in Supervisor Mode */

    ldr   r1, =__stack_end__

    mov   r2, sp

    stmfd r2!, {r1}

    ldmfd r2, {sp}^



    /* Setup a default Stack Limit (when compiled with "-mapcs-stack-check") */

    ldr   sl, =__bss_end__



/* ----------------------- EIC initialization -------------------------------

/*

 * EIC is initialized with:

 *  - IRQ disabled

 *  - FIQ disabled

 *  - IVR contain the load PC opcode (0xF59FF00)

 *  - Current priority level equal to 0

 *  - All channels are disabled

 *  - All channels priority equal to 0

 *  - All SIR registers contain offset to the related IRQ table entry

 */



eic_init:

    ldr   r3, =EIC_ADDR

    ldr   r4, =0x00000000         

    str   r4, [r3, #EIC_ICF_OFF]          /* Disable FIQ and IRQ */

    str   r4, [r3, #EIC_IER_OFF]          /* Disable all channels interrupts */

    ldr   r4, =0xFFFFFFFF

    str   r4, [r3, #EIC_IPR_OFF]          /* Clear all IRQ pending bits */

    ldr   r4, =0x0C

    str   r4, [r3, #EIC_FIR_OFF]          /* Disable FIQ channels and clear FIQ pending bits */

    ldr   r4, =0x00000000

    str   r4, [r3, #EIC_CIPR_OFF]         /* Reset the current priority register */

    ldr   r4, =0xE59F0000

    str   r4, [r3, #EIC_IVR_OFF]          /* Write the LDR pc,pc,#offset instruction code in IVR[31:16] */

    ldr   r2, =32                         /* 32 Channel to initialize */

    ldr   r0, =T0TIMI_Addr                /* Read the address of the IRQs address table */

    ldr   r1, =0x00000FFF

    and   r0, r0, r1

    ldr   r5, =EIC_SIR0_OFF               /* Read SIR0 address */

    sub   r4, r0, #8                      /* subtract 8 for prefetch */

    ldr   r1, =0xF7E8                     /* add the offset to the 0x00000000 address(IVR address + 7E8 = 0x00000000) */

                                          /* 0xF7E8 used to complete the LDR pc,pc,#offset opcode */

    add   r1, r4, r1                      /* compute the jump offset */

eic_ini:

    mov   r4, r1, LSL #16                 /* Left shift the result */

    str   r4, [r3, r5]                    /* Store the result in SIRx register */

    add   r1, r1, #4                      /* Next IRQ address */

    add   r5, r5, #4                      /* Next SIR */

    subs  r2, r2, #1                      /* Decrement the number of SIR registers to initialize */

    bne   eic_ini                         /* If more then continue */



    /* Relocate .data section (Copy from ROM to RAM) */

.if ROM_RUN == 1

    ldr   r1, =_etext

    ldr   r2, =_data

    ldr   r3, =_edata

_loop_relocate:

    cmp   r2, r3

    ldrlo r0, [r1], #4

    strlo r0, [r2], #4

    blo   _loop_relocate

.endif



    /* Clear .bss section (Zero init) */

    mov   r0, #0

    ldr   r1, =__bss_start__

    ldr   r2, =__bss_end__

_loop_clear_bss:

    cmp   r1, r2

    strlo r0, [r1], #4

    blo   _loop_clear_bss

        

    /* Call C++ constructors */

    ldr   r0, =__ctors_start__

    ldr   r1, =__ctors_end__

ctor_loop:

    cmp   r0, r1

    beq   ctor_end

    ldr   r2, [r0], #4

    stmfd sp!, {r0-r1}

    mov   lr, pc

    mov   pc, r2

    ldmfd sp!, {r0-r1}

    b     ctor_loop

ctor_end:



    /* Need to set up standard file handles */



    /* if we use debug version of str7lib this will call the init function */

    bl    libdebug

libdebug:       



    /* Call main */

    bl    main



    /* Call destructors */

    ldr   r0, =__dtors_start__

    ldr   r1, =__dtors_end__

dtor_loop:

    cmp   r0, r1

    beq   dtor_end

    ldr   r2, [r0], #4

    stmfd sp!, {r0-r1}

    mov   lr, pc

    mov   pc, r2

    ldmfd sp!, {r0-r1}

    b     dtor_loop

dtor_end:



/* Return from main, loop forever. */

exit_loop:

    b     exit_loop

    

/* Fosc values, used by libstr7 */



RCCU_Main_Osc:  .long   FOSC

RCCU_RTC_Osc:   .long   FRTC



    .weak libdebug

    

    .end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩国产综合| 精品一区二区在线免费观看| 三级欧美在线一区| 国产成人在线看| 欧美日韩在线一区二区| 国产欧美日韩卡一| 日日摸夜夜添夜夜添国产精品 | 中文字幕亚洲在| 美女网站视频久久| 欧洲在线/亚洲| 国产欧美日本一区二区三区| 天堂av在线一区| 91在线视频播放地址| 久久久午夜精品| 奇米精品一区二区三区四区| 在线精品视频一区二区| 国产精品看片你懂得| 国产一区二区三区日韩| 欧美不卡一区二区三区| 五月婷婷综合网| 欧美三级电影在线观看| 一区二区三区四区五区视频在线观看| 国产风韵犹存在线视精品| 欧美精品一区二区三区蜜桃视频 | www激情久久| 青青草原综合久久大伊人精品| 91视视频在线观看入口直接观看www | 色婷婷久久久综合中文字幕 | 国产91高潮流白浆在线麻豆| 日韩欧美成人激情| 秋霞电影一区二区| 5月丁香婷婷综合| 亚洲高清在线精品| 欧美日韩一区二区三区高清| 一区二区三区成人在线视频| 99久久精品费精品国产一区二区| 国产精品高清亚洲| 97久久超碰国产精品电影| 中文字幕精品一区| 91日韩在线专区| 亚洲啪啪综合av一区二区三区| 99国产精品久| 亚洲激情网站免费观看| 欧美性淫爽ww久久久久无| 亚洲丶国产丶欧美一区二区三区| 欧美在线不卡一区| 亚洲一区二区三区四区的| 欧美三级视频在线播放| 日韩有码一区二区三区| 欧美一级在线观看| 国产成人精品免费一区二区| 亚洲视频每日更新| 欧美艳星brazzers| 奇米888四色在线精品| 久久久91精品国产一区二区三区| 国产999精品久久久久久| 国产精品成人网| 欧美日韩黄色影视| 国产在线视频一区二区| 国产精品美女久久久久久久 | 国产精品自拍一区| 国产精品全国免费观看高清| 91黄色在线观看| 蜜桃视频第一区免费观看| 久久久久久毛片| 在线日韩av片| 六月丁香综合在线视频| 亚洲欧洲性图库| 91麻豆精品国产综合久久久久久 | 日韩欧美一级精品久久| 成人午夜电影小说| 性感美女久久精品| 日本一二三不卡| 欧美精品日韩精品| 成人h精品动漫一区二区三区| 午夜不卡av在线| 中文字幕第一区二区| 欧美性猛片aaaaaaa做受| 精品一区在线看| 一级做a爱片久久| 久久伊99综合婷婷久久伊| 色婷婷综合久色| 国内成人精品2018免费看| 一区二区三区高清不卡| 欧美激情一区在线| 日韩欧美激情在线| 色av成人天堂桃色av| 国产成人av一区二区三区在线| 亚洲国产成人porn| 国产精品国产三级国产aⅴ中文| 日韩三级伦理片妻子的秘密按摩| 色综合久久久久综合99| 国产成人在线视频网站| 日韩成人伦理电影在线观看| 亚洲欧美另类久久久精品| 欧美电影免费观看高清完整版在| 色欲综合视频天天天| 成人免费看片app下载| 精品一区二区三区的国产在线播放| 一区二区在线看| 国产三级一区二区三区| 欧美一级欧美三级| 7777女厕盗摄久久久| 91国产视频在线观看| 99精品视频在线观看免费| 国产精品一区二区三区99| 蜜桃精品视频在线观看| 亚洲第四色夜色| 亚洲一区二区三区视频在线播放| 成人免费在线播放视频| 国产精品精品国产色婷婷| 久久精品男人的天堂| 久久久精品国产免费观看同学| 欧美tk—视频vk| 日韩美女一区二区三区四区| 在线播放91灌醉迷j高跟美女 | 在线成人小视频| 欧美日韩精品免费观看视频| 色天天综合色天天久久| 色综合天天综合给合国产| 91在线视频观看| 色视频欧美一区二区三区| 色屁屁一区二区| 欧美日产在线观看| 制服视频三区第一页精品| 欧美一卡二卡三卡| 精品99999| 国产女主播一区| 中文字幕在线一区| 亚洲一线二线三线久久久| 亚洲成人综合在线| 日韩国产成人精品| 狠狠色丁香婷婷综合| 国产黑丝在线一区二区三区| 成人免费毛片嘿嘿连载视频| 91片在线免费观看| 欧美日韩和欧美的一区二区| 日韩欧美久久久| 国产女同性恋一区二区| 136国产福利精品导航| 亚洲国产成人av网| 久久99精品国产91久久来源| 国产精品一品视频| 色婷婷一区二区| 日韩一级完整毛片| 中文字幕不卡在线播放| 一区二区久久久久久| 日本欧洲一区二区| 成人视屏免费看| 欧美撒尿777hd撒尿| 欧美不卡一区二区| 亚洲丝袜美腿综合| 日本不卡视频一二三区| 国产成人高清在线| 777色狠狠一区二区三区| 久久久久久久综合| 亚洲一级片在线观看| 国产精品996| 欧美日韩激情一区二区| 久久久精品欧美丰满| 亚洲午夜久久久| 国产精品一区久久久久| 欧美日韩精品二区第二页| 国产女人18毛片水真多成人如厕| 亚洲最新视频在线播放| 国产一区二区在线电影| 在线免费观看成人短视频| 久久九九久久九九| 日韩精品国产精品| 色国产综合视频| 国产亚洲一区二区三区| 天堂va蜜桃一区二区三区漫画版| aa级大片欧美| 精品日韩av一区二区| 亚洲成人先锋电影| 成人av资源在线| 2021久久国产精品不只是精品| 亚洲精品视频在线观看免费| 国产成人免费在线| 日韩你懂的在线观看| 亚洲成年人网站在线观看| eeuss鲁一区二区三区| 久久综合九色综合欧美亚洲| 天天影视色香欲综合网老头| 一本到不卡免费一区二区| 国产女人aaa级久久久级| 韩国精品在线观看| 日韩一区二区三区在线观看 | 久久99久久久久| 欧美日韩一区成人| 亚洲精品自拍动漫在线| 成人av午夜电影| 欧美激情一区二区三区全黄| 精品一区二区三区在线播放视频 | 视频一区二区欧美| 欧美日韩不卡视频| 水蜜桃久久夜色精品一区的特点| 色婷婷国产精品| 亚洲一二三四久久| 欧洲av一区二区嗯嗯嗯啊|