⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 startup.asx

📁 Xilinx USB JTAG 下載端程式
💻 ASX
字号:
;;; -*- asm -*-;;;;;;-----------------------------------------------------------------------------;;; Startup code;;;-----------------------------------------------------------------------------;;; Code taken from USRP2 firmware (GNU Radio Project), version 3.0.2,;;; Copyright 2003 Free Software Foundation, Inc.;;;-----------------------------------------------------------------------------;;; This code is part of usbjtag. usbjtag 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. usbjtag 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 in the file;;; COPYING; if not, write to the Free Software Foundation, Inc., 51 Franklin;;; St, Fifth Floor, Boston, MA  02110-1301  USA;;;-----------------------------------------------------------------------------;;; The default external memory initialization provided by sdcc is not;;; appropriate to the FX2.  This is derived from the sdcc code, but uses ;;; the FX2 specific _MPAGE sfr.        .module startup        ;; .area XISEG   (XDATA)  ; the initialized external data area        ;; .area XINIT   (CODE)          ; the code space consts to init XISEG        .area XSEG    (XDATA)          ; zero initialized xdata        .area USBDESCSEG (XDATA)  ; usb descriptors                .area CSEG    (CODE)        ;; sfr that sets upper address byte of MOVX using @r0 or @r1        _MPAGE        =        0x0092__sdcc_external_startup::        ;; This system is now compiled with the --no-xinit-opt         ;; which means that any initialized XDATA is handled        ;; inline by code in the GSINIT segs emitted for each file.        ;;         ;; We zero XSEG and all of the internal ram to ensure         ;; a known good state for uninitialized variables.;        _mcs51_genRAMCLEAR() start        mov        r0,#l_XSEG        mov        a,r0        orl        a,#(l_XSEG >> 8)        jz        00002$        mov        r1,#((l_XSEG + 255) >> 8)        mov        dptr,#s_XSEG        clr     a        00001$:        movx        @dptr,a        inc        dptr        djnz        r0,00001$        djnz        r1,00001$                ;; We're about to clear internal memory.  This will overwrite        ;; the stack which contains our return address.        ;; Pop our return address into DPH, DPL00002$:        pop        dph        pop        dpl                ;; R0 and A contain 0.  This loop will execute 256 times.        ;;         ;; FWIW the first iteration writes direct address 0x00,        ;; which is the location of r0.  We get lucky, we're         ;; writing the correct value (0)        00003$:        mov        @r0,a        djnz        r0,00003$        push        dpl                ; restore our return address        push        dph        mov        dpl,#0                ; indicate that data init is still required        ret

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -