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

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

?? cpusetup.s

?? PowerPC 8240 的ucosII 移植代碼 開發平臺為 DiabData
?? S
字號:
#
# file: cpusetup.s
#
# PowerPC Startup - initialize BATs, PCI, cache
# for UCOS-II
#
# Author: Ernie Price
# eprice@bitwise.net
#
#########################################################################
        .text
        .align  2

        .global bsp_Start

        .extern BAT_Enable
        .extern InitSRs
        .extern ClearBATs
        .extern CpDstBg, CpDstEn, CpSrcBg       # from the linker command file
        .extern Slim, Sbase                     # from the linker command file
        .extern msrvalue
        .extern main

        .macro  LA reg,symbol
        lis     reg,%hiadj(symbol)
        addi    reg,reg,%lo(symbol)
        .endm
                
        .macro  LWI reg,symbol
        lis     reg,%hiadj(symbol)
        addi    reg,reg,%lo(symbol)
        .endm

TEST_IF_IN_ROM macro
        bl      . + 4
        mflr    r3                      # r3: Current IP
        rlwinm. r3,r3,1,31,31           # Check most-sig byte
        endm

.if 0
delay   macro
        lis     r3, 1
        mtctr   r3
dly\@:
        addi    r3,r3, 1
        bdnz    dly\@
        endm
.endif  

########################################################################
#
#       Enter here from cpuvecs.s
#
bsp_Start:

        TEST_IF_IN_ROM
        bne     doconfig

        xor     r3,r3,r3
        mtmsr   r3                      # turn off high vector bit
        b       skipper

cfgval  macro   ofs, val
        .byte ofs
        .uword val
        endm    

doconfig:

        bl      goload

        .uword  0                       # update instructions increment first
        tblsz   .set .  
        cfgval  0x04,0xffff0006         # PCI_CMD
        onentry .set . - tblsz
#       cfgval  0x0c,0x00004008         # PCI BIST, HDR, LAT, & CLS
        cfgval  0x44,0x80000000         # PCIARB
#       cfgval  0x70,0x00200000         # PWRMNG1
        cfgval  0x78,0xfce00000         # EUMBBAR
        cfgval  0x80,0xffffff00         # SMEMADD1 
        cfgval  0x84,0xffffffff         # SMEMADD2
        cfgval  0x88,0x03030300         # EXTSMEM1
        cfgval  0x8c,0x03030303         # EXTSMEM2 
        cfgval  0x90,0xffffff3f         # EMEMADD1
        cfgval  0x94,0xffffffff         # EMEMADD2
        cfgval  0x98,0x03030300         # EXTEMEM1
        cfgval  0x9c,0x03030303         # EXTEMEM2
        cfgval  0xa0,0x00000001         # MEMPMODE
        cfgval  0xa8,0xff341cc8         # PCIR1
        cfgval  0xac,0x00000000         # PCIR2
        cfgval  0xc0,0x00000001
        cfgval  0xc4,0x00000000
        cfgval  0xc8,0x00000000         # BERRADDR
        cfgval  0xe0,0x00000060         # AMBOR reset DLL
        cfgval  0xe0,0x00000040         # AMBOR release DLL
        cfgval  0xf0,0xfff00000         # MEMCTRL1
        cfgval  0xf4,0x00000312         # MEMCTRL2
#       cfgval  0xf4,0x0000020c         # MEMCTRL2
        cfgval  0xf8,0x03300000         # MEMCTRL3
        cfgval  0xfc,0x37302230         # MEMCTRL4
#       cfgval  0xfc,0x25302220         # MEMCTRL4
        cfgval  0xf0,0xfff80000         # MEMCTRL1 - MEMGO

        tblsz   .set . - tblsz

        .align  2
goload:

        mflr    r6                      # address of above table
        lis     r4, 0xFEC0              # PCI config address
        lis     r5, 0xFEE0              # PCI config data
        li      r3, tblsz / onentry     # # of table entries
        mtctr   r3                      # put in CTR
loadlp:
        lbzu    r3, 4(r6)               # fetch offset in PCI cfg space
        oris    r3, r3, 0x8000          # or in the magic
        stwbrx  r3, 0, r4               # store in PCI address
        sync
        lwzu    r3, 1(r6)               # load the data
        stwbrx  r3, 0, r5               # store in PCI data 
        sync
        bdnz    loadlp                  # while not done

skipper:

#
#       The segment registers and BATs should be initialized even if 
#       data translation is not activated.
#
        bl      InitSRs                 # setup the segment registers
        bl      ClearBATs               # clear the BAT registers

        bl      BAT_Enable              # set one to one BAT mapping

        bl      IcachEnable             # Turn on instruction caching
        bl      DcachEnable             # Turn on data        caching

        TEST_IF_IN_ROM
        beq     ClearBSS                # Skip the copying if not in ROM

# in ROM - clear all of RAM

        lis     r3, 0x200               # clear 32 Mb
        rlwinm  r3,r3,30,2,31           # shift right 2 bits
        mtctr   r3
        lis     r3, 0                   # r3 is zero
        addi    r4,r3,-4                # r4 is zero - 4
clx:
        stwu    r3,4(r4)
        bdnz    clx
#
#       Now move the C initialized data from ROM to RAM
#

        LA      r3, CpSrcBg             # Address of Data section in FLASH
        LA      r4, CpDstBg             # Address of Data Section in RAM
        LA      r5, CpDstEn             # End of Data Section in RAM
        subf    r5,r4,r5                # r5: # bytes to copy
        bl      LclMemcpy               # Copy Data section to RAM

ClearBSS:

#
#       Now clear the C uninitialized data area
#

        LA      r3, Sbase               # r3: address
        LWI     r5, Ssize               # r5: size to be cleared
        li      r4, 0                   # fill value 
        bl      LclMemset               # CLear Bss area

        mfmsr   r3
        ori     r3,r3,0x1000            # enable machine check exceptions
        mtmsr   r3                      # 

#
#       Now setup the stack and the Diab (also EABI) small data areas
#
        lis     r1, 0x10                # initial stack at 1 mB - only temp til OS starts

        addis   r13,r0,_SDA_BASE_@ha    # Initialize r13 to sdata base
        addi    r13,r13,_SDA_BASE_@l    # (provided by linker).
        addis   r2,r0,_SDA2_BASE_@ha    # Initialize r2 to sdata2 base
        addi    r2,r2,_SDA2_BASE_@l     # (provided by linker).

        mfmsr   r3
        stw     r3, msrvalue@sdax(r13)  # partial MSR value for task stack initialization

#
# Insert other initialization code here.
#

        bl      main
        b       .                       # in case main() returns

##############################################################

#       void LclMemcpy(void *src, void *dst, int lth);

LclMemcpy:
        cmpwi   r5, 0                   # if length == 0 : All Done
        beq     LclMemcpyDone

        addi    r3, r3, -1
        addi    r4, r4, -1
        mtctr   r5

memcpyLp:
        lbzu    r6, 1(r3)               # Load  a byte with increment
        stbu    r6, 1(r4)               # Store a byte with increment
        bdnz    memcpyLp                # while len != 0 Loop
LclMemcpyDone:
#       sync
        blr
##############################################################

#       void LclMemset(void *addr, char val, int lth);

LclMemset:                      
        cmpwi   r5, 0                   # if length == 0 : All Done
        beq     LclMemsetDone
        addi    r3,r3, -1
        mtctr   r5
memsetLp:
        stbu    r4, 1(r3)               # Store a byte with increment
        bdnz    memsetLp                # while len != 0 Loop
LclMemsetDone:
#       sync
        blr

        .end 
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品亚洲二区| 国产成人免费视频网站| 久久精品国产99| 国产激情精品久久久第一区二区| 成人听书哪个软件好| 91精品国产色综合久久 | 波多野结衣中文字幕一区 | 亚洲制服丝袜一区| 美腿丝袜亚洲综合| www.成人网.com| 日韩三区在线观看| 国产精品久久久久久久裸模| 视频一区在线视频| 成人性生交大片免费看在线播放 | 日韩国产欧美在线观看| 成人免费三级在线| 日韩一区二区三区高清免费看看| 中文字幕国产精品一区二区| 日韩精品视频网站| 成人丝袜18视频在线观看| 欧美精品v国产精品v日韩精品 | 91浏览器入口在线观看| 欧美一区二区视频在线观看2020| 国产精品青草综合久久久久99| 天堂在线一区二区| 99这里都是精品| 精品久久久久久久久久久院品网 | 欧美高清视频不卡网| 亚洲国产成人午夜在线一区| 美女网站在线免费欧美精品| 在线影院国内精品| 国产色一区二区| 蜜桃av噜噜一区| 激情五月婷婷综合网| 成人av免费在线播放| 日韩精品资源二区在线| 亚洲综合在线免费观看| 粉嫩一区二区三区性色av| 日韩欧美电影一二三| 亚洲高清视频中文字幕| 91美女在线看| 中文字幕免费不卡| 精品一区二区三区蜜桃| 欧美日韩精品系列| 一区二区欧美在线观看| 99久精品国产| 国产喷白浆一区二区三区| 美女久久久精品| 欧美日韩国产美| 一区二区三区四区视频精品免费| 成人丝袜18视频在线观看| 久久这里只有精品首页| 久久国产精品露脸对白| 欧美一级片在线看| 日韩福利电影在线观看| 欧美精品乱码久久久久久按摩 | 欧美男女性生活在线直播观看| 中文字幕在线不卡一区二区三区| 国产精品影视在线观看| 精品日韩欧美在线| 久久国产精品99精品国产 | 亚洲天堂免费在线观看视频| 国产自产视频一区二区三区| 日韩欧美成人激情| 久久99久久99小草精品免视看| 8x8x8国产精品| 丝袜美腿亚洲综合| 欧美日本一道本| 性感美女久久精品| 欧美性xxxxx极品少妇| 一区二区三区在线观看国产| 91精品福利在线| 一区二区三区在线播放| 欧美亚洲图片小说| 亚洲电影一区二区| 欧美日韩免费视频| 丝袜a∨在线一区二区三区不卡| 欧美丝袜自拍制服另类| 天堂一区二区在线免费观看| 91精品一区二区三区久久久久久| 秋霞午夜av一区二区三区| 日韩网站在线看片你懂的| 麻豆成人久久精品二区三区小说| 91精品国产品国语在线不卡| 久久99蜜桃精品| 久久精品一区蜜桃臀影院| 成人理论电影网| 亚洲色图欧美偷拍| 欧美又粗又大又爽| 国产欧美一区二区三区沐欲| 国产精品99久久久久久宅男| 国产精品无码永久免费888| 91亚洲精品久久久蜜桃网站| 亚洲制服丝袜av| 欧美一区二区久久| 国产精品一区二区91| 国产精品入口麻豆原神| 在线视频你懂得一区| 午夜激情一区二区三区| 欧美不卡一区二区| 成a人片国产精品| 一区二区三区四区乱视频| 欧美顶级少妇做爰| 狠狠色狠狠色综合日日91app| 中文一区在线播放| 在线免费观看一区| 久久9热精品视频| 专区另类欧美日韩| 777奇米成人网| 东方欧美亚洲色图在线| 一区二区三区丝袜| 日韩精品一区二区三区视频播放 | 亚洲女人****多毛耸耸8| 91精品婷婷国产综合久久竹菊| 国产最新精品免费| 亚洲免费观看高清完整版在线 | 国产高清视频一区| 亚洲欧美日本韩国| 欧美xxxxxxxxx| 一本久久a久久精品亚洲| 奇米色一区二区三区四区| 国产精品免费看片| 91精品国产色综合久久不卡电影| 成人黄色小视频在线观看| 亚洲一区二区三区视频在线播放| 亚洲欧美一区二区三区久本道91| 欧美精品在线观看播放| 成人自拍视频在线| 亚洲成av人片在www色猫咪| 日本一区二区三区国色天香| 欧美日韩国产中文| 成人午夜av影视| 久久99精品国产麻豆不卡| 一区二区三区在线观看欧美| 久久一夜天堂av一区二区三区| 欧美亚一区二区| 成人精品一区二区三区中文字幕| 午夜电影网亚洲视频| 国产精品网站一区| 精品国产乱码久久久久久图片 | 91九色最新地址| 国精产品一区一区三区mba桃花| 亚洲综合激情网| 国产精品视频yy9299一区| 日韩一级二级三级精品视频| 欧洲一区二区三区在线| 成人精品视频一区二区三区| 久久精品免费观看| 丝袜亚洲另类欧美| 亚洲一区二区三区中文字幕| 国产精品三级av在线播放| 2024国产精品| 日韩一区二区三区电影在线观看 | 麻豆中文一区二区| 亚洲最快最全在线视频| 国产精品剧情在线亚洲| 久久久欧美精品sm网站| 91精品在线观看入口| 欧美日韩久久久久久| 91色视频在线| bt欧美亚洲午夜电影天堂| 国产激情精品久久久第一区二区| 久久精品二区亚洲w码| 天堂久久久久va久久久久| 亚洲一区二区三区中文字幕在线| 日韩码欧中文字| 亚洲欧美在线aaa| 国产精品区一区二区三区| 久久精品亚洲国产奇米99| 3d成人动漫网站| 国内精品免费**视频| 青青草成人在线观看| 午夜天堂影视香蕉久久| 亚洲人成网站精品片在线观看| 中文字幕一区在线观看| 国产欧美综合在线| 国产女主播一区| 欧美一级夜夜爽| 99国产精品久久久久| aaa国产一区| 99久久综合狠狠综合久久| 成人精品高清在线| 大美女一区二区三区| 国产91精品免费| 成人激情小说网站| 暴力调教一区二区三区| 99久久免费视频.com| 色香蕉久久蜜桃| 欧美亚洲一区二区在线| 欧美日韩国产123区| 欧美肥大bbwbbw高潮| 日韩美女一区二区三区四区| 精品国产网站在线观看| 久久在线观看免费| 国产欧美一区二区三区在线看蜜臀| 久久久久国产精品免费免费搜索| 国产欧美日韩综合精品一区二区| 一区在线中文字幕| 亚洲午夜精品在线| 日韩 欧美一区二区三区|