搜索
bottom↓
回复: 20

为什么在RTT中跑PWM,比裸机慢9倍?(问题已解决,请看16楼)

[复制链接]

出0入0汤圆

发表于 2013-4-6 17:58:21 | 显示全部楼层 |阅读模式
本帖最后由 小笨蛋 于 2013-4-7 11:27 编辑

我裸机跑PWM,不分频是72KHz
  1.   TIM_TimeBaseStructure.TIM_Period = 999;       //当定时器从0计数到999,即为1000次,为一个定时周期
  2.   TIM_TimeBaseStructure.TIM_Prescaler = 0;            //设置预分频:不预分频,即为36MHz
  3.   TIM_TimeBaseStructure.TIM_ClockDivision = 0;        //设置时钟分频系数:不分频
  4.   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上计数模式
复制代码
相同的代码在RTThread中跑,频率只有8KHz,有没有人遇到这种情况啊?这是为什么呢?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-4-6 18:24:39 | 显示全部楼层
你这么一问,好像问题还是rtt的了。其实rtt很无辜

出0入0汤圆

发表于 2013-4-6 18:28:28 | 显示全部楼层
。。。。36M,PWM如何跑上72K的
难道你的STM32计数器是带倍频器的

出0入0汤圆

发表于 2013-4-6 18:28:47 | 显示全部楼层
时钟设置问题吧。。。。。。。与系统无关

出0入0汤圆

 楼主| 发表于 2013-4-6 18:43:00 | 显示全部楼层
本帖最后由 小笨蛋 于 2013-4-6 19:05 编辑
Soul.art 发表于 2013-4-6 18:28
。。。。36M,PWM如何跑上72K的
难道你的STM32计数器是带倍频器的 ...


不知道啊!!我是用示波器量的···是不是TIM3是36M的。TIM8是72M的?

出0入0汤圆

 楼主| 发表于 2013-4-6 18:44:22 | 显示全部楼层
本帖最后由 小笨蛋 于 2013-4-6 19:03 编辑
canopen 发表于 2013-4-6 18:28
时钟设置问题吧。。。。。。。与系统无关


我发现问题出现在start_rvds.s这个文件上。但是不知道怎么去改。我换成库里面的启动文件就可以,但是RTThread线程运行不起来

出0入0汤圆

发表于 2013-4-6 18:57:30 | 显示全部楼层
你RTT的时钟初始化问题?

出0入0汤圆

 楼主| 发表于 2013-4-6 19:02:40 | 显示全部楼层
ap0705307 发表于 2013-4-6 18:57
你RTT的时钟初始化问题?

现在问题一定出现在start_rvds.s这个启动文件上,可惜里面全是汇编,看不懂。我一会去上自习了,回来我把它和库里面的启动文件对比,应该是能够锁定问题的。

出0入0汤圆

发表于 2013-4-6 19:06:51 | 显示全部楼层
Soul.art 发表于 2013-4-6 18:28
。。。。36M,PWM如何跑上72K的
难道你的STM32计数器是带倍频器的 ...

stm32定时器真的有倍频

出0入0汤圆

发表于 2013-4-6 19:32:10 | 显示全部楼层
只能 说: 呵呵  了。

出0入0汤圆

发表于 2013-4-6 20:15:18 | 显示全部楼层
仿真起来直接看寄存器啊。。。

出0入0汤圆

发表于 2013-4-6 20:42:38 | 显示全部楼层
T1,T8和其他的Tn好像不一样,不记得了,自己看手册去吧

出0入0汤圆

 楼主| 发表于 2013-4-7 07:46:30 | 显示全部楼层
error_dan 发表于 2013-4-6 20:15
仿真起来直接看寄存器啊。。。

寄存器不熟悉……不知道哪些寄存器影响了这个……

出0入0汤圆

发表于 2013-4-7 08:53:53 | 显示全部楼层
小笨蛋 发表于 2013-4-7 07:46
寄存器不熟悉……不知道哪些寄存器影响了这个……

看手册            

出0入0汤圆

 楼主| 发表于 2013-4-7 10:56:08 | 显示全部楼层
着脸张图已经说明问题了,但是还没找到原因


  1. ; /*
  2. ; * File      : start_rvds.s
  3. ; * This file is part of RT-Thread RTOS
  4. ; * COPYRIGHT (C) 2009, RT-Thread Development Team
  5. ; *
  6. ; * The license and distribution terms for this file may be
  7. ; * found in the file LICENSE in this distribution or at
  8. ; * http://www.rt-thread.org/license/LICENSE
  9. ; *
  10. ; * Change Logs:
  11. ; * Date           Author       Notes
  12. ; * 2009-09-23     Bernard      first implementation
  13. ; */

  14. ;* <<< Use Configuration Wizard in Context Menu >>>

  15. ; Amount of memory (in bytes) allocated for Stack
  16. ; Tailor this value to your application needs
  17. ; <h> Stack Configuration
  18. ;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
  19. ; </h>

  20. Stack_Size      EQU     0x00000400

  21.                 AREA    STACK, NOINIT, READWRITE, ALIGN=3
  22. Stack_Mem       SPACE   Stack_Size
  23. __initial_sp
  24. ; not use external SRAM as data memory

  25. ; <h> Heap Configuration
  26. ;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
  27. ; </h>

  28. Heap_Size       EQU     0x00000000

  29.                 AREA    HEAP, NOINIT, READWRITE, ALIGN=3
  30. __heap_base
  31. Heap_Mem        SPACE   Heap_Size
  32. __heap_limit

  33.     PRESERVE8
  34.     THUMB

  35. ;    IMPORT  rt_hw_hard_fault
  36. ;    IMPORT  rt_hw_pend_sv
  37. ;    IMPORT  rt_hw_timer_handler

  38. ; Vector Table Mapped to Address 0 at Reset
  39.                 AREA    RESET, DATA, READONLY
  40.                 EXPORT  __Vectors
  41.                 EXPORT  __Vectors_End
  42.                 EXPORT  __Vectors_Size

  43. __Vectors       DCD     __initial_sp               ; Top of Stack
  44.                 DCD     Reset_Handler              ; Reset Handler
  45.                 DCD     NMI_Handler                ; NMI Handler
  46. ;                DCD     rt_hw_hard_fault           ; Hard Fault Handler
  47.                 DCD     MemManage_Handler          ; MPU Fault Handler
  48.                 DCD     BusFault_Handler           ; Bus Fault Handler
  49.                 DCD     UsageFault_Handler         ; Usage Fault Handler
  50.                 DCD     0                          ; Reserved
  51.                 DCD     0                          ; Reserved
  52.                 DCD     0                          ; Reserved
  53.                 DCD     0                          ; Reserved
  54.                 DCD     SVC_Handler                ; SVCall Handler
  55.                 DCD     DebugMon_Handler           ; Debug Monitor Handler
  56.                 DCD     0                          ; Reserved
  57. ;                DCD     rt_hw_pend_sv              ; PendSV Handler in RT-Thread
  58. ;                DCD     rt_hw_timer_handler        ; SysTick Handler in RT-Thread

  59.                 ; External Interrupts
  60.                 DCD     WWDG_IRQHandler            ; Window Watchdog
  61.                 DCD     PVD_IRQHandler             ; PVD through EXTI Line detect
  62.                 DCD     TAMPER_IRQHandler          ; Tamper
  63.                 DCD     RTC_IRQHandler             ; RTC
  64.                 DCD     FLASH_IRQHandler           ; Flash
  65.                 DCD     RCC_IRQHandler             ; RCC
  66.                 DCD     EXTI0_IRQHandler           ; EXTI Line 0
  67.                 DCD     EXTI1_IRQHandler           ; EXTI Line 1
  68.                 DCD     EXTI2_IRQHandler           ; EXTI Line 2
  69.                 DCD     EXTI3_IRQHandler           ; EXTI Line 3
  70.                 DCD     EXTI4_IRQHandler           ; EXTI Line 4
  71.                 DCD     DMA1_Channel1_IRQHandler   ; DMA1 Channel 1
  72.                 DCD     DMA1_Channel2_IRQHandler   ; DMA1 Channel 2
  73.                 DCD     DMA1_Channel3_IRQHandler   ; DMA1 Channel 3
  74.                 DCD     DMA1_Channel4_IRQHandler   ; DMA1 Channel 4
  75.                 DCD     DMA1_Channel5_IRQHandler   ; DMA1 Channel 5
  76.                 DCD     DMA1_Channel6_IRQHandler   ; DMA1 Channel 6
  77.                 DCD     DMA1_Channel7_IRQHandler   ; DMA1 Channel 7
  78.                 DCD     ADC1_2_IRQHandler          ; ADC1 and ADC2
  79.                 DCD     USB_HP_CAN1_TX_IRQHandler  ; USB High Priority or CAN1 TX
  80.                 DCD     USB_LP_CAN1_RX0_IRQHandler ; USB Low  Priority or CAN1 RX0
  81.                 DCD     CAN1_RX1_IRQHandler        ; CAN1 RX1
  82.                 DCD     CAN1_SCE_IRQHandler        ; CAN1 SCE
  83.                 DCD     EXTI9_5_IRQHandler         ; EXTI Line 9..5
  84.                 DCD     TIM1_BRK_IRQHandler        ; TIM1 Break
  85.                 DCD     TIM1_UP_IRQHandler         ; TIM1 Update
  86.                 DCD     TIM1_TRG_COM_IRQHandler    ; TIM1 Trigger and Commutation
  87.                 DCD     TIM1_CC_IRQHandler         ; TIM1 Capture Compare
  88.                 DCD     TIM2_IRQHandler            ; TIM2
  89.                 DCD     TIM3_IRQHandler            ; TIM3
  90.                 DCD     TIM4_IRQHandler            ; TIM4
  91.                 DCD     I2C1_EV_IRQHandler         ; I2C1 Event
  92.                 DCD     I2C1_ER_IRQHandler         ; I2C1 Error
  93.                 DCD     I2C2_EV_IRQHandler         ; I2C2 Event
  94.                 DCD     I2C2_ER_IRQHandler         ; I2C2 Error
  95.                 DCD     SPI1_IRQHandler            ; SPI1
  96.                 DCD     SPI2_IRQHandler            ; SPI2
  97.                 DCD     USART1_IRQHandler          ; USART1
  98.                 DCD     USART2_IRQHandler          ; USART2
  99.                 DCD     USART3_IRQHandler          ; USART3
  100.                 DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10
  101.                 DCD     RTCAlarm_IRQHandler        ; RTC Alarm through EXTI Line
  102.                 DCD     OTG_FS_WKUP_IRQHandler     ; USB OTG FS Wakeup through EXTI line
  103.                 DCD     TIM8_BRK_IRQHandler        ; TIM8 Break
  104.                 DCD     TIM8_UP_IRQHandler         ; TIM8 Update
  105.                 DCD     TIM8_TRG_COM_IRQHandler    ; TIM8 Trigger and Commutation
  106.                 DCD     TIM8_CC_IRQHandler         ; TIM8 Capture Compare
  107.                 DCD     ADC3_IRQHandler            ; ADC3
  108.                 DCD     FSMC_IRQHandler            ; FSMC
  109.                 DCD     SDIO_IRQHandler            ; SDIO
  110.                 DCD     TIM5_IRQHandler            ; TIM5
  111.                 DCD     SPI3_IRQHandler            ; SPI3
  112.                 DCD     UART4_IRQHandler           ; UART4
  113.                 DCD     UART5_IRQHandler           ; UART5
  114.                 DCD     TIM6_IRQHandler            ; TIM6
  115.                 DCD     TIM7_IRQHandler            ; TIM7
  116.                 DCD     DMA2_Channel1_IRQHandler   ; DMA2 Channel1
  117.                 DCD     DMA2_Channel2_IRQHandler   ; DMA2 Channel2
  118.                 DCD     DMA2_Channel3_IRQHandler   ; DMA2 Channel3
  119.                 DCD     DMA2_Channel4_5_IRQHandler ; DMA2 Channel4 and Channel5
  120.                 ; for STM32F10x Connectivity line devices
  121.                 DCD     DMA2_Channel5_IRQHandler   ; DMA2 Channel5
  122.                 DCD     ETH_IRQHandler             ; Ethernet
  123.                 DCD     ETH_WKUP_IRQHandler        ; Ethernet Wakeup through EXTI line
  124.                 DCD     CAN2_TX_IRQHandler         ; CAN2 TX
  125.                 DCD     CAN2_RX0_IRQHandler        ; CAN2 RX0
  126.                 DCD     CAN2_RX1_IRQHandler        ; CAN2 RX1
  127.                 DCD     CAN2_SCE_IRQHandler        ; CAN2 SCE
  128.                 DCD     OTG_FS_IRQHandler          ; USB OTG FS

  129. __Vectors_End

  130. __Vectors_Size         EQU         __Vectors_End - __Vectors

  131.                 AREA    |.text|, CODE, READONLY

  132. ; Reset handler routine
  133. Reset_Handler   PROC
  134.                 EXPORT  Reset_Handler             [WEAK]
  135.                 IMPORT  __main

  136.                 LDR     R1, = __initial_sp        ; restore original stack pointer
  137.                 MSR     MSP, R1

  138.                 LDR     R0, =__main
  139.                 BX      R0
  140.                 ENDP

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

  142. NMI_Handler     PROC
  143.                 EXPORT  NMI_Handler                [WEAK]
  144.                 B       .
  145.                 ENDP
  146. HardFault_Handler\
  147.                 PROC
  148.                 EXPORT  HardFault_Handler          [WEAK]
  149.                 B       .
  150.                 ENDP
  151. MemManage_Handler\
  152.                 PROC
  153.                 EXPORT  MemManage_Handler          [WEAK]
  154.                 B       .
  155.                 ENDP
  156. BusFault_Handler\
  157.                 PROC
  158.                 EXPORT  BusFault_Handler           [WEAK]
  159.                 B       .
  160.                 ENDP
  161. UsageFault_Handler\
  162.                 PROC
  163.                 EXPORT  UsageFault_Handler         [WEAK]
  164.                 B       .
  165.                 ENDP
  166. SVC_Handler     PROC
  167.                 EXPORT  SVC_Handler                [WEAK]
  168.                 B       .
  169.                 ENDP
  170. DebugMon_Handler\
  171.                 PROC
  172.                 EXPORT  DebugMon_Handler           [WEAK]
  173.                 B       .
  174.                 ENDP

  175. Default_Handler PROC

  176.                 EXPORT  WWDG_IRQHandler            [WEAK]
  177.                 EXPORT  PVD_IRQHandler             [WEAK]
  178.                 EXPORT  TAMPER_IRQHandler          [WEAK]
  179.                 EXPORT  RTC_IRQHandler             [WEAK]
  180.                 EXPORT  FLASH_IRQHandler           [WEAK]
  181.                 EXPORT  RCC_IRQHandler             [WEAK]
  182.                 EXPORT  EXTI0_IRQHandler           [WEAK]
  183.                 EXPORT  EXTI1_IRQHandler           [WEAK]
  184.                 EXPORT  EXTI2_IRQHandler           [WEAK]
  185.                 EXPORT  EXTI3_IRQHandler           [WEAK]
  186.                 EXPORT  EXTI4_IRQHandler           [WEAK]
  187.                 EXPORT  DMA1_Channel1_IRQHandler   [WEAK]
  188.                 EXPORT  DMA1_Channel2_IRQHandler   [WEAK]
  189.                 EXPORT  DMA1_Channel3_IRQHandler   [WEAK]
  190.                 EXPORT  DMA1_Channel4_IRQHandler   [WEAK]
  191.                 EXPORT  DMA1_Channel5_IRQHandler   [WEAK]
  192.                 EXPORT  DMA1_Channel6_IRQHandler   [WEAK]
  193.                 EXPORT  DMA1_Channel7_IRQHandler   [WEAK]
  194.                 EXPORT  ADC1_2_IRQHandler          [WEAK]
  195.                 EXPORT  USB_HP_CAN1_TX_IRQHandler  [WEAK]
  196.                 EXPORT  USB_LP_CAN1_RX0_IRQHandler [WEAK]
  197.                 EXPORT  CAN1_RX1_IRQHandler        [WEAK]
  198.                 EXPORT  CAN1_SCE_IRQHandler        [WEAK]
  199.                 EXPORT  EXTI9_5_IRQHandler         [WEAK]
  200.                 EXPORT  TIM1_BRK_IRQHandler        [WEAK]
  201.                 EXPORT  TIM1_UP_IRQHandler         [WEAK]
  202.                 EXPORT  TIM1_TRG_COM_IRQHandler    [WEAK]
  203.                 EXPORT  TIM1_CC_IRQHandler         [WEAK]
  204.                 EXPORT  TIM2_IRQHandler            [WEAK]
  205.                 EXPORT  TIM3_IRQHandler            [WEAK]
  206.                 EXPORT  TIM4_IRQHandler            [WEAK]
  207.                 EXPORT  I2C1_EV_IRQHandler         [WEAK]
  208.                 EXPORT  I2C1_ER_IRQHandler         [WEAK]
  209.                 EXPORT  I2C2_EV_IRQHandler         [WEAK]
  210.                 EXPORT  I2C2_ER_IRQHandler         [WEAK]
  211.                 EXPORT  SPI1_IRQHandler            [WEAK]
  212.                 EXPORT  SPI2_IRQHandler            [WEAK]
  213.                 EXPORT  USART1_IRQHandler          [WEAK]
  214.                 EXPORT  USART2_IRQHandler          [WEAK]
  215.                 EXPORT  USART3_IRQHandler          [WEAK]
  216.                 EXPORT  EXTI15_10_IRQHandler       [WEAK]
  217.                 EXPORT  RTCAlarm_IRQHandler        [WEAK]
  218.                 EXPORT  OTG_FS_WKUP_IRQHandler     [WEAK]
  219.                 EXPORT  TIM8_BRK_IRQHandler        [WEAK]
  220.                 EXPORT  TIM8_UP_IRQHandler         [WEAK]
  221.                 EXPORT  TIM8_TRG_COM_IRQHandler    [WEAK]
  222.                 EXPORT  TIM8_CC_IRQHandler         [WEAK]
  223.                 EXPORT  ADC3_IRQHandler            [WEAK]
  224.                 EXPORT  FSMC_IRQHandler            [WEAK]
  225.                 EXPORT  SDIO_IRQHandler            [WEAK]
  226.                 EXPORT  TIM5_IRQHandler            [WEAK]
  227.                 EXPORT  SPI3_IRQHandler            [WEAK]
  228.                 EXPORT  UART4_IRQHandler           [WEAK]
  229.                 EXPORT  UART5_IRQHandler           [WEAK]
  230.                 EXPORT  TIM6_IRQHandler            [WEAK]
  231.                 EXPORT  TIM7_IRQHandler            [WEAK]
  232.                 EXPORT  DMA2_Channel1_IRQHandler   [WEAK]
  233.                 EXPORT  DMA2_Channel2_IRQHandler   [WEAK]
  234.                 EXPORT  DMA2_Channel3_IRQHandler   [WEAK]
  235.                 EXPORT  DMA2_Channel4_5_IRQHandler [WEAK]
  236.                 ; for STM32F10x Connectivity line devices
  237.                 EXPORT  DMA2_Channel5_IRQHandler   [WEAK]
  238.                 EXPORT  ETH_IRQHandler             [WEAK]
  239.                 EXPORT  ETH_WKUP_IRQHandler        [WEAK]
  240.                 EXPORT  CAN2_TX_IRQHandler         [WEAK]
  241.                 EXPORT  CAN2_RX0_IRQHandler        [WEAK]
  242.                 EXPORT  CAN2_RX1_IRQHandler        [WEAK]
  243.                 EXPORT  CAN2_SCE_IRQHandler        [WEAK]
  244.                 EXPORT  OTG_FS_IRQHandler          [WEAK]

  245. WWDG_IRQHandler
  246. PVD_IRQHandler
  247. TAMPER_IRQHandler
  248. RTC_IRQHandler
  249. FLASH_IRQHandler
  250. RCC_IRQHandler
  251. EXTI0_IRQHandler
  252. EXTI1_IRQHandler
  253. EXTI2_IRQHandler
  254. EXTI3_IRQHandler
  255. EXTI4_IRQHandler
  256. DMA1_Channel1_IRQHandler
  257. DMA1_Channel2_IRQHandler
  258. DMA1_Channel3_IRQHandler
  259. DMA1_Channel4_IRQHandler
  260. DMA1_Channel5_IRQHandler
  261. DMA1_Channel6_IRQHandler
  262. DMA1_Channel7_IRQHandler
  263. ADC1_2_IRQHandler
  264. USB_HP_CAN1_TX_IRQHandler
  265. USB_LP_CAN1_RX0_IRQHandler
  266. CAN1_RX1_IRQHandler
  267. CAN1_SCE_IRQHandler
  268. EXTI9_5_IRQHandler
  269. TIM1_BRK_IRQHandler
  270. TIM1_UP_IRQHandler
  271. TIM1_TRG_COM_IRQHandler
  272. TIM1_CC_IRQHandler
  273. TIM2_IRQHandler
  274. TIM3_IRQHandler
  275. TIM4_IRQHandler
  276. I2C1_EV_IRQHandler
  277. I2C1_ER_IRQHandler
  278. I2C2_EV_IRQHandler
  279. I2C2_ER_IRQHandler
  280. SPI1_IRQHandler
  281. SPI2_IRQHandler
  282. USART1_IRQHandler
  283. USART2_IRQHandler
  284. USART3_IRQHandler
  285. EXTI15_10_IRQHandler
  286. RTCAlarm_IRQHandler
  287. OTG_FS_WKUP_IRQHandler
  288. TIM8_BRK_IRQHandler
  289. TIM8_UP_IRQHandler
  290. TIM8_TRG_COM_IRQHandler
  291. TIM8_CC_IRQHandler
  292. ADC3_IRQHandler
  293. FSMC_IRQHandler
  294. SDIO_IRQHandler
  295. TIM5_IRQHandler
  296. SPI3_IRQHandler
  297. UART4_IRQHandler
  298. UART5_IRQHandler
  299. TIM6_IRQHandler
  300. TIM7_IRQHandler
  301. DMA2_Channel1_IRQHandler
  302. DMA2_Channel2_IRQHandler
  303. DMA2_Channel3_IRQHandler
  304. DMA2_Channel4_5_IRQHandler
  305. ; for STM32F10x Connectivity line devices
  306. DMA2_Channel5_IRQHandler
  307. ETH_IRQHandler
  308. ETH_WKUP_IRQHandler
  309. CAN2_TX_IRQHandler
  310. CAN2_RX0_IRQHandler
  311. CAN2_RX1_IRQHandler
  312. CAN2_SCE_IRQHandler
  313. OTG_FS_IRQHandler
  314.                 B       .

  315.                 ENDP

  316.                 ALIGN

  317. ;*******************************************************************************
  318. ; User Stack and Heap initialization
  319. ;*******************************************************************************
  320.                  IF      :DEF:__MICROLIB

  321.                  EXPORT  __initial_sp
  322.                  EXPORT  __heap_base
  323.                  EXPORT  __heap_limit

  324.                  ELSE

  325.                  IMPORT  __use_two_region_memory
  326.                  EXPORT  __user_initial_stackheap

  327. __user_initial_stackheap

  328.                  LDR     R0, =  Heap_Mem
  329.                  LDR     R1, =(Stack_Mem + Stack_Size)
  330.                  LDR     R2, = (Heap_Mem +  Heap_Size)
  331.                  LDR     R3, = Stack_Mem
  332.                  BX      LR

  333.                  ALIGN

  334.                  ENDIF

  335.                  END

  336. ;******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE*****


  337. [code];******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
  338. ;* File Name          : startup_stm32f10x_hd.s
  339. ;* Author             : MCD Application Team
  340. ;* Version            : V3.5.0
  341. ;* Date               : 11-March-2011
  342. ;* Description        : STM32F10x High Density Devices vector table for MDK-ARM
  343. ;*                      toolchain.
  344. ;*                      This module performs:
  345. ;*                      - Set the initial SP
  346. ;*                      - Set the initial PC == Reset_Handler
  347. ;*                      - Set the vector table entries with the exceptions ISR address
  348. ;*                      - Configure the clock system and also configure the external
  349. ;*                        SRAM mounted on STM3210E-EVAL board to be used as data
  350. ;*                        memory (optional, to be enabled by user)
  351. ;*                      - Branches to __main in the C library (which eventually
  352. ;*                        calls main()).
  353. ;*                      After Reset the CortexM3 processor is in Thread mode,
  354. ;*                      priority is Privileged, and the Stack is set to Main.
  355. ;* <<< Use Configuration Wizard in Context Menu >>>   
  356. ;*******************************************************************************
  357. ; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  358. ; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
  359. ; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
  360. ; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
  361. ; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
  362. ; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  363. ;*******************************************************************************

  364. ; Amount of memory (in bytes) allocated for Stack
  365. ; Tailor this value to your application needs
  366. ; <h> Stack Configuration
  367. ;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
  368. ; </h>

  369. Stack_Size      EQU     0x00000400

  370.                 AREA    STACK, NOINIT, READWRITE, ALIGN=3
  371. Stack_Mem       SPACE   Stack_Size
  372. __initial_sp
  373.                                                   
  374. ; <h> Heap Configuration
  375. ;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
  376. ; </h>

  377. Heap_Size       EQU     0x00000200

  378.                 AREA    HEAP, NOINIT, READWRITE, ALIGN=3
  379. __heap_base
  380. Heap_Mem        SPACE   Heap_Size
  381. __heap_limit

  382.                 PRESERVE8
  383.                 THUMB


  384. ; Vector Table Mapped to Address 0 at Reset
  385.                 AREA    RESET, DATA, READONLY
  386.                 EXPORT  __Vectors
  387.                 EXPORT  __Vectors_End
  388.                 EXPORT  __Vectors_Size

  389. __Vectors       DCD     __initial_sp               ; Top of Stack
  390.                 DCD     Reset_Handler              ; Reset Handler
  391.                 DCD     NMI_Handler                ; NMI Handler
  392.                 DCD     HardFault_Handler          ; Hard Fault Handler
  393.                 DCD     MemManage_Handler          ; MPU Fault Handler
  394.                 DCD     BusFault_Handler           ; Bus Fault Handler
  395.                 DCD     UsageFault_Handler         ; Usage Fault Handler
  396.                 DCD     0                          ; Reserved
  397.                 DCD     0                          ; Reserved
  398.                 DCD     0                          ; Reserved
  399.                 DCD     0                          ; Reserved
  400.                 DCD     SVC_Handler                ; SVCall Handler
  401.                 DCD     DebugMon_Handler           ; Debug Monitor Handler
  402.                 DCD     0                          ; Reserved
  403.                 DCD     PendSV_Handler             ; PendSV Handler
  404.                 DCD     SysTick_Handler            ; SysTick Handler

  405.                 ; External Interrupts
  406.                 DCD     WWDG_IRQHandler            ; Window Watchdog
  407.                 DCD     PVD_IRQHandler             ; PVD through EXTI Line detect
  408.                 DCD     TAMPER_IRQHandler          ; Tamper
  409.                 DCD     RTC_IRQHandler             ; RTC
  410.                 DCD     FLASH_IRQHandler           ; Flash
  411.                 DCD     RCC_IRQHandler             ; RCC
  412.                 DCD     EXTI0_IRQHandler           ; EXTI Line 0
  413.                 DCD     EXTI1_IRQHandler           ; EXTI Line 1
  414.                 DCD     EXTI2_IRQHandler           ; EXTI Line 2
  415.                 DCD     EXTI3_IRQHandler           ; EXTI Line 3
  416.                 DCD     EXTI4_IRQHandler           ; EXTI Line 4
  417.                 DCD     DMA1_Channel1_IRQHandler   ; DMA1 Channel 1
  418.                 DCD     DMA1_Channel2_IRQHandler   ; DMA1 Channel 2
  419.                 DCD     DMA1_Channel3_IRQHandler   ; DMA1 Channel 3
  420.                 DCD     DMA1_Channel4_IRQHandler   ; DMA1 Channel 4
  421.                 DCD     DMA1_Channel5_IRQHandler   ; DMA1 Channel 5
  422.                 DCD     DMA1_Channel6_IRQHandler   ; DMA1 Channel 6
  423.                 DCD     DMA1_Channel7_IRQHandler   ; DMA1 Channel 7
  424.                 DCD     ADC1_2_IRQHandler          ; ADC1 & ADC2
  425.                 DCD     USB_HP_CAN1_TX_IRQHandler  ; USB High Priority or CAN1 TX
  426.                 DCD     USB_LP_CAN1_RX0_IRQHandler ; USB Low  Priority or CAN1 RX0
  427.                 DCD     CAN1_RX1_IRQHandler        ; CAN1 RX1
  428.                 DCD     CAN1_SCE_IRQHandler        ; CAN1 SCE
  429.                 DCD     EXTI9_5_IRQHandler         ; EXTI Line 9..5
  430.                 DCD     TIM1_BRK_IRQHandler        ; TIM1 Break
  431.                 DCD     TIM1_UP_IRQHandler         ; TIM1 Update
  432.                 DCD     TIM1_TRG_COM_IRQHandler    ; TIM1 Trigger and Commutation
  433.                 DCD     TIM1_CC_IRQHandler         ; TIM1 Capture Compare
  434.                 DCD     TIM2_IRQHandler            ; TIM2
  435.                 DCD     TIM3_IRQHandler            ; TIM3
  436.                 DCD     TIM4_IRQHandler            ; TIM4
  437.                 DCD     I2C1_EV_IRQHandler         ; I2C1 Event
  438.                 DCD     I2C1_ER_IRQHandler         ; I2C1 Error
  439.                 DCD     I2C2_EV_IRQHandler         ; I2C2 Event
  440.                 DCD     I2C2_ER_IRQHandler         ; I2C2 Error
  441.                 DCD     SPI1_IRQHandler            ; SPI1
  442.                 DCD     SPI2_IRQHandler            ; SPI2
  443.                 DCD     USART1_IRQHandler          ; USART1
  444.                 DCD     USART2_IRQHandler          ; USART2
  445.                 DCD     USART3_IRQHandler          ; USART3
  446.                 DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10
  447.                 DCD     RTCAlarm_IRQHandler        ; RTC Alarm through EXTI Line
  448.                 DCD     USBWakeUp_IRQHandler       ; USB Wakeup from suspend
  449.                 DCD     TIM8_BRK_IRQHandler        ; TIM8 Break
  450.                 DCD     TIM8_UP_IRQHandler         ; TIM8 Update
  451.                 DCD     TIM8_TRG_COM_IRQHandler    ; TIM8 Trigger and Commutation
  452.                 DCD     TIM8_CC_IRQHandler         ; TIM8 Capture Compare
  453.                 DCD     ADC3_IRQHandler            ; ADC3
  454.                 DCD     FSMC_IRQHandler            ; FSMC
  455.                 DCD     SDIO_IRQHandler            ; SDIO
  456.                 DCD     TIM5_IRQHandler            ; TIM5
  457.                 DCD     SPI3_IRQHandler            ; SPI3
  458.                 DCD     UART4_IRQHandler           ; UART4
  459.                 DCD     UART5_IRQHandler           ; UART5
  460.                 DCD     TIM6_IRQHandler            ; TIM6
  461.                 DCD     TIM7_IRQHandler            ; TIM7
  462.                 DCD     DMA2_Channel1_IRQHandler   ; DMA2 Channel1
  463.                 DCD     DMA2_Channel2_IRQHandler   ; DMA2 Channel2
  464.                 DCD     DMA2_Channel3_IRQHandler   ; DMA2 Channel3
  465.                 DCD     DMA2_Channel4_5_IRQHandler ; DMA2 Channel4 & Channel5
  466. __Vectors_End

  467. __Vectors_Size  EQU  __Vectors_End - __Vectors

  468.                 AREA    |.text|, CODE, READONLY
  469.                
  470. ; Reset handler
  471. Reset_Handler   PROC
  472.                 EXPORT  Reset_Handler             [WEAK]
  473.                 IMPORT  __main
  474.                 IMPORT  SystemInit
  475.                 LDR     R0, =SystemInit
  476.                 BLX     R0               
  477.                 LDR     R0, =__main
  478.                 BX      R0
  479.                 ENDP
  480.                
  481. ; Dummy Exception Handlers (infinite loops which can be modified)

  482. NMI_Handler     PROC
  483.                 EXPORT  NMI_Handler                [WEAK]
  484.                 B       .
  485.                 ENDP
  486. HardFault_Handler\
  487.                 PROC
  488.                 EXPORT  HardFault_Handler          [WEAK]
  489.                 B       .
  490.                 ENDP
  491. MemManage_Handler\
  492.                 PROC
  493.                 EXPORT  MemManage_Handler          [WEAK]
  494.                 B       .
  495.                 ENDP
  496. BusFault_Handler\
  497.                 PROC
  498.                 EXPORT  BusFault_Handler           [WEAK]
  499.                 B       .
  500.                 ENDP
  501. UsageFault_Handler\
  502.                 PROC
  503.                 EXPORT  UsageFault_Handler         [WEAK]
  504.                 B       .
  505.                 ENDP
  506. SVC_Handler     PROC
  507.                 EXPORT  SVC_Handler                [WEAK]
  508.                 B       .
  509.                 ENDP
  510. DebugMon_Handler\
  511.                 PROC
  512.                 EXPORT  DebugMon_Handler           [WEAK]
  513.                 B       .
  514.                 ENDP
  515. PendSV_Handler  PROC
  516.                 EXPORT  PendSV_Handler             [WEAK]
  517.                 B       .
  518.                 ENDP
  519. SysTick_Handler PROC
  520.                 EXPORT  SysTick_Handler            [WEAK]
  521.                 B       .
  522.                 ENDP

  523. Default_Handler PROC

  524.                 EXPORT  WWDG_IRQHandler            [WEAK]
  525.                 EXPORT  PVD_IRQHandler             [WEAK]
  526.                 EXPORT  TAMPER_IRQHandler          [WEAK]
  527.                 EXPORT  RTC_IRQHandler             [WEAK]
  528.                 EXPORT  FLASH_IRQHandler           [WEAK]
  529.                 EXPORT  RCC_IRQHandler             [WEAK]
  530.                 EXPORT  EXTI0_IRQHandler           [WEAK]
  531.                 EXPORT  EXTI1_IRQHandler           [WEAK]
  532.                 EXPORT  EXTI2_IRQHandler           [WEAK]
  533.                 EXPORT  EXTI3_IRQHandler           [WEAK]
  534.                 EXPORT  EXTI4_IRQHandler           [WEAK]
  535.                 EXPORT  DMA1_Channel1_IRQHandler   [WEAK]
  536.                 EXPORT  DMA1_Channel2_IRQHandler   [WEAK]
  537.                 EXPORT  DMA1_Channel3_IRQHandler   [WEAK]
  538.                 EXPORT  DMA1_Channel4_IRQHandler   [WEAK]
  539.                 EXPORT  DMA1_Channel5_IRQHandler   [WEAK]
  540.                 EXPORT  DMA1_Channel6_IRQHandler   [WEAK]
  541.                 EXPORT  DMA1_Channel7_IRQHandler   [WEAK]
  542.                 EXPORT  ADC1_2_IRQHandler          [WEAK]
  543.                 EXPORT  USB_HP_CAN1_TX_IRQHandler  [WEAK]
  544.                 EXPORT  USB_LP_CAN1_RX0_IRQHandler [WEAK]
  545.                 EXPORT  CAN1_RX1_IRQHandler        [WEAK]
  546.                 EXPORT  CAN1_SCE_IRQHandler        [WEAK]
  547.                 EXPORT  EXTI9_5_IRQHandler         [WEAK]
  548.                 EXPORT  TIM1_BRK_IRQHandler        [WEAK]
  549.                 EXPORT  TIM1_UP_IRQHandler         [WEAK]
  550.                 EXPORT  TIM1_TRG_COM_IRQHandler    [WEAK]
  551.                 EXPORT  TIM1_CC_IRQHandler         [WEAK]
  552.                 EXPORT  TIM2_IRQHandler            [WEAK]
  553.                 EXPORT  TIM3_IRQHandler            [WEAK]
  554.                 EXPORT  TIM4_IRQHandler            [WEAK]
  555.                 EXPORT  I2C1_EV_IRQHandler         [WEAK]
  556.                 EXPORT  I2C1_ER_IRQHandler         [WEAK]
  557.                 EXPORT  I2C2_EV_IRQHandler         [WEAK]
  558.                 EXPORT  I2C2_ER_IRQHandler         [WEAK]
  559.                 EXPORT  SPI1_IRQHandler            [WEAK]
  560.                 EXPORT  SPI2_IRQHandler            [WEAK]
  561.                 EXPORT  USART1_IRQHandler          [WEAK]
  562.                 EXPORT  USART2_IRQHandler          [WEAK]
  563.                 EXPORT  USART3_IRQHandler          [WEAK]
  564.                 EXPORT  EXTI15_10_IRQHandler       [WEAK]
  565.                 EXPORT  RTCAlarm_IRQHandler        [WEAK]
  566.                 EXPORT  USBWakeUp_IRQHandler       [WEAK]
  567.                 EXPORT  TIM8_BRK_IRQHandler        [WEAK]
  568.                 EXPORT  TIM8_UP_IRQHandler         [WEAK]
  569.                 EXPORT  TIM8_TRG_COM_IRQHandler    [WEAK]
  570.                 EXPORT  TIM8_CC_IRQHandler         [WEAK]
  571.                 EXPORT  ADC3_IRQHandler            [WEAK]
  572.                 EXPORT  FSMC_IRQHandler            [WEAK]
  573.                 EXPORT  SDIO_IRQHandler            [WEAK]
  574.                 EXPORT  TIM5_IRQHandler            [WEAK]
  575.                 EXPORT  SPI3_IRQHandler            [WEAK]
  576.                 EXPORT  UART4_IRQHandler           [WEAK]
  577.                 EXPORT  UART5_IRQHandler           [WEAK]
  578.                 EXPORT  TIM6_IRQHandler            [WEAK]
  579.                 EXPORT  TIM7_IRQHandler            [WEAK]
  580.                 EXPORT  DMA2_Channel1_IRQHandler   [WEAK]
  581.                 EXPORT  DMA2_Channel2_IRQHandler   [WEAK]
  582.                 EXPORT  DMA2_Channel3_IRQHandler   [WEAK]
  583.                 EXPORT  DMA2_Channel4_5_IRQHandler [WEAK]

  584. WWDG_IRQHandler
  585. PVD_IRQHandler
  586. TAMPER_IRQHandler
  587. RTC_IRQHandler
  588. FLASH_IRQHandler
  589. RCC_IRQHandler
  590. EXTI0_IRQHandler
  591. EXTI1_IRQHandler
  592. EXTI2_IRQHandler
  593. EXTI3_IRQHandler
  594. EXTI4_IRQHandler
  595. DMA1_Channel1_IRQHandler
  596. DMA1_Channel2_IRQHandler
  597. DMA1_Channel3_IRQHandler
  598. DMA1_Channel4_IRQHandler
  599. DMA1_Channel5_IRQHandler
  600. DMA1_Channel6_IRQHandler
  601. DMA1_Channel7_IRQHandler
  602. ADC1_2_IRQHandler
  603. USB_HP_CAN1_TX_IRQHandler
  604. USB_LP_CAN1_RX0_IRQHandler
  605. CAN1_RX1_IRQHandler
  606. CAN1_SCE_IRQHandler
  607. EXTI9_5_IRQHandler
  608. TIM1_BRK_IRQHandler
  609. TIM1_UP_IRQHandler
  610. TIM1_TRG_COM_IRQHandler
  611. TIM1_CC_IRQHandler
  612. TIM2_IRQHandler
  613. TIM3_IRQHandler
  614. TIM4_IRQHandler
  615. I2C1_EV_IRQHandler
  616. I2C1_ER_IRQHandler
  617. I2C2_EV_IRQHandler
  618. I2C2_ER_IRQHandler
  619. SPI1_IRQHandler
  620. SPI2_IRQHandler
  621. USART1_IRQHandler
  622. USART2_IRQHandler
  623. USART3_IRQHandler
  624. EXTI15_10_IRQHandler
  625. RTCAlarm_IRQHandler
  626. USBWakeUp_IRQHandler
  627. TIM8_BRK_IRQHandler
  628. TIM8_UP_IRQHandler
  629. TIM8_TRG_COM_IRQHandler
  630. TIM8_CC_IRQHandler
  631. ADC3_IRQHandler
  632. FSMC_IRQHandler
  633. SDIO_IRQHandler
  634. TIM5_IRQHandler
  635. SPI3_IRQHandler
  636. UART4_IRQHandler
  637. UART5_IRQHandler
  638. TIM6_IRQHandler
  639. TIM7_IRQHandler
  640. DMA2_Channel1_IRQHandler
  641. DMA2_Channel2_IRQHandler
  642. DMA2_Channel3_IRQHandler
  643. DMA2_Channel4_5_IRQHandler
  644.                 B       .

  645.                 ENDP

  646.                 ALIGN

  647. ;*******************************************************************************
  648. ; User Stack and Heap initialization
  649. ;*******************************************************************************
  650.                  IF      :DEF:__MICROLIB
  651.                
  652.                  EXPORT  __initial_sp
  653.                  EXPORT  __heap_base
  654.                  EXPORT  __heap_limit
  655.                
  656.                  ELSE
  657.                
  658.                  IMPORT  __use_two_region_memory
  659.                  EXPORT  __user_initial_stackheap
  660.                  
  661. __user_initial_stackheap

  662.                  LDR     R0, =  Heap_Mem
  663.                  LDR     R1, =(Stack_Mem + Stack_Size)
  664.                  LDR     R2, = (Heap_Mem +  Heap_Size)
  665.                  LDR     R3, = Stack_Mem
  666.                  BX      LR

  667.                  ALIGN

  668.                  ENDIF

  669.                  END

  670. ;******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE*****
复制代码
[/code]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-4-7 11:23:06 | 显示全部楼层
本帖最后由 小笨蛋 于 2013-4-7 11:26 编辑

问题已解决了!
原来库中的复位初始化是这样的:
  1. Reset_Handler   PROC
  2.                 EXPORT  Reset_Handler             [WEAK]
  3.                 IMPORT  __main

  4.                 LDR     R1, = __initial_sp        ; restore original stack pointer
  5.                 MSR     MSP, R1

  6.                 LDR     R0, =__main
  7.                 BX      R0
  8.                 ENDP
复制代码
然而RTT中是这样的
  1. Reset_Handler   PROC
  2.                 EXPORT  Reset_Handler             [WEAK]
  3.                 IMPORT  __main
  4.                 IMPORT  SystemInit
  5.                 LDR     R0, =SystemInit
  6.                 BLX     R0               
  7.                 LDR     R0, =__main
  8.                 BX      R0
  9.                 ENDP
复制代码
只要加上这个就可以了。
  1.                 IMPORT  SystemInit
  2.                 LDR     R0, =SystemInit
  3.                 BLX     R0
复制代码
但是我不明白的是RTT已经在Main()函数中调用了SystemInit();为何还要在启动文件中再使用一次????
  1. int main(void)
  2. {
  3.         rt_uint32_t UNUSED level;

  4.         JTAG_Set(1);                        //关闭JTAG功能,使用SWD仿真

  5.        
  6.        

  7.         /* disable interrupt first */
  8.         level = rt_hw_interrupt_disable();

  9.         /* init system setting */
  10.         SystemInit();
  11.         /* startup RT-Thread RTOS */

  12.         rtthread_startup();

  13.         return 0;
  14. }
复制代码
实践发现,两个还真的一个都不能少,搞不懂~

出0入0汤圆

发表于 2013-4-7 21:20:25 | 显示全部楼层
嗯,这个调用两次的问题,俺也陪楼主等答案

出0入0汤圆

 楼主| 发表于 2013-4-7 22:02:53 | 显示全部楼层
eehong 发表于 2013-4-7 21:20
嗯,这个调用两次的问题,俺也陪楼主等答案

你也遇到这个情况了吗?

出0入0汤圆

发表于 2013-4-8 21:22:16 | 显示全部楼层
我用的例程中也是调用了两次,以前只是觉着有点奇怪,没太在意。这么一说,我还真有点疑惑了

出0入0汤圆

发表于 2013-4-29 06:08:18 | 显示全部楼层
本帖最后由 njchenmin 于 2013-4-29 06:13 编辑

坐等回答,要是这样的话系统时钟都只有8M了,运行不是慢的要命了?

出0入0汤圆

发表于 2013-6-13 19:59:11 | 显示全部楼层
@楼主 你不是都说了RTT中的启动代码已经有了systeminit了吗?为什么还要添加?没看动你说的!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 09:35

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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