久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4765|回復: 0
打印 上一主題 下一主題
收起左側

arm匯編程序S3C2440

[復制鏈接]
跳轉到指定樓層
樓主
ID:218549 發表于 2017-7-10 16:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

  1. pWTCON                EQU        0x53000000                                ;看門狗定時器口地址
  2. pLOCKTIME        EQU        0x4c000000                                ;鎖定時間計數值寄存器地址
  3. pCLKDIVN         EQU        0x4c000014                                ;時鐘控制寄存器地址
  4. pUPLLCON        EQU        0x4c000008                                ;
  5. pMPLLCON         EQU        0x4c000004
  6. pBWSCON          EQU 0x48000000                                ;設置數據總線寬度與等待狀態控制寄存器地址
  7. pSRCPND                EQU        0x4a000000                                ;中斷源狀態寄存器地址
  8. pINTPND                EQU        0x4a000010                                ;中斷狀態寄存器地址
  9. pINTMOD                EQU        0x4a000004                                ;中斷模式寄存器地址
  10. pINTMSK                EQU        0x4a000008                                ;中斷屏蔽寄存器地址
  11. pINTSUBMSK        EQU        0x4a00001c                                ;子中斷狀態源寄存器地址
  12. pINTOFFSET        EQU 0x4a000014                            ;中斷源偏移地址寄存器地址   
  13. pGPFCON         EQU        0x56000050                                ;GPIO F口控制寄存器地址
  14. pGPFUP          EQU        0x56000058                                ;F口上拉電阻控制寄存器地址

  15. _ISR_STARTADDRESS         EQU                0x33FFFF00        ;中斷服務向量表起始地址

  16. vCLKDIVN        EQU                0x5
  17. vUPLLCON        EQU                0x00038022
  18. vMPLLCON        EQU                0x0005c011

  19. vU_MDIV                EQU        56                        ;Fin=12.0MHz Fout=48MHz
  20. vU_PDIV                EQU        2

  21. DW16                EQU        (0x1)
  22. DW32                EQU        (0x2)

  23. B1_BWSCON        EQU (DW16)        ; AMD flash(AM29LV160DB), 16-bit,  for nCS1
  24. B2_BWSCON        EQU (DW16)        ; PCMCIA(PD6710), 16-bit
  25. B3_BWSCON        EQU (DW16)        ; Ethernet(CS8900), 16-bit
  26. B4_BWSCON        EQU (DW32)        ; Intel Strata(28F128), 32-bit, for nCS4
  27. B5_BWSCON        EQU (DW16)        ; A400/A410 Ext, 16-bit
  28. B6_BWSCON        EQU (DW32)        ; SDRAM(K4S561632C) 32MBx2, 32-bit
  29. B7_BWSCON        EQU (DW32)        ; N.C.
  30. ;BANK0CON

  31. B0_Tacs                EQU        0x3        ;0clk
  32. B0_Tcos                EQU        0x3        ;0clk
  33. B0_Tacc                EQU        0x7        ;14clk
  34. B0_Tcoh                EQU        0x3        ;0clk
  35. B0_Tah                EQU        0x3        ;0clk
  36. B0_Tacp                EQU        0x1
  37. B0_PMC                EQU        0x0        ;normal

  38.                                 ;BANK1CON
  39. B1_Tacs                EQU        1;0x0        ;0clk
  40. B1_Tcos                EQU        1;0x0        ;0clk
  41. B1_Tacc                EQU        6;0x7        ;14clk
  42. B1_Tcoh                EQU        1;0x0        ;0clk
  43. B1_Tah                EQU        1;0x0        ;0clk
  44. B1_Tacp                EQU        0x0
  45. B1_PMC                EQU        0x0        ;normal

  46.                                 ;Bank 2 parameter
  47. B2_Tacs                EQU        1;0x0        ;0clk
  48. B2_Tcos                EQU        1;0x0        ;0clk
  49. B2_Tacc                EQU        6;0x7        ;14clk
  50. B2_Tcoh                EQU        1;0x0        ;0clk
  51. B2_Tah                EQU        1;0x0        ;0clk
  52. B2_Tacp                EQU        0x0
  53. B2_PMC                EQU        0x0        ;normal

  54.                                 ;Bank 3 parameter
  55. B3_Tacs                EQU        0x1;0        ;0clk
  56. B3_Tcos                EQU        0x1;0        ;0clk
  57. B3_Tacc                EQU        0x6;7        ;14clk
  58. B3_Tcoh                EQU        0x1;0        ;0clk
  59. B3_Tah                EQU        0x1;0        ;0clk
  60. B3_Tacp                EQU        0x0
  61. B3_PMC                EQU        0x0        ;normal

  62.                                 ;Bank 4 parameter
  63. B4_Tacs                EQU        0x1;0        ;0clk
  64. B4_Tcos                EQU        0x1;0        ;0clk
  65. B4_Tacc                EQU        0x6;7        ;14clk
  66. B4_Tcoh                EQU        0x1;0        ;0clk
  67. B4_Tah                EQU        0x1;0        ;0clk
  68. B4_Tacp                EQU        0x0
  69. B4_PMC                EQU        0x0        ;normal

  70.                                 ;Bank 5 parameter
  71. B5_Tacs                EQU        0x1;0        ;0clk
  72. B5_Tcos                EQU        0x1;0        ;0clk
  73. B5_Tacc                EQU        0x6;7        ;14clk
  74. B5_Tcoh                EQU        0x1;0        ;0clk
  75. B5_Tah                EQU        0x1;0        ;0clk
  76. B5_Tacp                EQU        0x0
  77. B5_PMC                EQU        0x0        ;normal

  78.                                 ;Bank 6 parameter
  79. B6_MT                EQU        0x3        ;SDRAM
  80. B6_Trcd                EQU        0x1        ;3clk
  81. B6_SCAN                EQU        0x1        ;9bit

  82.                                 ;Bank 7 parameter
  83. B7_MT                EQU        0x3        ;SDRAM
  84. B7_Trcd                EQU        0x1        ;3clk
  85. B7_SCAN                EQU        0x1        ;9bit

  86.                                 ;REFRESH parameter
  87. REFEN                EQU        0x1        ;Refresh enable
  88. TREFMD                EQU        0x0        ;CBR(CAS before RAS)/Auto refresh
  89. Trp                        EQU        0x1        ;3clk
  90. Tsrc                EQU        0x1        ;5clk        Trc= Trp(3)+Tsrc(5) = 8clock
  91. Tchr                EQU        0x2        ;3clk
  92. REFCNT                EQU        1268;1463;1268        ;HCLK=105Mhz, (2048+1-7.81*100);75M->1463


  93.                                                                 ;CPSR中各種工作模式的設置信息
  94. USERMODE    EQU         0x10
  95. FIQMODE     EQU         0x11
  96. IRQMODE     EQU         0x12
  97. SVCMODE     EQU         0x13
  98. ABORTMODE   EQU         0x17
  99. UNDEFMODE   EQU         0x1b
  100. MODEMASK    EQU         0x1f
  101. NOINT       EQU         0xc0

  102.                                                                 ;各種工作模式下堆棧指針初值設置
  103. UserStack        EQU                0x33ff4800
  104. SVCStack        EQU                0x33ff5800
  105. UndefStack        EQU                0x33ff5c00
  106. AbortStack        EQU                0x33ff6000
  107. IRQStack        EQU                0x33ff7000
  108. FIQStack        EQU                0x33ff8000




  109.         AREA    Init,CODE,READONLY
  110.         ENTRY
  111.         EXPORT        __ENTRY
  112. __ENTRY
  113. ResetEntry
  114.        
  115.         b        _reset
  116.         b        .                                ;handler for Undefined mode
  117.         b        .                                ;handler for SWI interrupt
  118.         b        .                                ;handler for PAbort
  119.         b        .                                ;handler for DAbort
  120.         b        .                                ;reserved
  121.         b        IsrIRQ                        ;handler for IRQ interrupt
  122.         b        .                                ;handler for FIQ interrupt

  123.                                                 ;SDRAM參數設置,包括數據寬度,刷新模式和頻率
  124. SMRDATA
  125.         DCD (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
  126.         DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))                                                                   ;GCS0
  127.         DCD        ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))                                                           ;GCS1
  128.         DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))                                                                  ;GCS2
  129.         DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))                                                           ;GCS3
  130.         DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))                                                           ;GCS4
  131.         DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))                                                                   ;GCS5
  132.         DCD ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))                                                                                                                                                                        ;GCS6
  133.         DCD ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))                                                                                                                                                                        ;GCS7
  134.         DCD ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Tsrc<<18)+(Tchr<<16)+REFCNT)

  135.         DCD 0x32                                                                                        ;SCLK power saving mode, BANKSIZE 128M/128M
  136.         DCD 0x30                                                                                        ;MRSR6 CL=3clk
  137.         DCD 0x30                                                                                        ;MRSR7 CL=3clk
  138.   
  139.   
  140.   
  141.   
  142. IsrIRQ
  143.         sub sp,sp,#4
  144.         stmfd  sp!,{r8-r9}
  145.         ldr r9,=pINTOFFSET
  146.         ldr r9,[r9]
  147.         ldr r8,=HandleEINT0
  148.         add r8,r8,r9,lsl #2
  149.         ldr r8,[r8]
  150.         str r8,[sp,#8]
  151.         ldmfd  sp!,{r8-r9,pc}
  152.         LTORG   

  153. _reset   
  154.         ldr        r0,=pWTCON                                ;關閉看門狗定時器
  155.         ldr        r1,=0x0
  156.         str        r1,[r0]

  157.         ldr        r0,=pINTMSK
  158.         ldr        r1,=0xffffffff                        ;屏蔽所有中斷請求
  159.         str        r1,[r0]

  160.         ldr        r0,=pINTSUBMSK
  161.         ldr        r1,=0x7fff                                ;關閉所有子中斷請求,1為無中斷請求,0~14為有效設置位,其余為保留位。
  162.         str        r1,[r0]

  163.                                                                 ;設置PLL鎖存時間 To reduce PLL lock time, adjust the LOCKTIME register.
  164.         ldr        r0,=pLOCKTIME
  165.         ldr        r1,=0xffffff
  166.         str        r1,[r0]

  167.         ldr        r0,=pCLKDIVN
  168.         ldr        r1,=vCLKDIVN                        ; 0=1:1:1, 1=1:1:2, 2=1:2:2, 3=1:2:4, 4=1:4:4, 5=1:4:8, 6=1:3:3, 7=1:3:6.
  169.         str        r1,[r0]



  170.                                                                 ;Configure UPLL
  171.         ldr        r0,=pUPLLCON
  172.         ldr        r1,=vUPLLCON                        ;Fin = 12.0MHz, UCLK = 48MHz
  173.         str        r1,[r0]
  174.         nop                                                        ;Caution: After UPLL setting, at least 7-clocks delay must be inserted for setting hardware be completed.
  175.         nop
  176.         nop
  177.         nop
  178.         nop
  179.         nop
  180.         nop
  181.                                                                 ;Configure MPLL
  182.         ldr        r0,=pMPLLCON
  183.         ldr        r1,=vMPLLCON                        ;Fin = 12.0MHz, FCLK = 400MHz
  184.         str        r1,[r0]

  185.                                                             ;設置SDRAM存儲器參數
  186.                                                                 ;Set memory control registers
  187.         adrl        r0, SMRDATA                        ;be careful!
  188.         ldr        r1,=pBWSCON                                ;BWSCON Address
  189.         add        r2, r0, #52                                ;End address of SMRDATA

  190. 0
  191.         ldr        r3, [r0], #4
  192.         str        r3, [r1], #4
  193.         cmp        r2, r0
  194.         bne        %B0





  195. InitStacks                                                ;初始化可能用到的工作模式下的堆棧區
  196.         mrs        r0,cpsr
  197.         bic        r0,r0,#MODEMASK|NOINT
  198.        
  199.         orr        r1,r0,#IRQMODE
  200.         msr        cpsr_cxsf,r1                        ;IRQMode
  201.         ldr        sp,=IRQStack                        ; IRQStack=0x33FF_7000

  202.         orr        r1,r0,#FIQMODE
  203.         msr        cpsr_cxsf,r1                        ;FIQMode
  204.         ldr        sp,=FIQStack                        ; FIQStack=0x33FF_8000

  205.         orr r1,r0,#USERMODE
  206.         msr cpsr_cxsf,r1
  207.         ldr sp,=UserStack
  208.         ldr        pc,=Main
  209.         LTORG
  210.        
  211.        
  212. Main
  213.         ldr r0,=pINTMOD
  214.         ldr r1,=0x0
  215.         str r1,[r0]
  216.         ldr r0,=pGPFCON
  217.         ldr r1,=0x080
  218.         str r1,[r0]
  219.         ldr r0,=pGPFUP
  220.         ldr r1,=0xff
  221.         str r1,[r0]
  222.         ldr r0,=HandleEINT0+0x0c
  223.         adrl r1,interrupt
  224.         str r1,[r0]
  225.         ldr r0,=0x20005000
  226.         ldr r1,=0x00
  227.         str r1,[r0]
  228.         ldr r0,=pINTMSK
  229.         ldr r1,=0x0FFFFFFF7
  230.         str r1,[r0]
  231. wait_server
  232.         b .
  233. ;
  234.         mrs r0,cpsr
  235.         bic r0,r0,#MODEMASK|NOINT
  236.         orr r1,r0,#USERMODE
  237.         msr cpsr_cxsf,r1
  238.         b wait_server
  239.         LTORG
  240. interrupt
  241.         ;sub lr,r14,#4
  242.         stmfd sp!,{r8,r9,lr}
  243. LOOP0   
  244.     ldr r0,=0x20005000
  245.         ldr r1,=0x01
  246.         str r1,[r0]
  247.         bl Delay
  248.         ldr r0,=0x20005000
  249.         ldr r1,=0x03
  250.         str r1,[r0]
  251.         bl Delay
  252.         ldr r0,=0x20005000
  253.         ldr r1,=0x07
  254.         str r1,[r0]
  255.         bl Delay
  256.         ldr r0,=0x20005000
  257.         ldr r1,=0x0f
  258.         str r1,[r0]
  259.         bl Delay
  260.         ldr r0,=0x20005000
  261.         ldr r1,=0x00
  262.         str r1,[r0]
  263.         ldr r0,=pSRCPND
  264.         mov r1,#8
  265.         str r1,[r0]
  266.         ldr r0,=pINTPND
  267.         str r1,[r0]
  268.         ldmfd sp!,{r8,r9,pc}
  269.         LTORG
  270.        
  271. Delay
  272.         stmfd  sp!,{r8,r9,lr}
  273.         ldr r7,=0x7a120
  274. LOOP9 sub r7,r7,#1
  275.         cmp r7,#0
  276.         bne LOOP9
  277.         ldmfd  sp!,{r8,r9,pc}
  278.         LTORG
  279.         AREA RamData,DATA,READWRITE
  280.         ^ _ISR_STARTADDRESS
  281. HandleEINT0    # 4
  282. HandleEINT1    # 4
  283. HandleEINT2    # 4
  284. HandleEINT3    # 4
  285.         END

復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲综合视频 | 婷婷综合在线 | 国产免费一二三区 | 久久综合伊人 | 亚洲精品www| 在线日韩欧美 | 欧美激情视频一区二区三区免费 | 81精品国产乱码久久久久久 | 欧美男人天堂 | 五月婷婷中文 | ww亚洲ww亚在线观看 | 日本人爽p大片免费看 | 国产精品爱久久久久久久 | 2021天天干夜夜爽 | 一区二区三区免费 | 国产一区二区三区 | 国产女人叫床高潮大片免费 | 在线观看久草 | 欧美日韩综合一区 | 国产99久久精品一区二区300 | 日韩在线精品视频 | 欧美成人综合 | www.国产精品| 午夜精品久久久 | 亚洲一区二区三区观看 | 一级做a爰片久久毛片免费看 | 国产在线不卡 | 亚洲国产成人精品女人久久久 | 日韩成人高清在线 | 成人在线观看免费爱爱 | 97伦理影院 | 91在线看视频 | 欧美精品网| 色综合天天天天做夜夜夜夜做 | 天堂免费看片 | 欧美成人自拍视频 | 亚洲精品1区2区3区 91免费看片 | 日韩高清av | 中文字幕 在线观看 | 国产精品国产成人国产三级 | 日韩在线视频免费观看 |