OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5002|回复: 1

NRF52832-ARM-STARTUP-NRF52810程序笔记

[复制链接]

79

主题

395

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1765
金钱
1765
注册时间
2015-9-21
在线时间
544 小时
发表于 2021-11-29 18:15:11 | 显示全部楼层 |阅读模式
  1. ; Copyright (c) 2009-2021 ARM Limited. All rights reserved.
  2. ;
  3. ;     SPDX-License-Identifier: Apache-2.0
  4. ;
  5. ; Licensed under the Apache License, Version 2.0 (the License); you may
  6. ; not use this file except in compliance with the License.
  7. ; You may obtain a copy of the License at
  8. ;
  9. ;     www.apache.org/licenses/LICENSE-2.0
  10. ;
  11. ; Unless required by applicable law or agreed to in writing, software
  12. ; distributed under the License is distributed on an AS IS BASIS, WITHOUT
  13. ; WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. ; See the License for the specific language governing permissions and
  15. ; limitations under the License.
  16. ;
  17. ; NOTICE: This file has been modified by Nordic Semiconductor ASA.

  18.                 IF :DEF: __STARTUP_CONFIG
  19. #ifdef  __STARTUP_CONFIG
  20. #include "startup_config.h"
  21. #ifndef __STARTUP_CONFIG_STACK_ALIGNEMENT
  22. #define __STARTUP_CONFIG_STACK_ALIGNEMENT 3
  23. #endif
  24. #endif
  25.                 ENDIF

  26.                 IF :DEF: __STARTUP_CONFIG
  27. Stack_Size      EQU __STARTUP_CONFIG_STACK_SIZE
  28.                 ELIF :DEF: __STACK_SIZE
  29. Stack_Size      EQU __STACK_SIZE
  30.                 ELSE
  31. Stack_Size      EQU 2048
  32.                 ENDIF
  33.                
  34.                 IF :DEF: __STARTUP_CONFIG
  35. Stack_Align     EQU __STARTUP_CONFIG_STACK_ALIGNEMENT
  36.                 ELSE
  37. Stack_Align     EQU 3
  38.                 ENDIF

  39.                 AREA    STACK, NOINIT, READWRITE, ALIGN=Stack_Align
  40. Stack_Mem       SPACE   Stack_Size
  41. __initial_sp

  42.                 IF :DEF: __STARTUP_CONFIG
  43. Heap_Size       EQU __STARTUP_CONFIG_HEAP_SIZE
  44.                 ELIF :DEF: __HEAP_SIZE
  45. Heap_Size       EQU __HEAP_SIZE
  46.                 ELSE
  47. Heap_Size       EQU 2048
  48.                 ENDIF

  49.                 AREA    HEAP, NOINIT, READWRITE, ALIGN=3
  50. __heap_base
  51. Heap_Mem        SPACE   Heap_Size
  52. __heap_limit

  53.                 PRESERVE8
  54.                 THUMB

  55. ; Vector Table Mapped to Address 0 at Reset

  56.                 AREA    RESET, DATA, READONLY
  57.                 EXPORT  __Vectors
  58.                 EXPORT  __Vectors_End
  59.                 EXPORT  __Vectors_Size

  60. __Vectors       DCD     __initial_sp              ; Top of Stack
  61.                 DCD     Reset_Handler ;复位
  62.                 DCD     NMI_Handler ;不可屏蔽中断
  63.                 DCD     HardFault_Handler ;硬件故障处理程序
  64.                 DCD     MemoryManagement_Handler ;内存管理程序
  65.                 DCD     BusFault_Handler ;总线错误处理程序
  66.                 DCD     UsageFault_Handler ;使用错误处理程序0
  67.                 DCD     0                         ; Reserved
  68.                 DCD     0                         ; Reserved
  69.                 DCD     0                         ; Reserved
  70.                 DCD     0                         ; Reserved
  71.                                                                         DCD     SVC_Handler    ;系统调用
  72.                 DCD     DebugMon_Handler
  73.                 DCD     0                         ; Reserved
  74.                 DCD     PendSV_Handler
  75.                 DCD     SysTick_Handler

  76.                 ; External Interrupts
  77.                 DCD     POWER_CLOCK_IRQHandler ;POWER_CLOCK 电源
  78.                 DCD     RADIO_IRQHandler ;广播
  79.                 DCD     UARTE0_UART0_IRQHandler ;UART0
  80.                 DCD     TWIM0_TWIS0_TWI0_IRQHandler;两线接口
  81.                 DCD     SPIM0_SPIS0_SPI0_IRQHandler;SPI接口
  82.                 DCD     0                         ; Reserved
  83.                 DCD     GPIOTE_IRQHandler;GPIO任务和事件
  84.                 DCD     SAADC_IRQHandler;模拟数字转换
  85.                 DCD     TIMER0_IRQHandler;定时器
  86.                 DCD     TIMER1_IRQHandler
  87.                 DCD     TIMER2_IRQHandler
  88.                 DCD     RTC0_IRQHandler;RTC时钟
  89.                 DCD     TEMP_IRQHandler;温度
  90.                 DCD     RNG_IRQHandler;随机数
  91.                 DCD     ECB_IRQHandler;AES电子码书模式块加密
  92.                 DCD     CCM_AAR_IRQHandler;AES CCM模式加密
  93.                 DCD     WDT_IRQHandler;看门口
  94.                 DCD     RTC1_IRQHandler;RTC1
  95.                 DCD     QDEC_IRQHandler;求积译码器
  96.                 DCD     COMP_IRQHandler;通用比较器
  97.                 DCD     SWI0_EGU0_IRQHandler;软件中断指令 用来切换ARM的工作模式
  98.                 DCD     SWI1_EGU1_IRQHandler
  99.                 DCD     SWI2_IRQHandler
  100.                 DCD     SWI3_IRQHandler
  101.                 DCD     SWI4_IRQHandler
  102.                 DCD     SWI5_IRQHandler
  103.                 DCD     0                         ; Reserved
  104.                 DCD     0                         ; Reserved
  105.                 DCD     PWM0_IRQHandler;        PWM
  106.                                                                         DCD     PDM_IRQHandler;数字量表示模拟量
  107.                 DCD     0                         ; Reserved
  108.                 DCD     0                         ; Reserved
  109.                 DCD     0                         ; Reserved
  110.                 DCD     0                         ; Reserved
  111.                 DCD     0                         ; Reserved
  112.                 DCD     0                         ; Reserved
  113.                 DCD     0                         ; Reserved
  114.                 DCD     0                         ; Reserved
  115.                 DCD     0                         ; Reserved
  116.                 DCD     0                         ; Reserved
  117.                 DCD     0                         ; Reserved
  118.                 DCD     0                         ; Reserved
  119.                 DCD     0                         ; Reserved
  120.                 DCD     0                         ; Reserved
  121.                 DCD     0                         ; Reserved
  122.                 DCD     0                         ; Reserved
  123.                 DCD     0                         ; Reserved
  124.                 DCD     0                         ; Reserved
  125.                 DCD     0                         ; Reserved
  126.                 DCD     0                         ; Reserved
  127.                 DCD     0                         ; Reserved
  128.                 DCD     0                         ; Reserved
  129.                 DCD     0                         ; Reserved
  130.                 DCD     0                         ; Reserved
  131.                 DCD     0                         ; Reserved
  132.                 DCD     0                         ; Reserved
  133.                 DCD     0                         ; Reserved
  134.                 DCD     0                         ; Reserved
  135.                 DCD     0                         ; Reserved
  136.                 DCD     0                         ; Reserved
  137.                 DCD     0                         ; Reserved
  138.                 DCD     0                         ; Reserved
  139.                 DCD     0                         ; Reserved
  140.                 DCD     0                         ; Reserved
  141.                 DCD     0                         ; Reserved
  142.                 DCD     0                         ; Reserved
  143.                 DCD     0                         ; Reserved
  144.                 DCD     0                         ; Reserved
  145.                 DCD     0                         ; Reserved
  146.                 DCD     0                         ; Reserved
  147.                 DCD     0                         ; Reserved
  148.                 DCD     0                         ; Reserved
  149.                 DCD     0                         ; Reserved
  150.                 DCD     0                         ; Reserved
  151.                 DCD     0                         ; Reserved
  152.                 DCD     0                         ; Reserved
  153.                 DCD     0                         ; Reserved
  154.                 DCD     0                         ; Reserved
  155.                 DCD     0                         ; Reserved
  156.                 DCD     0                         ; Reserved
  157.                 DCD     0                         ; Reserved
  158.                 DCD     0                         ; Reserved
  159.                 DCD     0                         ; Reserved
  160.                 DCD     0                         ; Reserved
  161.                 DCD     0                         ; Reserved
  162.                 DCD     0                         ; Reserved
  163.                 DCD     0                         ; Reserved
  164.                 DCD     0                         ; Reserved
  165.                 DCD     0                         ; Reserved
  166.                 DCD     0                         ; Reserved
  167.                 DCD     0                         ; Reserved
  168.                 DCD     0                         ; Reserved
  169.                 DCD     0                         ; Reserved
  170.                 DCD     0                         ; Reserved
  171.                 DCD     0                         ; Reserved
  172.                 DCD     0                         ; Reserved
  173.                 DCD     0                         ; Reserved
  174.                 DCD     0                         ; Reserved
  175.                 DCD     0                         ; Reserved
  176.                 DCD     0                         ; Reserved
  177.                 DCD     0                         ; Reserved
  178.                 DCD     0                         ; Reserved
  179.                 DCD     0                         ; Reserved
  180.                 DCD     0                         ; Reserved
  181.                 DCD     0                         ; Reserved
  182.                 DCD     0                         ; Reserved
  183.                 DCD     0                         ; Reserved
  184.                 DCD     0                         ; Reserved
  185.                 DCD     0                         ; Reserved
  186.                 DCD     0                         ; Reserved
  187.                 DCD     0                         ; Reserved
  188.                 DCD     0                         ; Reserved

  189. __Vectors_End

  190. __Vectors_Size  EQU     __Vectors_End - __Vectors

  191.                 AREA    |.text|, CODE, READONLY;定义一个代码段,名字是 |.text|,只可读;这里面的CODE属性表示|.text|是一个代码段

  192. ; Reset Handler


  193. Reset_Handler   PROC
  194.                 EXPORT  Reset_Handler             [WEAK]
  195.                 IMPORT  SystemInit
  196.                 IMPORT  __main

  197.                                 ; Workaround for Errata 185 RAM: RAM corruption at extreme corners
  198.                 ; found at the Errata document for your device located
  199.                 ; at https://infocenter.nordicsemi.com/index.jsp
  200.                
  201.                 LDR     R0, =0x10000130
  202.                 LDR     R0, [R0]
  203.                 LDR     R1, =0x10000134
  204.                 LDR     R1, [R1]
  205.                
  206.                 CMP     R0, #0xA
  207.                 BNE     skip
  208.                 CMP     R1, #0x0
  209.                 BNE     skip
  210.                
  211.                 LDR     R0, =0x40000EE4
  212.                 LDR     R2, [R0]
  213.                 LDR     R3, =0xFFFFFF8F
  214.                 ANDS    R2, R2, R3
  215.                 LDR     R3, =0x00000040
  216.                 ORRS    R2, R2, R3
  217.                 STR     R2, [R0]
  218.                
  219. skip

  220.                 LDR     R0, =SystemInit
  221.                 BLX     R0
  222.                 LDR     R0, =__main
  223.                 BX      R0
  224.                 ENDP

  225. ; Dummy Exception Handlers (infinite loops which can be modified)

  226. NMI_Handler     PROC
  227.                 EXPORT  NMI_Handler               [WEAK]
  228.                 B       .
  229.                 ENDP
  230. HardFault_Handler\
  231.                 PROC
  232.                 EXPORT  HardFault_Handler         [WEAK]
  233.                 B       .
  234.                 ENDP
  235. MemoryManagement_Handler\
  236.                 PROC
  237.                 EXPORT  MemoryManagement_Handler  [WEAK]
  238.                 B       .
  239.                 ENDP
  240. BusFault_Handler\
  241.                 PROC
  242.                 EXPORT  BusFault_Handler          [WEAK]
  243.                 B       .
  244.                 ENDP
  245. UsageFault_Handler\
  246.                 PROC
  247.                 EXPORT  UsageFault_Handler        [WEAK]
  248.                 B       .
  249.                 ENDP
  250. SVC_Handler     PROC
  251.                 EXPORT  SVC_Handler               [WEAK]
  252.                 B       .
  253.                 ENDP
  254. DebugMon_Handler\
  255.                 PROC
  256.                 EXPORT  DebugMon_Handler          [WEAK]
  257.                 B       .
  258.                 ENDP
  259. PendSV_Handler  PROC
  260.                 EXPORT  PendSV_Handler            [WEAK]
  261.                 B       .
  262.                 ENDP
  263. SysTick_Handler PROC
  264.                 EXPORT  SysTick_Handler           [WEAK]
  265.                 B       .
  266.                 ENDP

  267. Default_Handler PROC

  268.                 EXPORT   POWER_CLOCK_IRQHandler [WEAK]
  269.                 EXPORT   RADIO_IRQHandler [WEAK]
  270.                 EXPORT   UARTE0_UART0_IRQHandler [WEAK]
  271.                 EXPORT   TWIM0_TWIS0_TWI0_IRQHandler [WEAK]
  272.                 EXPORT   SPIM0_SPIS0_SPI0_IRQHandler [WEAK]
  273.                 EXPORT   GPIOTE_IRQHandler [WEAK]
  274.                 EXPORT   SAADC_IRQHandler [WEAK]
  275.                 EXPORT   TIMER0_IRQHandler [WEAK]
  276.                 EXPORT   TIMER1_IRQHandler [WEAK]
  277.                 EXPORT   TIMER2_IRQHandler [WEAK]
  278.                 EXPORT   RTC0_IRQHandler [WEAK]
  279.                 EXPORT   TEMP_IRQHandler [WEAK]
  280.                 EXPORT   RNG_IRQHandler [WEAK]
  281.                 EXPORT   ECB_IRQHandler [WEAK]
  282.                 EXPORT   CCM_AAR_IRQHandler [WEAK]
  283.                 EXPORT   WDT_IRQHandler [WEAK]
  284.                 EXPORT   RTC1_IRQHandler [WEAK]
  285.                 EXPORT   QDEC_IRQHandler [WEAK]
  286.                 EXPORT   COMP_IRQHandler [WEAK]
  287.                 EXPORT   SWI0_EGU0_IRQHandler [WEAK]
  288.                 EXPORT   SWI1_EGU1_IRQHandler [WEAK]
  289.                 EXPORT   SWI2_IRQHandler [WEAK]
  290.                 EXPORT   SWI3_IRQHandler [WEAK]
  291.                 EXPORT   SWI4_IRQHandler [WEAK]
  292.                 EXPORT   SWI5_IRQHandler [WEAK]
  293.                 EXPORT   PWM0_IRQHandler [WEAK]
  294.                 EXPORT   PDM_IRQHandler [WEAK]
  295. POWER_CLOCK_IRQHandler
  296. RADIO_IRQHandler
  297. UARTE0_UART0_IRQHandler
  298. TWIM0_TWIS0_TWI0_IRQHandler
  299. SPIM0_SPIS0_SPI0_IRQHandler
  300. GPIOTE_IRQHandler
  301. SAADC_IRQHandler
  302. TIMER0_IRQHandler
  303. TIMER1_IRQHandler
  304. TIMER2_IRQHandler
  305. RTC0_IRQHandler
  306. TEMP_IRQHandler
  307. RNG_IRQHandler
  308. ECB_IRQHandler
  309. CCM_AAR_IRQHandler
  310. WDT_IRQHandler
  311. RTC1_IRQHandler
  312. QDEC_IRQHandler
  313. COMP_IRQHandler
  314. SWI0_EGU0_IRQHandler
  315. SWI1_EGU1_IRQHandler
  316. SWI2_IRQHandler
  317. SWI3_IRQHandler
  318. SWI4_IRQHandler
  319. SWI5_IRQHandler
  320. PWM0_IRQHandler
  321. PDM_IRQHandler
  322.                 B .
  323.                 ENDP
  324.                 ALIGN

  325. ; User Initial Stack & Heap

  326.                 IF      :DEF:__MICROLIB

  327.                 EXPORT  __initial_sp
  328.                 EXPORT  __heap_base
  329.                 EXPORT  __heap_limit

  330.                 ELSE

  331.                 IMPORT  __use_two_region_memory
  332.                 EXPORT  __user_initial_stackheap

  333. __user_initial_stackheap PROC

  334.                 LDR     R0, = Heap_Mem
  335.                 LDR     R1, = (Stack_Mem + Stack_Size)
  336.                 LDR     R2, = (Heap_Mem + Heap_Size)
  337.                 LDR     R3, = Stack_Mem
  338.                 BX      LR
  339.                 ENDP

  340.                 ALIGN

  341.                 ENDIF

  342.                 END
复制代码


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

173

帖子

0

精华

高级会员

Rank: 4

积分
637
金钱
637
注册时间
2019-7-28
在线时间
59 小时
发表于 2022-3-26 15:44:44 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 15:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表