New
This commit is contained in:
207
Project/MDK-ARM/.vscode/c_cpp_properties.json
vendored
Normal file
207
Project/MDK-ARM/.vscode/c_cpp_properties.json
vendored
Normal file
@@ -0,0 +1,207 @@
|
||||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Flash",
|
||||
"includePath": [
|
||||
"d:\\Project\\MFT\\Motor\\Libraries\\CMSIS\\Device\\ST\\STM32F10x\\Include",
|
||||
"d:\\Project\\MFT\\Motor\\Libraries\\STM32F10x_StdPeriph_Driver\\inc",
|
||||
"d:\\Project\\MFT\\Motor\\Libraries\\STM32_USB-FS-Device_Driver\\inc",
|
||||
"d:\\Project\\MFT\\Motor\\Libraries\\CMSIS\\Include",
|
||||
"d:\\Project\\MFT\\Motor\\User\\bsp",
|
||||
"d:\\Project\\MFT\\Motor\\User\\bsp\\inc",
|
||||
"d:\\Project\\MFT\\Motor\\User\\app\\inc",
|
||||
"d:\\Project\\MFT\\Motor\\User",
|
||||
"C:\\Keil_v5\\ARM\\ARMCC\\include",
|
||||
"C:\\Keil_v5\\ARM\\ARMCC\\include\\rw",
|
||||
"d:\\Project\\MFT\\Motor\\User\\app\\src",
|
||||
"d:\\Project\\MFT\\Motor\\User\\bsp\\src",
|
||||
"d:\\Project\\MFT\\Motor\\Libraries\\CMSIS\\Device\\ST\\STM32F10x\\Source\\Templates\\arm",
|
||||
"d:\\Project\\MFT\\Motor\\Libraries\\STM32F10x_StdPeriph_Driver\\src",
|
||||
"d:\\Project\\MFT\\Motor\\Doc"
|
||||
],
|
||||
"defines": [
|
||||
"USE_STDPERIPH_DRIVER",
|
||||
"STM32F10X_HD",
|
||||
"__CC_ARM",
|
||||
"__arm__",
|
||||
"__align(x)=",
|
||||
"__ALIGNOF__(x)=",
|
||||
"__alignof__(x)=",
|
||||
"__asm(x)=",
|
||||
"__forceinline=",
|
||||
"__restrict=",
|
||||
"__global_reg(n)=",
|
||||
"__inline=",
|
||||
"__int64=long long",
|
||||
"__INTADDR__(expr)=0",
|
||||
"__irq=",
|
||||
"__packed=",
|
||||
"__pure=",
|
||||
"__smc(n)=",
|
||||
"__svc(n)=",
|
||||
"__svc_indirect(n)=",
|
||||
"__svc_indirect_r7(n)=",
|
||||
"__value_in_regs=",
|
||||
"__weak=",
|
||||
"__writeonly=",
|
||||
"__declspec(x)=",
|
||||
"__attribute__(x)=",
|
||||
"__nonnull__(x)=",
|
||||
"__register=",
|
||||
"__breakpoint(x)=",
|
||||
"__cdp(x,y,z)=",
|
||||
"__clrex()=",
|
||||
"__clz(x)=0U",
|
||||
"__current_pc()=0U",
|
||||
"__current_sp()=0U",
|
||||
"__disable_fiq()=",
|
||||
"__disable_irq()=",
|
||||
"__dmb(x)=",
|
||||
"__dsb(x)=",
|
||||
"__enable_fiq()=",
|
||||
"__enable_irq()=",
|
||||
"__fabs(x)=0.0",
|
||||
"__fabsf(x)=0.0f",
|
||||
"__force_loads()=",
|
||||
"__force_stores()=",
|
||||
"__isb(x)=",
|
||||
"__ldrex(x)=0U",
|
||||
"__ldrexd(x)=0U",
|
||||
"__ldrt(x)=0U",
|
||||
"__memory_changed()=",
|
||||
"__nop()=",
|
||||
"__pld(...)=",
|
||||
"__pli(...)=",
|
||||
"__qadd(x,y)=0",
|
||||
"__qdbl(x)=0",
|
||||
"__qsub(x,y)=0",
|
||||
"__rbit(x)=0U",
|
||||
"__rev(x)=0U",
|
||||
"__return_address()=0U",
|
||||
"__ror(x,y)=0U",
|
||||
"__schedule_barrier()=",
|
||||
"__semihost(x,y)=0",
|
||||
"__sev()=",
|
||||
"__sqrt(x)=0.0",
|
||||
"__sqrtf(x)=0.0f",
|
||||
"__ssat(x,y)=0",
|
||||
"__strex(x,y)=0U",
|
||||
"__strexd(x,y)=0",
|
||||
"__strt(x,y)=",
|
||||
"__swp(x,y)=0U",
|
||||
"__usat(x,y)=0U",
|
||||
"__wfe()=",
|
||||
"__wfi()=",
|
||||
"__yield()=",
|
||||
"__vfp_status(x,y)=0"
|
||||
],
|
||||
"intelliSenseMode": "${default}"
|
||||
},
|
||||
{
|
||||
"name": "CpuRAM",
|
||||
"includePath": [
|
||||
"d:\\Project\\MFT\\Motor\\Libraries\\CMSIS\\Device\\ST\\STM32F10x\\Include",
|
||||
"d:\\Project\\MFT\\Motor\\Libraries\\STM32F10x_StdPeriph_Driver\\inc",
|
||||
"d:\\Project\\MFT\\Motor\\Libraries\\STM32_USB-FS-Device_Driver\\inc",
|
||||
"d:\\Project\\MFT\\Motor\\Libraries\\CMSIS\\Include",
|
||||
"d:\\Project\\MFT\\Motor\\User\\bsp",
|
||||
"d:\\Project\\MFT\\Motor\\User\\bsp\\inc",
|
||||
"d:\\Project\\MFT\\Motor\\User\\app\\inc",
|
||||
"d:\\Project\\MFT\\Motor\\User\\fonts",
|
||||
"d:\\Project\\MFT\\Motor\\User\\images",
|
||||
"d:\\Project\\MFT\\Motor\\User\\uIP\\uip",
|
||||
"d:\\Project\\MFT\\Motor\\User\\uIP\\http",
|
||||
"d:\\Project\\MFT\\Motor\\User\\uIP\\dm9000",
|
||||
"d:\\Project\\MFT\\Motor\\User\\FatFS\\src",
|
||||
"d:\\Project\\MFT\\Motor\\User\\usb_mass",
|
||||
"d:\\Project\\MFT\\Motor\\User\\CH376\\inc",
|
||||
"C:\\Keil_v5\\ARM\\ARMCC\\include",
|
||||
"C:\\Keil_v5\\ARM\\ARMCC\\include\\rw",
|
||||
"d:\\Project\\MFT\\Motor\\User\\app\\src",
|
||||
"d:\\Project\\MFT\\Motor\\User\\bsp\\src",
|
||||
"d:\\Project\\MFT\\Motor\\Libraries\\CMSIS\\Device\\ST\\STM32F10x\\Source\\Templates\\arm",
|
||||
"d:\\Project\\MFT\\Motor\\Libraries\\STM32F10x_StdPeriph_Driver\\src",
|
||||
"d:\\Project\\MFT\\Motor\\Doc"
|
||||
],
|
||||
"defines": [
|
||||
"USE_STDPERIPH_DRIVER",
|
||||
"STM32F10X_HD",
|
||||
"VECT_TAB_SRAM",
|
||||
"__CC_ARM",
|
||||
"__arm__",
|
||||
"__align(x)=",
|
||||
"__ALIGNOF__(x)=",
|
||||
"__alignof__(x)=",
|
||||
"__asm(x)=",
|
||||
"__forceinline=",
|
||||
"__restrict=",
|
||||
"__global_reg(n)=",
|
||||
"__inline=",
|
||||
"__int64=long long",
|
||||
"__INTADDR__(expr)=0",
|
||||
"__irq=",
|
||||
"__packed=",
|
||||
"__pure=",
|
||||
"__smc(n)=",
|
||||
"__svc(n)=",
|
||||
"__svc_indirect(n)=",
|
||||
"__svc_indirect_r7(n)=",
|
||||
"__value_in_regs=",
|
||||
"__weak=",
|
||||
"__writeonly=",
|
||||
"__declspec(x)=",
|
||||
"__attribute__(x)=",
|
||||
"__nonnull__(x)=",
|
||||
"__register=",
|
||||
"__breakpoint(x)=",
|
||||
"__cdp(x,y,z)=",
|
||||
"__clrex()=",
|
||||
"__clz(x)=0U",
|
||||
"__current_pc()=0U",
|
||||
"__current_sp()=0U",
|
||||
"__disable_fiq()=",
|
||||
"__disable_irq()=",
|
||||
"__dmb(x)=",
|
||||
"__dsb(x)=",
|
||||
"__enable_fiq()=",
|
||||
"__enable_irq()=",
|
||||
"__fabs(x)=0.0",
|
||||
"__fabsf(x)=0.0f",
|
||||
"__force_loads()=",
|
||||
"__force_stores()=",
|
||||
"__isb(x)=",
|
||||
"__ldrex(x)=0U",
|
||||
"__ldrexd(x)=0U",
|
||||
"__ldrt(x)=0U",
|
||||
"__memory_changed()=",
|
||||
"__nop()=",
|
||||
"__pld(...)=",
|
||||
"__pli(...)=",
|
||||
"__qadd(x,y)=0",
|
||||
"__qdbl(x)=0",
|
||||
"__qsub(x,y)=0",
|
||||
"__rbit(x)=0U",
|
||||
"__rev(x)=0U",
|
||||
"__return_address()=0U",
|
||||
"__ror(x,y)=0U",
|
||||
"__schedule_barrier()=",
|
||||
"__semihost(x,y)=0",
|
||||
"__sev()=",
|
||||
"__sqrt(x)=0.0",
|
||||
"__sqrtf(x)=0.0f",
|
||||
"__ssat(x,y)=0",
|
||||
"__strex(x,y)=0U",
|
||||
"__strexd(x,y)=0",
|
||||
"__strt(x,y)=",
|
||||
"__swp(x,y)=0U",
|
||||
"__usat(x,y)=0U",
|
||||
"__wfe()=",
|
||||
"__wfi()=",
|
||||
"__yield()=",
|
||||
"__vfp_status(x,y)=0"
|
||||
],
|
||||
"intelliSenseMode": "${default}"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
||||
18
Project/MDK-ARM/.vscode/keil-assistant.log
vendored
Normal file
18
Project/MDK-ARM/.vscode/keil-assistant.log
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
[info] Log at : 2025/7/17|16:20:31|GMT+0800
|
||||
|
||||
[info] Log at : 2025/7/17|16:20:38|GMT+0800
|
||||
|
||||
[info] Log at : 2025/7/17|16:31:17|GMT+0800
|
||||
|
||||
[info] Log at : 2025/7/17|16:32:14|GMT+0800
|
||||
|
||||
[info] Log at : 2025/7/17|16:32:17|GMT+0800
|
||||
|
||||
[info] Log at : 2026/4/15|18:36:04|GMT+0800
|
||||
|
||||
[info] Log at : 2026/4/15|18:36:07|GMT+0800
|
||||
|
||||
[info] Log at : 2026/4/16|09:06:52|GMT+0800
|
||||
|
||||
[info] Log at : 2026/4/16|16:26:04|GMT+0800
|
||||
|
||||
9
Project/MDK-ARM/.vscode/settings.json
vendored
Normal file
9
Project/MDK-ARM/.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"*.bin": "plaintext",
|
||||
"bsp.h": "c",
|
||||
"string.h": "c",
|
||||
"math.h": "c",
|
||||
"stdint.h": "c"
|
||||
}
|
||||
}
|
||||
3
Project/MDK-ARM/.vscode/uv4.log
vendored
Normal file
3
Project/MDK-ARM/.vscode/uv4.log
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
Load "d:\\Project\\MFT\\Motor\\Project\\MDK-ARM\\Flash\\Obj\\output.axf"
|
||||
Erase Done.Programming Done.Verify OK.Application running ...
|
||||
Flash Load finished at 16:27:27
|
||||
1
Project/MDK-ARM/.vscode/uv4.log.lock
vendored
Normal file
1
Project/MDK-ARM/.vscode/uv4.log.lock
vendored
Normal file
@@ -0,0 +1 @@
|
||||
2026/4/16 16:27:27
|
||||
31
Project/MDK-ARM/CpuRAM.ini
Normal file
31
Project/MDK-ARM/CpuRAM.ini
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
【本例程在安富莱STM32F103ZE-EK开发板上调试通过 】
|
||||
【QQ: 1295744630, 旺旺:armfly, Email: armfly@qq.com 】
|
||||
|
||||
文件名: CpuRAM.ini
|
||||
|
||||
这是CPU内部RAM调试脚本。开始Load程序时,由IDE控制仿真器执行这段脚本程序。
|
||||
|
||||
本脚本完成的功能是
|
||||
(1) 装载目标程序到CPU内部RAM
|
||||
(2) 设置堆栈指针SP
|
||||
(3) 修改PC指针
|
||||
|
||||
脚本的语法:
|
||||
参加MDK的HELP, 搜索关键字 “uv3 Library Routines” 可以看到uv3支持的脚本命令
|
||||
|
||||
Copyright (C), 2013-2014, 安富莱电子 www.armfly.com
|
||||
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
FUNC void Setup (void) {
|
||||
SP = _RDWORD(0x20000000); // 设置堆栈指针
|
||||
PC = _RDWORD(0x20000004); // 设置PC指针
|
||||
_WDWORD(0xE000ED08, 0x20000000); // 设置中断向量表地址
|
||||
}
|
||||
|
||||
LOAD CpuRAM\obj\output.axf INCREMENTAL // 先装载代码到CPU内部RAM (工程选项中就不要选Load Application ar Startup)
|
||||
Setup(); // 再调用Setup函数修改堆栈和PC指针(因为SP的值需要从目标代码中读取)
|
||||
g, main // 运行到main()函数
|
||||
9
Project/MDK-ARM/EventRecorderStub.scvd
Normal file
9
Project/MDK-ARM/EventRecorderStub.scvd
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
|
||||
|
||||
<component name="EventRecorderStub" version="1.0.0"/> <!--name and version of the component-->
|
||||
<events>
|
||||
</events>
|
||||
|
||||
</component_viewer>
|
||||
149
Project/MDK-ARM/Flash/List/bsp.txt
Normal file
149
Project/MDK-ARM/Flash/List/bsp.txt
Normal file
@@ -0,0 +1,149 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp.crf ..\..\User\bsp\bsp.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.bsp_Idle||, CODE, READONLY, ALIGN=1
|
||||
|
||||
bsp_Idle PROC
|
||||
;;;104 */
|
||||
;;;105 void bsp_Idle(void)
|
||||
000000 4770 BX lr
|
||||
;;;106 {
|
||||
;;;107 /* --- 喂狗 */
|
||||
;;;108
|
||||
;;;109 /* --- 让CPU进入休眠,由Systick定时中断唤醒或者其他中断唤醒 */
|
||||
;;;110
|
||||
;;;111 /* 例如 emWin 图形库,可以插入图形库需要的轮询函数 */
|
||||
;;;112 // GUI_Exec();
|
||||
;;;113
|
||||
;;;114 /* 例如 uIP 协议,可以插入uip轮询函数 */
|
||||
;;;115 }
|
||||
;;;116
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.bsp_Init||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_Init PROC
|
||||
;;;32 */
|
||||
;;;33 void bsp_Init(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;34 {
|
||||
;;;35 /*
|
||||
;;;36 由于ST固件库的启动文件已经执行了CPU系统时钟的初始化,所以不必再次重复配置系统时钟。
|
||||
;;;37 启动文件配置了CPU主时钟频率、内部Flash访问速度和可选的外部SRAM FSMC初始化。
|
||||
;;;38
|
||||
;;;39 系统时钟缺省配置为72MHz,如果需要更改,可以修改 system_stm32f103.c 文件
|
||||
;;;40 */
|
||||
;;;41
|
||||
;;;42 /* 优先级分组设置为4 */
|
||||
;;;43 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
|
||||
000002 f44f7040 MOV r0,#0x300
|
||||
000006 f7fffffe BL NVIC_PriorityGroupConfig
|
||||
;;;44
|
||||
;;;45 bsp_InitKey(); /* 初始化按键 */
|
||||
00000a f7fffffe BL bsp_InitKey
|
||||
;;;46
|
||||
;;;47 bsp_InitTimer(); /* 初始化系统滴答定时器 (此函数会开中断) */
|
||||
00000e f7fffffe BL bsp_InitTimer
|
||||
;;;48
|
||||
;;;49 /* 初始化串口驱动 */
|
||||
;;;50 USART_Config();
|
||||
000012 f7fffffe BL USART_Config
|
||||
;;;51 /* 配置使用DMA模式 */
|
||||
;;;52 USARTx_DMA_Config();
|
||||
000016 f7fffffe BL USARTx_DMA_Config
|
||||
;;;53 USART_DMACmd(DEBUG_USARTx, USART_DMAReq_Rx, ENABLE);
|
||||
00001a 2201 MOVS r2,#1
|
||||
00001c 2140 MOVS r1,#0x40
|
||||
00001e 4807 LDR r0,|L2.60|
|
||||
000020 f7fffffe BL USART_DMACmd
|
||||
;;;54
|
||||
;;;55 BEEP_InitHard(); /* 配置蜂鸣器GPIO */
|
||||
000024 f7fffffe BL BEEP_InitHard
|
||||
;;;56
|
||||
;;;57 bsp_InitI2C(); /* 配置I2C总线 */
|
||||
000028 f7fffffe BL bsp_InitI2C
|
||||
;;;58 bsp_InitDigitalTube(); // 初始化数码管控制端口
|
||||
00002c f7fffffe BL bsp_InitDigitalTube
|
||||
;;;59
|
||||
;;;60 bsp_Init_Drv8880_Hard();
|
||||
000030 f7fffffe BL bsp_Init_Drv8880_Hard
|
||||
;;;61 bsp_InitStepMoto();
|
||||
000034 f7fffffe BL bsp_InitStepMoto
|
||||
;;;62 }
|
||||
000038 bd10 POP {r4,pc}
|
||||
;;;63
|
||||
ENDP
|
||||
|
||||
00003a 0000 DCW 0x0000
|
||||
|L2.60|
|
||||
DCD 0x40013800
|
||||
|
||||
AREA ||i.bsp_RunPer10ms||, CODE, READONLY, ALIGN=1
|
||||
|
||||
bsp_RunPer10ms PROC
|
||||
;;;72 */
|
||||
;;;73 void bsp_RunPer10ms(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;74 {
|
||||
;;;75 bsp_KeyScan(); /* 每10ms扫描按键一次 */
|
||||
000002 f7fffffe BL bsp_KeyScan
|
||||
;;;76
|
||||
;;;77 BEEP_Pro(); /* 蜂鸣器定时处理 */
|
||||
000006 f7fffffe BL BEEP_Pro
|
||||
;;;78
|
||||
;;;79 // bsp_FpgaPowerMainLoop(30); // 给FPAGA延迟供电,延迟时间位30*10ms
|
||||
;;;80 }
|
||||
00000a bd10 POP {r4,pc}
|
||||
;;;81
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.bsp_RunPer1ms||, CODE, READONLY, ALIGN=1
|
||||
|
||||
bsp_RunPer1ms PROC
|
||||
;;;90 */
|
||||
;;;91 void bsp_RunPer1ms(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;92 {
|
||||
;;;93 bsp_DigitalTubeMainLoop();
|
||||
000002 f7fffffe BL bsp_DigitalTubeMainLoop
|
||||
;;;94 }
|
||||
000006 bd10 POP {r4,pc}
|
||||
;;;95
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||.data||, DATA, ALIGN=2
|
||||
|
||||
RxCount
|
||||
DCD 0x00000000
|
||||
TxCount
|
||||
DCD 0x00000000
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\bsp.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___5_bsp_c_RxCount____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___5_bsp_c_RxCount____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___5_bsp_c_RxCount____REVSH|
|
||||
#line 128
|
||||
|__asm___5_bsp_c_RxCount____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
0
Project/MDK-ARM/Flash/List/bsp_adc.txt
Normal file
0
Project/MDK-ARM/Flash/List/bsp_adc.txt
Normal file
323
Project/MDK-ARM/Flash/List/bsp_beep.txt
Normal file
323
Project/MDK-ARM/Flash/List/bsp_beep.txt
Normal file
@@ -0,0 +1,323 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp_beep.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_beep.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp_beep.crf ..\..\User\bsp\src\bsp_beep.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.BEEP_InitHard||, CODE, READONLY, ALIGN=2
|
||||
|
||||
BEEP_InitHard PROC
|
||||
;;;51 */
|
||||
;;;52 void BEEP_InitHard(void)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;53 {
|
||||
;;;54 #ifdef BEEP_HAVE_POWER /* 有源蜂鸣器 */
|
||||
;;;55 GPIO_InitTypeDef GPIO_InitStructure;
|
||||
;;;56
|
||||
;;;57 /* 打开GPIO的时钟 */
|
||||
;;;58 RCC_APB2PeriphClockCmd(GPIO_RCC_BEEP, ENABLE);
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 2008 MOVS r0,#8
|
||||
000006 f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;59
|
||||
;;;60 BEEP_DISABLE();
|
||||
00000a f44f7080 MOV r0,#0x100
|
||||
00000e 4908 LDR r1,|L1.48|
|
||||
000010 6008 STR r0,[r1,#0]
|
||||
;;;61
|
||||
;;;62 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
000012 2003 MOVS r0,#3
|
||||
000014 f88d0002 STRB r0,[sp,#2]
|
||||
;;;63 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /* 推挽输出模式 */
|
||||
000018 2010 MOVS r0,#0x10
|
||||
00001a f88d0003 STRB r0,[sp,#3]
|
||||
;;;64 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_BEEP;
|
||||
00001e 0100 LSLS r0,r0,#4
|
||||
000020 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;65 GPIO_Init(GPIO_PORT_BEEP, &GPIO_InitStructure);
|
||||
000024 4669 MOV r1,sp
|
||||
000026 4802 LDR r0,|L1.48|
|
||||
000028 3814 SUBS r0,r0,#0x14
|
||||
00002a f7fffffe BL GPIO_Init
|
||||
;;;66 #else
|
||||
;;;67 ; /* 无源蜂鸣器 */
|
||||
;;;68
|
||||
;;;69 #endif
|
||||
;;;70 }
|
||||
00002e bd08 POP {r3,pc}
|
||||
;;;71
|
||||
ENDP
|
||||
|
||||
|L1.48|
|
||||
DCD 0x40010c14
|
||||
|
||||
AREA ||i.BEEP_KeyTone||, CODE, READONLY, ALIGN=1
|
||||
|
||||
BEEP_KeyTone PROC
|
||||
;;;124 */
|
||||
;;;125 void BEEP_KeyTone(void)
|
||||
000000 b500 PUSH {lr}
|
||||
;;;126 {
|
||||
;;;127 BEEP_Start(4300, 4, 1, 1);
|
||||
000002 2301 MOVS r3,#1
|
||||
000004 461a MOV r2,r3
|
||||
000006 2104 MOVS r1,#4
|
||||
000008 f24100cc MOV r0,#0x10cc
|
||||
00000c f7fffffe BL BEEP_Start
|
||||
;;;128 }
|
||||
000010 bd00 POP {pc}
|
||||
;;;129
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.BEEP_Pro||, CODE, READONLY, ALIGN=2
|
||||
|
||||
BEEP_Pro PROC
|
||||
;;;137 */
|
||||
;;;138 void BEEP_Pro(void)
|
||||
000000 4827 LDR r0,|L3.160|
|
||||
;;;139 {
|
||||
;;;140 if ((g_tBeep.ucEnalbe == 0) || (g_tBeep.usStopTime == 0))
|
||||
000002 7800 LDRB r0,[r0,#0] ; g_tBeep
|
||||
000004 b110 CBZ r0,|L3.12|
|
||||
000006 4826 LDR r0,|L3.160|
|
||||
000008 8880 LDRH r0,[r0,#4] ; g_tBeep
|
||||
00000a b900 CBNZ r0,|L3.14|
|
||||
|L3.12|
|
||||
;;;141 {
|
||||
;;;142 return;
|
||||
;;;143 }
|
||||
;;;144
|
||||
;;;145 if (g_tBeep.ucState == 0)
|
||||
;;;146 {
|
||||
;;;147 if (g_tBeep.usStopTime > 0) /* 间断发声 */
|
||||
;;;148 {
|
||||
;;;149 if (++g_tBeep.usCount >= g_tBeep.usBeepTime)
|
||||
;;;150 {
|
||||
;;;151 BEEP_DISABLE(); /* 停止发声 */
|
||||
;;;152 g_tBeep.usCount = 0;
|
||||
;;;153 g_tBeep.ucState = 1;
|
||||
;;;154 }
|
||||
;;;155 }
|
||||
;;;156 else
|
||||
;;;157 {
|
||||
;;;158 ; /* 不做任何处理,连续发声 */
|
||||
;;;159 }
|
||||
;;;160 }
|
||||
;;;161 else if (g_tBeep.ucState == 1)
|
||||
;;;162 {
|
||||
;;;163 if (++g_tBeep.usCount >= g_tBeep.usStopTime)
|
||||
;;;164 {
|
||||
;;;165 /* 连续发声时,直到调用stop停止为止 */
|
||||
;;;166 if (g_tBeep.usCycle > 0)
|
||||
;;;167 {
|
||||
;;;168 if (++g_tBeep.usCycleCount >= g_tBeep.usCycle)
|
||||
;;;169 {
|
||||
;;;170 /* 循环次数到,停止发声 */
|
||||
;;;171 g_tBeep.ucEnalbe = 0;
|
||||
;;;172 }
|
||||
;;;173
|
||||
;;;174 if (g_tBeep.ucEnalbe == 0)
|
||||
;;;175 {
|
||||
;;;176 g_tBeep.usStopTime = 0;
|
||||
;;;177 return;
|
||||
;;;178 }
|
||||
;;;179 }
|
||||
;;;180
|
||||
;;;181 g_tBeep.usCount = 0;
|
||||
;;;182 g_tBeep.ucState = 0;
|
||||
;;;183
|
||||
;;;184 BEEP_ENABLE(); /* 开始发声 */
|
||||
;;;185 }
|
||||
;;;186 }
|
||||
;;;187 }
|
||||
00000c 4770 BX lr
|
||||
|L3.14|
|
||||
00000e 4824 LDR r0,|L3.160|
|
||||
000010 7840 LDRB r0,[r0,#1] ;145 ; g_tBeep
|
||||
000012 b9b0 CBNZ r0,|L3.66|
|
||||
000014 4822 LDR r0,|L3.160|
|
||||
000016 8880 LDRH r0,[r0,#4] ;147 ; g_tBeep
|
||||
000018 2800 CMP r0,#0 ;147
|
||||
00001a dd3f BLE |L3.156|
|
||||
00001c 4820 LDR r0,|L3.160|
|
||||
00001e 8900 LDRH r0,[r0,#8] ;149 ; g_tBeep
|
||||
000020 1c40 ADDS r0,r0,#1 ;149
|
||||
000022 b280 UXTH r0,r0 ;149
|
||||
000024 491e LDR r1,|L3.160|
|
||||
000026 8108 STRH r0,[r1,#8] ;149
|
||||
000028 8849 LDRH r1,[r1,#2] ;149 ; g_tBeep
|
||||
00002a 4288 CMP r0,r1 ;149
|
||||
00002c db36 BLT |L3.156|
|
||||
00002e f44f7080 MOV r0,#0x100 ;151
|
||||
000032 491c LDR r1,|L3.164|
|
||||
000034 6008 STR r0,[r1,#0] ;151
|
||||
000036 2000 MOVS r0,#0 ;152
|
||||
000038 4919 LDR r1,|L3.160|
|
||||
00003a 8108 STRH r0,[r1,#8] ;152
|
||||
00003c 2001 MOVS r0,#1 ;153
|
||||
00003e 7048 STRB r0,[r1,#1] ;153
|
||||
000040 e02c B |L3.156|
|
||||
|L3.66|
|
||||
000042 4817 LDR r0,|L3.160|
|
||||
000044 7840 LDRB r0,[r0,#1] ;161 ; g_tBeep
|
||||
000046 2801 CMP r0,#1 ;161
|
||||
000048 d128 BNE |L3.156|
|
||||
00004a 4815 LDR r0,|L3.160|
|
||||
00004c 8900 LDRH r0,[r0,#8] ;163 ; g_tBeep
|
||||
00004e 1c40 ADDS r0,r0,#1 ;163
|
||||
000050 b280 UXTH r0,r0 ;163
|
||||
000052 4913 LDR r1,|L3.160|
|
||||
000054 8108 STRH r0,[r1,#8] ;163
|
||||
000056 8889 LDRH r1,[r1,#4] ;163 ; g_tBeep
|
||||
000058 4288 CMP r0,r1 ;163
|
||||
00005a db1f BLT |L3.156|
|
||||
00005c 4810 LDR r0,|L3.160|
|
||||
00005e 88c0 LDRH r0,[r0,#6] ;166 ; g_tBeep
|
||||
000060 2800 CMP r0,#0 ;166
|
||||
000062 dd12 BLE |L3.138|
|
||||
000064 480e LDR r0,|L3.160|
|
||||
000066 8940 LDRH r0,[r0,#0xa] ;168 ; g_tBeep
|
||||
000068 1c40 ADDS r0,r0,#1 ;168
|
||||
00006a b280 UXTH r0,r0 ;168
|
||||
00006c 490c LDR r1,|L3.160|
|
||||
00006e 8148 STRH r0,[r1,#0xa] ;168
|
||||
000070 88c9 LDRH r1,[r1,#6] ;168 ; g_tBeep
|
||||
000072 4288 CMP r0,r1 ;168
|
||||
000074 db02 BLT |L3.124|
|
||||
000076 2000 MOVS r0,#0 ;171
|
||||
000078 4909 LDR r1,|L3.160|
|
||||
00007a 7008 STRB r0,[r1,#0] ;171
|
||||
|L3.124|
|
||||
00007c 4808 LDR r0,|L3.160|
|
||||
00007e 7800 LDRB r0,[r0,#0] ;174 ; g_tBeep
|
||||
000080 b918 CBNZ r0,|L3.138|
|
||||
000082 2000 MOVS r0,#0 ;176
|
||||
000084 4906 LDR r1,|L3.160|
|
||||
000086 8088 STRH r0,[r1,#4] ;176
|
||||
000088 e7c0 B |L3.12|
|
||||
|L3.138|
|
||||
00008a 2000 MOVS r0,#0 ;181
|
||||
00008c 4904 LDR r1,|L3.160|
|
||||
00008e 8108 STRH r0,[r1,#8] ;181
|
||||
000090 7048 STRB r0,[r1,#1] ;182
|
||||
000092 f44f7080 MOV r0,#0x100 ;184
|
||||
000096 4903 LDR r1,|L3.164|
|
||||
000098 1f09 SUBS r1,r1,#4 ;184
|
||||
00009a 6008 STR r0,[r1,#0] ;184
|
||||
|L3.156|
|
||||
00009c bf00 NOP
|
||||
00009e e7b5 B |L3.12|
|
||||
;;;188
|
||||
ENDP
|
||||
|
||||
|L3.160|
|
||||
DCD g_tBeep
|
||||
|L3.164|
|
||||
DCD 0x40010c14
|
||||
|
||||
AREA ||i.BEEP_Start||, CODE, READONLY, ALIGN=2
|
||||
|
||||
BEEP_Start PROC
|
||||
;;;82 */
|
||||
;;;83 void BEEP_Start(uint32_t _uiFreq, uint16_t _usBeepTime, uint16_t _usStopTime, uint16_t _usCycle)
|
||||
000000 b530 PUSH {r4,r5,lr}
|
||||
;;;84 {
|
||||
;;;85 if (_usBeepTime == 0)
|
||||
000002 b901 CBNZ r1,|L4.6|
|
||||
|L4.4|
|
||||
;;;86 {
|
||||
;;;87 return;
|
||||
;;;88 }
|
||||
;;;89
|
||||
;;;90 g_tBeep.uiFreq = _uiFreq;
|
||||
;;;91 g_tBeep.usBeepTime = _usBeepTime;
|
||||
;;;92 g_tBeep.usStopTime = _usStopTime;
|
||||
;;;93 g_tBeep.usCycle = _usCycle;
|
||||
;;;94 g_tBeep.usCount = 0;
|
||||
;;;95 g_tBeep.usCycleCount = 0;
|
||||
;;;96 g_tBeep.ucState = 0;
|
||||
;;;97 g_tBeep.ucEnalbe = 1; /* 设置完全局参数后再使能发声标志 */
|
||||
;;;98
|
||||
;;;99 BEEP_ENABLE(); /* 开始发声 */
|
||||
;;;100 }
|
||||
000004 bd30 POP {r4,r5,pc}
|
||||
|L4.6|
|
||||
000006 4c08 LDR r4,|L4.40|
|
||||
000008 60e0 STR r0,[r4,#0xc] ;90 ; g_tBeep
|
||||
00000a 8061 STRH r1,[r4,#2] ;91
|
||||
00000c 80a2 STRH r2,[r4,#4] ;92
|
||||
00000e 80e3 STRH r3,[r4,#6] ;93
|
||||
000010 2400 MOVS r4,#0 ;94
|
||||
000012 4d05 LDR r5,|L4.40|
|
||||
000014 812c STRH r4,[r5,#8] ;94
|
||||
000016 816c STRH r4,[r5,#0xa] ;95
|
||||
000018 706c STRB r4,[r5,#1] ;96
|
||||
00001a 2401 MOVS r4,#1 ;97
|
||||
00001c 702c STRB r4,[r5,#0] ;97
|
||||
00001e 0224 LSLS r4,r4,#8 ;99
|
||||
000020 4d02 LDR r5,|L4.44|
|
||||
000022 602c STR r4,[r5,#0] ;99
|
||||
000024 bf00 NOP
|
||||
000026 e7ed B |L4.4|
|
||||
;;;101
|
||||
ENDP
|
||||
|
||||
|L4.40|
|
||||
DCD g_tBeep
|
||||
|L4.44|
|
||||
DCD 0x40010c10
|
||||
|
||||
AREA ||i.BEEP_Stop||, CODE, READONLY, ALIGN=2
|
||||
|
||||
BEEP_Stop PROC
|
||||
;;;109 */
|
||||
;;;110 void BEEP_Stop(void)
|
||||
000000 2000 MOVS r0,#0
|
||||
;;;111 {
|
||||
;;;112 g_tBeep.ucEnalbe = 0;
|
||||
000002 4903 LDR r1,|L5.16|
|
||||
000004 7008 STRB r0,[r1,#0]
|
||||
;;;113
|
||||
;;;114 BEEP_DISABLE(); /* 必须在清控制标志后再停止发声,避免停止后在中断中又开启 */
|
||||
000006 f44f7080 MOV r0,#0x100
|
||||
00000a 4902 LDR r1,|L5.20|
|
||||
00000c 6008 STR r0,[r1,#0]
|
||||
;;;115 }
|
||||
00000e 4770 BX lr
|
||||
;;;116
|
||||
ENDP
|
||||
|
||||
|L5.16|
|
||||
DCD g_tBeep
|
||||
|L5.20|
|
||||
DCD 0x40010c14
|
||||
|
||||
AREA ||.bss||, DATA, NOINIT, ALIGN=2
|
||||
|
||||
g_tBeep
|
||||
% 16
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\src\\bsp_beep.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___10_bsp_beep_c_471486d3____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___10_bsp_beep_c_471486d3____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___10_bsp_beep_c_471486d3____REVSH|
|
||||
#line 128
|
||||
|__asm___10_bsp_beep_c_471486d3____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
238
Project/MDK-ARM/Flash/List/bsp_channel_realy.txt
Normal file
238
Project/MDK-ARM/Flash/List/bsp_channel_realy.txt
Normal file
@@ -0,0 +1,238 @@
|
||||
; generated by Component: ARM Compiler 5.05 update 1 (build 106) Tool: ArmCC [4d0efa]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp_channel_realy.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_channel_realy.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -IC:\Keil_v5\ARM\RV31\INC -IC:\Keil_v5\ARM\CMSIS\Include -IC:\Keil_v5\ARM\Inc\ST\STM32F10x -D__MICROLIB -D__UVISION_VERSION=514 -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp_channel_realy.crf ..\..\User\bsp\src\bsp_channel_realy.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.bsp_InitChannelRelay||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_InitChannelRelay PROC
|
||||
;;;39
|
||||
;;;40 void bsp_InitChannelRelay(void)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;41 {
|
||||
;;;42 GPIO_InitTypeDef GPIO_InitStructure;
|
||||
;;;43
|
||||
;;;44 // ´ò¿ªGPIOʱÖÓ
|
||||
;;;45 RCC_APB2PeriphClockCmd(RCC_ALL_RELAY, ENABLE);
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 2048 MOVS r0,#0x48
|
||||
000006 f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;46
|
||||
;;;47 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
00000a 2003 MOVS r0,#3
|
||||
00000c f88d0002 STRB r0,[sp,#2]
|
||||
;;;48 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /* ÍÆÍìÊä³öģʽ */
|
||||
000010 2010 MOVS r0,#0x10
|
||||
000012 f88d0003 STRB r0,[sp,#3]
|
||||
;;;49
|
||||
;;;50 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RELAY1;
|
||||
000016 2008 MOVS r0,#8
|
||||
000018 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;51 GPIO_Init(GPIO_PORT_RELAY1, &GPIO_InitStructure);
|
||||
00001c 4669 MOV r1,sp
|
||||
00001e 4814 LDR r0,|L1.112|
|
||||
000020 f7fffffe BL GPIO_Init
|
||||
;;;52
|
||||
;;;53 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RELAY2;
|
||||
000024 f44f7080 MOV r0,#0x100
|
||||
000028 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;54 GPIO_Init(GPIO_PORT_RELAY2, &GPIO_InitStructure);
|
||||
00002c 4669 MOV r1,sp
|
||||
00002e 4811 LDR r0,|L1.116|
|
||||
000030 f7fffffe BL GPIO_Init
|
||||
;;;55
|
||||
;;;56 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RELAY3;
|
||||
000034 2004 MOVS r0,#4
|
||||
000036 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;57 GPIO_Init(GPIO_PORT_RELAY3, &GPIO_InitStructure);
|
||||
00003a 4669 MOV r1,sp
|
||||
00003c 480c LDR r0,|L1.112|
|
||||
00003e f7fffffe BL GPIO_Init
|
||||
;;;58
|
||||
;;;59 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RELAY4;
|
||||
000042 f44f7000 MOV r0,#0x200
|
||||
000046 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;60 GPIO_Init(GPIO_PORT_RELAY4, &GPIO_InitStructure);
|
||||
00004a 4669 MOV r1,sp
|
||||
00004c 4809 LDR r0,|L1.116|
|
||||
00004e f7fffffe BL GPIO_Init
|
||||
;;;61
|
||||
;;;62 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RELAY5;
|
||||
000052 2002 MOVS r0,#2
|
||||
000054 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;63 GPIO_Init(GPIO_PORT_RELAY5, &GPIO_InitStructure);
|
||||
000058 4669 MOV r1,sp
|
||||
00005a 4805 LDR r0,|L1.112|
|
||||
00005c f7fffffe BL GPIO_Init
|
||||
;;;64
|
||||
;;;65 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RELAY6;
|
||||
000060 2001 MOVS r0,#1
|
||||
000062 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;66 GPIO_Init(GPIO_PORT_RELAY6, &GPIO_InitStructure);
|
||||
000066 4669 MOV r1,sp
|
||||
000068 4801 LDR r0,|L1.112|
|
||||
00006a f7fffffe BL GPIO_Init
|
||||
;;;67
|
||||
;;;68 }
|
||||
00006e bd08 POP {r3,pc}
|
||||
;;;69
|
||||
ENDP
|
||||
|
||||
|L1.112|
|
||||
DCD 0x40011800
|
||||
|L1.116|
|
||||
DCD 0x40010c00
|
||||
|
||||
AREA ||i.bsp_RealyAllOff||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_RealyAllOff PROC
|
||||
;;;69
|
||||
;;;70 void bsp_RealyAllOff(void)
|
||||
000000 2008 MOVS r0,#8
|
||||
;;;71 {
|
||||
;;;72 GPIO_PORT_RELAY1->BRR = GPIO_PIN_RELAY1;
|
||||
000002 4908 LDR r1,|L2.36|
|
||||
000004 6008 STR r0,[r1,#0]
|
||||
;;;73 GPIO_PORT_RELAY2->BRR = GPIO_PIN_RELAY2;
|
||||
000006 0140 LSLS r0,r0,#5
|
||||
000008 4907 LDR r1,|L2.40|
|
||||
00000a 6008 STR r0,[r1,#0]
|
||||
;;;74 GPIO_PORT_RELAY3->BRR = GPIO_PIN_RELAY3;
|
||||
00000c 2004 MOVS r0,#4
|
||||
00000e 4905 LDR r1,|L2.36|
|
||||
000010 6008 STR r0,[r1,#0]
|
||||
;;;75 GPIO_PORT_RELAY4->BRR = GPIO_PIN_RELAY4;
|
||||
000012 01c0 LSLS r0,r0,#7
|
||||
000014 4904 LDR r1,|L2.40|
|
||||
000016 6008 STR r0,[r1,#0]
|
||||
;;;76 GPIO_PORT_RELAY5->BRR = GPIO_PIN_RELAY5;
|
||||
000018 2002 MOVS r0,#2
|
||||
00001a 4902 LDR r1,|L2.36|
|
||||
00001c 6008 STR r0,[r1,#0]
|
||||
;;;77 GPIO_PORT_RELAY6->BRR = GPIO_PIN_RELAY6;
|
||||
00001e 2001 MOVS r0,#1
|
||||
000020 6008 STR r0,[r1,#0]
|
||||
;;;78 }
|
||||
000022 4770 BX lr
|
||||
;;;79
|
||||
ENDP
|
||||
|
||||
|L2.36|
|
||||
DCD 0x40011814
|
||||
|L2.40|
|
||||
DCD 0x40010c14
|
||||
|
||||
AREA ||i.bsp_RelayOn||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_RelayOn PROC
|
||||
;;;85 //------------------------------------------------------------------------------
|
||||
;;;86 void bsp_RelayOn(uint8_t _ch)
|
||||
000000 2108 MOVS r1,#8
|
||||
;;;87 {
|
||||
;;;88 GPIO_PORT_RELAY1->BRR = GPIO_PIN_RELAY1;
|
||||
000002 4a1d LDR r2,|L3.120|
|
||||
000004 6011 STR r1,[r2,#0]
|
||||
;;;89 GPIO_PORT_RELAY2->BRR = GPIO_PIN_RELAY2;
|
||||
000006 0149 LSLS r1,r1,#5
|
||||
000008 4a1c LDR r2,|L3.124|
|
||||
00000a 6011 STR r1,[r2,#0]
|
||||
;;;90 GPIO_PORT_RELAY3->BRR = GPIO_PIN_RELAY3;
|
||||
00000c 2104 MOVS r1,#4
|
||||
00000e 4a1a LDR r2,|L3.120|
|
||||
000010 6011 STR r1,[r2,#0]
|
||||
;;;91 GPIO_PORT_RELAY4->BRR = GPIO_PIN_RELAY4;
|
||||
000012 01c9 LSLS r1,r1,#7
|
||||
000014 4a19 LDR r2,|L3.124|
|
||||
000016 6011 STR r1,[r2,#0]
|
||||
;;;92 GPIO_PORT_RELAY5->BRR = GPIO_PIN_RELAY5;
|
||||
000018 2102 MOVS r1,#2
|
||||
00001a 4a17 LDR r2,|L3.120|
|
||||
00001c 6011 STR r1,[r2,#0]
|
||||
;;;93 GPIO_PORT_RELAY6->BRR = GPIO_PIN_RELAY6;
|
||||
00001e 2101 MOVS r1,#1
|
||||
000020 6011 STR r1,[r2,#0]
|
||||
;;;94
|
||||
;;;95 switch(_ch)
|
||||
000022 2807 CMP r0,#7
|
||||
000024 d225 BCS |L3.114|
|
||||
000026 e8dff000 TBB [pc,r0]
|
||||
00002a 2404 DCB 0x24,0x04
|
||||
00002c 090f141a DCB 0x09,0x0f,0x14,0x1a
|
||||
000030 1f00 DCB 0x1f,0x00
|
||||
;;;96 {
|
||||
;;;97 case 1: GPIO_PORT_RELAY1->BSRR = GPIO_PIN_RELAY1; break;
|
||||
000032 2108 MOVS r1,#8
|
||||
000034 4a10 LDR r2,|L3.120|
|
||||
000036 1f12 SUBS r2,r2,#4
|
||||
000038 6011 STR r1,[r2,#0]
|
||||
00003a e01b B |L3.116|
|
||||
;;;98 case 2: GPIO_PORT_RELAY2->BSRR = GPIO_PIN_RELAY2; break;
|
||||
00003c f44f7180 MOV r1,#0x100
|
||||
000040 4a0e LDR r2,|L3.124|
|
||||
000042 1f12 SUBS r2,r2,#4
|
||||
000044 6011 STR r1,[r2,#0]
|
||||
000046 e015 B |L3.116|
|
||||
;;;99 case 3: GPIO_PORT_RELAY3->BSRR = GPIO_PIN_RELAY3; break;
|
||||
000048 2104 MOVS r1,#4
|
||||
00004a 4a0b LDR r2,|L3.120|
|
||||
00004c 1f12 SUBS r2,r2,#4
|
||||
00004e 6011 STR r1,[r2,#0]
|
||||
000050 e010 B |L3.116|
|
||||
;;;100 case 4: GPIO_PORT_RELAY4->BSRR = GPIO_PIN_RELAY4; break;
|
||||
000052 f44f7100 MOV r1,#0x200
|
||||
000056 4a09 LDR r2,|L3.124|
|
||||
000058 1f12 SUBS r2,r2,#4
|
||||
00005a 6011 STR r1,[r2,#0]
|
||||
00005c e00a B |L3.116|
|
||||
;;;101 case 5: GPIO_PORT_RELAY5->BSRR = GPIO_PIN_RELAY5; break;
|
||||
00005e 2102 MOVS r1,#2
|
||||
000060 4a05 LDR r2,|L3.120|
|
||||
000062 1f12 SUBS r2,r2,#4
|
||||
000064 6011 STR r1,[r2,#0]
|
||||
000066 e005 B |L3.116|
|
||||
;;;102 case 6: GPIO_PORT_RELAY6->BSRR = GPIO_PIN_RELAY6; break;
|
||||
000068 2101 MOVS r1,#1
|
||||
00006a 4a03 LDR r2,|L3.120|
|
||||
00006c 1f12 SUBS r2,r2,#4
|
||||
00006e 6011 STR r1,[r2,#0]
|
||||
000070 e000 B |L3.116|
|
||||
|L3.114|
|
||||
;;;103 default: break;
|
||||
000072 bf00 NOP
|
||||
|L3.116|
|
||||
000074 bf00 NOP ;97
|
||||
;;;104 }
|
||||
;;;105 }
|
||||
000076 4770 BX lr
|
||||
;;;106
|
||||
ENDP
|
||||
|
||||
|L3.120|
|
||||
DCD 0x40011814
|
||||
|L3.124|
|
||||
DCD 0x40010c14
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\src\\bsp_channel_realy.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___19_bsp_channel_realy_c_4e9aa111____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___19_bsp_channel_realy_c_4e9aa111____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___19_bsp_channel_realy_c_4e9aa111____REVSH|
|
||||
#line 128
|
||||
|__asm___19_bsp_channel_realy_c_4e9aa111____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
1168
Project/MDK-ARM/Flash/List/bsp_digital_tube.txt
Normal file
1168
Project/MDK-ARM/Flash/List/bsp_digital_tube.txt
Normal file
File diff suppressed because it is too large
Load Diff
565
Project/MDK-ARM/Flash/List/bsp_drv8880.txt
Normal file
565
Project/MDK-ARM/Flash/List/bsp_drv8880.txt
Normal file
@@ -0,0 +1,565 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp_drv8880.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_drv8880.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp_drv8880.crf ..\..\User\bsp\src\bsp_drv8880.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.bsp_Init_Drv8880_Hard||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_Init_Drv8880_Hard PROC
|
||||
;;;191
|
||||
;;;192 void bsp_Init_Drv8880_Hard(void)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;193 {
|
||||
;;;194 GPIO_InitTypeDef GPIO_InitStructure;
|
||||
;;;195
|
||||
;;;196 RCC_APB2PeriphClockCmd(RCC_ALL_MOTO, ENABLE);
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 f44f70ac MOV r0,#0x158
|
||||
000008 f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;197
|
||||
;;;198 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
00000c 2003 MOVS r0,#3
|
||||
00000e f88d0002 STRB r0,[sp,#2]
|
||||
;;;199 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
||||
000012 2010 MOVS r0,#0x10
|
||||
000014 f88d0003 STRB r0,[sp,#3]
|
||||
;;;200
|
||||
;;;201 // 配置自动整定引脚为高电平,设置为自动整定模式
|
||||
;;;202 GPIO_PORT_ATE->BSRR = GPIO_PIN_ATE;
|
||||
000018 02c0 LSLS r0,r0,#11
|
||||
00001a 4940 LDR r1,|L1.284|
|
||||
00001c 6008 STR r0,[r1,#0]
|
||||
;;;203 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_ATE;
|
||||
00001e f8ad0000 STRH r0,[sp,#0]
|
||||
;;;204 GPIO_Init(GPIO_PORT_ATE, &GPIO_InitStructure);
|
||||
000022 4669 MOV r1,sp
|
||||
000024 483d LDR r0,|L1.284|
|
||||
000026 3810 SUBS r0,r0,#0x10
|
||||
000028 f7fffffe BL GPIO_Init
|
||||
;;;205
|
||||
;;;206 // 配置脉冲输入引脚,设置为默认低电平
|
||||
;;;207 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_STEP;
|
||||
00002c 2080 MOVS r0,#0x80
|
||||
00002e f8ad0000 STRH r0,[sp,#0]
|
||||
;;;208 GPIO_Init(GPIO_PORT_STEP, &GPIO_InitStructure);
|
||||
000032 4669 MOV r1,sp
|
||||
000034 483a LDR r0,|L1.288|
|
||||
000036 f7fffffe BL GPIO_Init
|
||||
;;;209
|
||||
;;;210 // 配置方向引脚,设置默认为低电平
|
||||
;;;211 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_DIR;
|
||||
00003a f44f6080 MOV r0,#0x400
|
||||
00003e f8ad0000 STRH r0,[sp,#0]
|
||||
;;;212 GPIO_Init(GPIO_PORT_DIR, &GPIO_InitStructure);
|
||||
000042 4669 MOV r1,sp
|
||||
000044 4835 LDR r0,|L1.284|
|
||||
000046 3810 SUBS r0,r0,#0x10
|
||||
000048 f7fffffe BL GPIO_Init
|
||||
;;;213
|
||||
;;;214 // 配置使能引脚,设置默认为低电平,不使能
|
||||
;;;215 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_ENABLE;
|
||||
00004c f44f6000 MOV r0,#0x800
|
||||
000050 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;216 GPIO_Init(GPIO_PORT_ENABLE, &GPIO_InitStructure);
|
||||
000054 4669 MOV r1,sp
|
||||
000056 4831 LDR r0,|L1.284|
|
||||
000058 3810 SUBS r0,r0,#0x10
|
||||
00005a f7fffffe BL GPIO_Init
|
||||
;;;217
|
||||
;;;218 // 配置睡眠引脚,设置默认为低电平,处于睡眠状态
|
||||
;;;219 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_SLEEP;
|
||||
00005e f44f6000 MOV r0,#0x800
|
||||
000062 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;220 GPIO_Init(GPIO_PORT_SLEEP, &GPIO_InitStructure);
|
||||
000066 4669 MOV r1,sp
|
||||
000068 482e LDR r0,|L1.292|
|
||||
00006a f7fffffe BL GPIO_Init
|
||||
;;;221
|
||||
;;;222 // 配置细分引脚,设置默认为低电平,不细分
|
||||
;;;223 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_M1;
|
||||
00006e f44f7080 MOV r0,#0x100
|
||||
000072 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;224 GPIO_Init(GPIO_PORT_M1, &GPIO_InitStructure);
|
||||
000076 4669 MOV r1,sp
|
||||
000078 4828 LDR r0,|L1.284|
|
||||
00007a 3810 SUBS r0,r0,#0x10
|
||||
00007c f7fffffe BL GPIO_Init
|
||||
;;;225 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_M0;
|
||||
000080 2080 MOVS r0,#0x80
|
||||
000082 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;226 GPIO_Init(GPIO_PORT_M0, &GPIO_InitStructure);
|
||||
000086 4669 MOV r1,sp
|
||||
000088 4824 LDR r0,|L1.284|
|
||||
00008a 3810 SUBS r0,r0,#0x10
|
||||
00008c f7fffffe BL GPIO_Init
|
||||
;;;227
|
||||
;;;228 // 配置力矩引脚,设置默认为低电平,100%力矩
|
||||
;;;229 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_TRQ1;
|
||||
000090 2002 MOVS r0,#2
|
||||
000092 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;230 GPIO_Init(GPIO_PORT_TRQ1, &GPIO_InitStructure);
|
||||
000096 4669 MOV r1,sp
|
||||
000098 4823 LDR r0,|L1.296|
|
||||
00009a f7fffffe BL GPIO_Init
|
||||
;;;231 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_TRQ0;
|
||||
00009e 2001 MOVS r0,#1
|
||||
0000a0 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;232 GPIO_Init(GPIO_PORT_TRQ0, &GPIO_InitStructure);
|
||||
0000a4 4669 MOV r1,sp
|
||||
0000a6 4820 LDR r0,|L1.296|
|
||||
0000a8 f7fffffe BL GPIO_Init
|
||||
;;;233
|
||||
;;;234 // 设置衰减模式,设置默认为低电平,为slow decay模式
|
||||
;;;235 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_DECAY1;
|
||||
0000ac f44f5000 MOV r0,#0x2000
|
||||
0000b0 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;236 GPIO_Init(GPIO_PORT_DECAY1, &GPIO_InitStructure);
|
||||
0000b4 4669 MOV r1,sp
|
||||
0000b6 4819 LDR r0,|L1.284|
|
||||
0000b8 3810 SUBS r0,r0,#0x10
|
||||
0000ba f7fffffe BL GPIO_Init
|
||||
;;;237 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_DECAY0;
|
||||
0000be f44f5080 MOV r0,#0x1000
|
||||
0000c2 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;238 GPIO_Init(GPIO_PORT_DECAY0, &GPIO_InitStructure);
|
||||
0000c6 4669 MOV r1,sp
|
||||
0000c8 4814 LDR r0,|L1.284|
|
||||
0000ca 3810 SUBS r0,r0,#0x10
|
||||
0000cc f7fffffe BL GPIO_Init
|
||||
;;;239
|
||||
;;;240 // 设置fixed-off-time,设置默认为低电平,为20us
|
||||
;;;241 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_TOFF;
|
||||
0000d0 f44f6080 MOV r0,#0x400
|
||||
0000d4 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;242 GPIO_Init(GPIO_PORT_TOFF, &GPIO_InitStructure);
|
||||
0000d8 4669 MOV r1,sp
|
||||
0000da 4812 LDR r0,|L1.292|
|
||||
0000dc f7fffffe BL GPIO_Init
|
||||
;;;243
|
||||
;;;244 // 设置报警输出引脚,设置为输入浮空模式
|
||||
;;;245 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
||||
0000e0 2004 MOVS r0,#4
|
||||
0000e2 f88d0003 STRB r0,[sp,#3]
|
||||
;;;246 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_FAULT;
|
||||
0000e6 0300 LSLS r0,r0,#12
|
||||
0000e8 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;247 GPIO_Init(GPIO_PORT_FAULT, &GPIO_InitStructure);
|
||||
0000ec 4669 MOV r1,sp
|
||||
0000ee 480b LDR r0,|L1.284|
|
||||
0000f0 3810 SUBS r0,r0,#0x10
|
||||
0000f2 f7fffffe BL GPIO_Init
|
||||
;;;248
|
||||
;;;249 // 设置细分
|
||||
;;;250 bsp_drv8880_microstep_config(STEP_1_16);
|
||||
0000f6 2005 MOVS r0,#5
|
||||
0000f8 f7fffffe BL bsp_drv8880_microstep_config
|
||||
;;;251
|
||||
;;;252 // 方向设置
|
||||
;;;253 bsp_drv8880_config_dir(DIR_CCW);
|
||||
0000fc 2001 MOVS r0,#1
|
||||
0000fe f7fffffe BL bsp_drv8880_config_dir
|
||||
;;;254
|
||||
;;;255 // DA输出,步进电机电流设置 0.495V
|
||||
;;;256
|
||||
;;;257 // 设置DA输出的电压为0.495V
|
||||
;;;258 bsp_dev8880_vref_init_hard(1500);
|
||||
000102 f24050dc MOV r0,#0x5dc
|
||||
000106 f7fffffe BL bsp_dev8880_vref_init_hard
|
||||
;;;259
|
||||
;;;260 // 退出睡眠模式
|
||||
;;;261 GPIO_PORT_SLEEP->BSRR = GPIO_PIN_SLEEP;
|
||||
00010a f44f6000 MOV r0,#0x800
|
||||
00010e 4905 LDR r1,|L1.292|
|
||||
000110 3110 ADDS r1,r1,#0x10
|
||||
000112 6008 STR r0,[r1,#0]
|
||||
;;;262
|
||||
;;;263 // 暂时不使能,等待零点所搜命令
|
||||
;;;264 // bsp_drv8880_enable_config(DISABLE);
|
||||
;;;265 bsp_drv8880_enable_config(ENABLE);
|
||||
000114 2001 MOVS r0,#1
|
||||
000116 f7fffffe BL bsp_drv8880_enable_config
|
||||
;;;266 }
|
||||
00011a bd08 POP {r3,pc}
|
||||
;;;267
|
||||
ENDP
|
||||
|
||||
|L1.284|
|
||||
DCD 0x40011810
|
||||
|L1.288|
|
||||
DCD 0x40011000
|
||||
|L1.292|
|
||||
DCD 0x40010c00
|
||||
|L1.296|
|
||||
DCD 0x40012000
|
||||
|
||||
AREA ||i.bsp_dev8880_vref_init_hard||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_dev8880_vref_init_hard PROC
|
||||
;;;160 // vol:0~3300,代表0~3.3V
|
||||
;;;161 static void bsp_dev8880_vref_init_hard(uint16_t vol)
|
||||
000000 e92d47f0 PUSH {r4-r10,lr}
|
||||
;;;162 {
|
||||
000004 b086 SUB sp,sp,#0x18
|
||||
000006 4604 MOV r4,r0
|
||||
;;;163 float temp = vol;
|
||||
000008 4620 MOV r0,r4
|
||||
00000a f7fffffe BL __aeabi_ui2f
|
||||
00000e 4681 MOV r9,r0
|
||||
;;;164
|
||||
;;;165 GPIO_InitTypeDef GPIO_InitStructure;
|
||||
;;;166 DAC_InitTypeDef DAC_InitType;
|
||||
;;;167
|
||||
;;;168 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 使能PORTA通道时钟
|
||||
000010 2101 MOVS r1,#1
|
||||
000012 2004 MOVS r0,#4
|
||||
000014 f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;169 RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); // 使能DAC通道时钟
|
||||
000018 2101 MOVS r1,#1
|
||||
00001a 0748 LSLS r0,r1,#29
|
||||
00001c f7fffffe BL RCC_APB1PeriphClockCmd
|
||||
;;;170
|
||||
;;;171 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; // 端口配置
|
||||
000020 2010 MOVS r0,#0x10
|
||||
000022 f8ad0014 STRH r0,[sp,#0x14]
|
||||
;;;172 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; // 模拟输入
|
||||
000026 2000 MOVS r0,#0
|
||||
000028 f88d0017 STRB r0,[sp,#0x17]
|
||||
;;;173 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
00002c 2003 MOVS r0,#3
|
||||
00002e f88d0016 STRB r0,[sp,#0x16]
|
||||
;;;174 GPIO_Init(GPIOA, &GPIO_InitStructure);
|
||||
000032 a905 ADD r1,sp,#0x14
|
||||
000034 481d LDR r0,|L2.172|
|
||||
000036 f7fffffe BL GPIO_Init
|
||||
;;;175 GPIO_SetBits(GPIOA, GPIO_Pin_4); // PA.4 输出高
|
||||
00003a 2110 MOVS r1,#0x10
|
||||
00003c 481b LDR r0,|L2.172|
|
||||
00003e f7fffffe BL GPIO_SetBits
|
||||
;;;176
|
||||
;;;177 DAC_InitType.DAC_Trigger = DAC_Trigger_None; // 不使用触发功能 TEN1=0
|
||||
000042 2000 MOVS r0,#0
|
||||
000044 9001 STR r0,[sp,#4]
|
||||
;;;178 DAC_InitType.DAC_WaveGeneration = DAC_WaveGeneration_None; // 不使用波形发生
|
||||
000046 9002 STR r0,[sp,#8]
|
||||
;;;179 DAC_InitType.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bit0; // 屏蔽、幅值设置
|
||||
000048 9003 STR r0,[sp,#0xc]
|
||||
;;;180 DAC_InitType.DAC_OutputBuffer = DAC_OutputBuffer_Disable; // DAC1输出缓存关闭 BOFF1=1
|
||||
00004a 2002 MOVS r0,#2
|
||||
00004c 9004 STR r0,[sp,#0x10]
|
||||
;;;181 DAC_Init(DAC_Channel_1, &DAC_InitType); // 初始化DAC通道1
|
||||
00004e a901 ADD r1,sp,#4
|
||||
000050 2000 MOVS r0,#0
|
||||
000052 f7fffffe BL DAC_Init
|
||||
;;;182
|
||||
;;;183 DAC_Cmd(DAC_Channel_1, ENABLE); // 使能DAC1
|
||||
000056 2101 MOVS r1,#1
|
||||
000058 2000 MOVS r0,#0
|
||||
00005a f7fffffe BL DAC_Cmd
|
||||
;;;184
|
||||
;;;185 DAC_SetChannel1Data(DAC_Align_12b_R, 0); // 12位右对齐数据格式设置DAC值
|
||||
00005e 2100 MOVS r1,#0
|
||||
000060 4608 MOV r0,r1
|
||||
000062 f7fffffe BL DAC_SetChannel1Data
|
||||
;;;186
|
||||
;;;187 temp /= 1000;
|
||||
000066 4912 LDR r1,|L2.176|
|
||||
000068 4648 MOV r0,r9
|
||||
00006a f7fffffe BL __aeabi_fdiv
|
||||
00006e 4681 MOV r9,r0
|
||||
;;;188 temp = temp * 4096 / 3.3;
|
||||
000070 f04f418b MOV r1,#0x45800000
|
||||
000074 4648 MOV r0,r9
|
||||
000076 f7fffffe BL __aeabi_fmul
|
||||
00007a 4682 MOV r10,r0
|
||||
00007c f7fffffe BL __aeabi_f2d
|
||||
000080 4607 MOV r7,r0
|
||||
000082 f04f3266 MOV r2,#0x66666666
|
||||
000086 4b0b LDR r3,|L2.180|
|
||||
000088 f7fffffe BL __aeabi_ddiv
|
||||
00008c 4605 MOV r5,r0
|
||||
00008e f7fffffe BL __aeabi_d2f
|
||||
000092 4681 MOV r9,r0
|
||||
;;;189 DAC_SetChannel1Data(DAC_Align_12b_R, temp); // 12位右对齐数据格式设置DAC值
|
||||
000094 4648 MOV r0,r9
|
||||
000096 f7fffffe BL __aeabi_f2uiz
|
||||
00009a b285 UXTH r5,r0
|
||||
00009c 4629 MOV r1,r5
|
||||
00009e 2000 MOVS r0,#0
|
||||
0000a0 f7fffffe BL DAC_SetChannel1Data
|
||||
;;;190 }
|
||||
0000a4 b006 ADD sp,sp,#0x18
|
||||
0000a6 e8bd87f0 POP {r4-r10,pc}
|
||||
;;;191
|
||||
ENDP
|
||||
|
||||
0000aa 0000 DCW 0x0000
|
||||
|L2.172|
|
||||
DCD 0x40010800
|
||||
|L2.176|
|
||||
DCD 0x447a0000
|
||||
|L2.180|
|
||||
DCD 0x400a6666
|
||||
|
||||
AREA ||i.bsp_drv8880_config_dir||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_drv8880_config_dir PROC
|
||||
;;;131 }
|
||||
;;;132 void bsp_drv8880_config_dir(DIR_E dir)
|
||||
000000 b110 CBZ r0,|L3.8|
|
||||
;;;133 {
|
||||
;;;134 switch (dir)
|
||||
000002 2801 CMP r0,#1
|
||||
000004 d111 BNE |L3.42|
|
||||
000006 e007 B |L3.24|
|
||||
|L3.8|
|
||||
;;;135 {
|
||||
;;;136 case DIR_CW:
|
||||
;;;137 DRV8880_CW;
|
||||
000008 f44f6180 MOV r1,#0x400
|
||||
00000c 4a08 LDR r2,|L3.48|
|
||||
00000e 6011 STR r1,[r2,#0]
|
||||
;;;138 g_tTube.dir = DIR_CW;
|
||||
000010 2100 MOVS r1,#0
|
||||
000012 4a08 LDR r2,|L3.52|
|
||||
000014 7311 STRB r1,[r2,#0xc]
|
||||
;;;139 break;
|
||||
000016 e009 B |L3.44|
|
||||
|L3.24|
|
||||
;;;140 case DIR_CCW:
|
||||
;;;141 DRV8880_CCW;
|
||||
000018 f44f6180 MOV r1,#0x400
|
||||
00001c 4a04 LDR r2,|L3.48|
|
||||
00001e 1f12 SUBS r2,r2,#4
|
||||
000020 6011 STR r1,[r2,#0]
|
||||
;;;142 g_tTube.dir = DIR_CCW;
|
||||
000022 2101 MOVS r1,#1
|
||||
000024 4a03 LDR r2,|L3.52|
|
||||
000026 7311 STRB r1,[r2,#0xc]
|
||||
;;;143 break;
|
||||
000028 e000 B |L3.44|
|
||||
|L3.42|
|
||||
;;;144 default:
|
||||
;;;145 break;
|
||||
00002a bf00 NOP
|
||||
|L3.44|
|
||||
00002c bf00 NOP ;139
|
||||
;;;146 }
|
||||
;;;147 }
|
||||
00002e 4770 BX lr
|
||||
;;;148 void bsp_drv8880_enable_config(FunctionalState en)
|
||||
ENDP
|
||||
|
||||
|L3.48|
|
||||
DCD 0x40011814
|
||||
|L3.52|
|
||||
DCD g_tTube
|
||||
|
||||
AREA ||i.bsp_drv8880_enable_config||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_drv8880_enable_config PROC
|
||||
;;;147 }
|
||||
;;;148 void bsp_drv8880_enable_config(FunctionalState en)
|
||||
000000 b920 CBNZ r0,|L4.12|
|
||||
;;;149 {
|
||||
;;;150 if (en == DISABLE)
|
||||
;;;151 {
|
||||
;;;152 DRV8880_DISABLE;
|
||||
000002 f44f6100 MOV r1,#0x800
|
||||
000006 4a04 LDR r2,|L4.24|
|
||||
000008 6011 STR r1,[r2,#0]
|
||||
00000a e004 B |L4.22|
|
||||
|L4.12|
|
||||
;;;153 }
|
||||
;;;154 else
|
||||
;;;155 {
|
||||
;;;156 DRV8880_ENABLE;
|
||||
00000c f44f6100 MOV r1,#0x800
|
||||
000010 4a01 LDR r2,|L4.24|
|
||||
000012 1f12 SUBS r2,r2,#4
|
||||
000014 6011 STR r1,[r2,#0]
|
||||
|L4.22|
|
||||
;;;157 }
|
||||
;;;158 }
|
||||
000016 4770 BX lr
|
||||
;;;159
|
||||
ENDP
|
||||
|
||||
|L4.24|
|
||||
DCD 0x40011814
|
||||
|
||||
AREA ||i.bsp_drv8880_microstep_config||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_drv8880_microstep_config PROC
|
||||
;;;95
|
||||
;;;96 void bsp_drv8880_microstep_config(MICRO_STEPPING_E step)
|
||||
000000 2806 CMP r0,#6
|
||||
;;;97 {
|
||||
;;;98 switch (step)
|
||||
000002 d26f BCS |L5.228|
|
||||
000004 e8dff000 TBB [pc,r0]
|
||||
000008 0315283b DCB 0x03,0x15,0x28,0x3b
|
||||
00000c 4d5d DCB 0x4d,0x5d
|
||||
;;;99 {
|
||||
;;;100 case STEP_FULL: // M1M0: 00
|
||||
;;;101 M0_SET_AS_OUTPUT();
|
||||
00000e 4937 LDR r1,|L5.236|
|
||||
000010 6809 LDR r1,[r1,#0]
|
||||
000012 f0214170 BIC r1,r1,#0xf0000000
|
||||
000016 4a35 LDR r2,|L5.236|
|
||||
000018 6011 STR r1,[r2,#0]
|
||||
00001a 4611 MOV r1,r2
|
||||
00001c 6809 LDR r1,[r1,#0]
|
||||
00001e f0415140 ORR r1,r1,#0x30000000
|
||||
000022 6011 STR r1,[r2,#0]
|
||||
;;;102 M1_DISABLE;
|
||||
000024 1591 ASRS r1,r2,#22
|
||||
000026 4a31 LDR r2,|L5.236|
|
||||
000028 3214 ADDS r2,r2,#0x14
|
||||
00002a 6011 STR r1,[r2,#0]
|
||||
;;;103 M0_DISABLE;
|
||||
00002c 2180 MOVS r1,#0x80
|
||||
00002e 6011 STR r1,[r2,#0]
|
||||
;;;104 break;
|
||||
000030 e059 B |L5.230|
|
||||
;;;105 case STEP_1_2_NC: // M1M0: 01
|
||||
;;;106 M0_SET_AS_OUTPUT();
|
||||
000032 492e LDR r1,|L5.236|
|
||||
000034 6809 LDR r1,[r1,#0]
|
||||
000036 f0214170 BIC r1,r1,#0xf0000000
|
||||
00003a 4a2c LDR r2,|L5.236|
|
||||
00003c 6011 STR r1,[r2,#0]
|
||||
00003e 4611 MOV r1,r2
|
||||
000040 6809 LDR r1,[r1,#0]
|
||||
000042 f0415140 ORR r1,r1,#0x30000000
|
||||
000046 6011 STR r1,[r2,#0]
|
||||
;;;107 M1_DISABLE;
|
||||
000048 1591 ASRS r1,r2,#22
|
||||
00004a 4a28 LDR r2,|L5.236|
|
||||
00004c 3214 ADDS r2,r2,#0x14
|
||||
00004e 6011 STR r1,[r2,#0]
|
||||
;;;108 M0_ENABLE;
|
||||
000050 2180 MOVS r1,#0x80
|
||||
000052 1f12 SUBS r2,r2,#4
|
||||
000054 6011 STR r1,[r2,#0]
|
||||
;;;109 break;
|
||||
000056 e046 B |L5.230|
|
||||
;;;110 case STEP_1_2: // M1M0: 10
|
||||
;;;111 M0_SET_AS_OUTPUT();
|
||||
000058 4924 LDR r1,|L5.236|
|
||||
00005a 6809 LDR r1,[r1,#0]
|
||||
00005c f0214170 BIC r1,r1,#0xf0000000
|
||||
000060 4a22 LDR r2,|L5.236|
|
||||
000062 6011 STR r1,[r2,#0]
|
||||
000064 4611 MOV r1,r2
|
||||
000066 6809 LDR r1,[r1,#0]
|
||||
000068 f0415140 ORR r1,r1,#0x30000000
|
||||
00006c 6011 STR r1,[r2,#0]
|
||||
;;;112 M1_ENABLE;
|
||||
00006e 1591 ASRS r1,r2,#22
|
||||
000070 4a1e LDR r2,|L5.236|
|
||||
000072 3210 ADDS r2,r2,#0x10
|
||||
000074 6011 STR r1,[r2,#0]
|
||||
;;;113 M0_DISABLE;
|
||||
000076 2180 MOVS r1,#0x80
|
||||
000078 1d12 ADDS r2,r2,#4
|
||||
00007a 6011 STR r1,[r2,#0]
|
||||
;;;114 break;
|
||||
00007c e033 B |L5.230|
|
||||
;;;115 case STEP_1_4: // M1M0: 11
|
||||
;;;116 M0_SET_AS_OUTPUT();
|
||||
00007e 491b LDR r1,|L5.236|
|
||||
000080 6809 LDR r1,[r1,#0]
|
||||
000082 f0214170 BIC r1,r1,#0xf0000000
|
||||
000086 4a19 LDR r2,|L5.236|
|
||||
000088 6011 STR r1,[r2,#0]
|
||||
00008a 4611 MOV r1,r2
|
||||
00008c 6809 LDR r1,[r1,#0]
|
||||
00008e f0415140 ORR r1,r1,#0x30000000
|
||||
000092 6011 STR r1,[r2,#0]
|
||||
;;;117 M1_ENABLE;
|
||||
000094 1591 ASRS r1,r2,#22
|
||||
000096 4a15 LDR r2,|L5.236|
|
||||
000098 3210 ADDS r2,r2,#0x10
|
||||
00009a 6011 STR r1,[r2,#0]
|
||||
;;;118 M0_ENABLE;
|
||||
00009c 2180 MOVS r1,#0x80
|
||||
00009e 6011 STR r1,[r2,#0]
|
||||
;;;119 break;
|
||||
0000a0 e021 B |L5.230|
|
||||
;;;120 case STEP_1_8: // M1M0: 0Z
|
||||
;;;121 M0_SET_AS_INPUT();
|
||||
0000a2 4912 LDR r1,|L5.236|
|
||||
0000a4 6809 LDR r1,[r1,#0]
|
||||
0000a6 f0214170 BIC r1,r1,#0xf0000000
|
||||
0000aa 4a10 LDR r2,|L5.236|
|
||||
0000ac 6011 STR r1,[r2,#0]
|
||||
0000ae 4611 MOV r1,r2
|
||||
0000b0 6809 LDR r1,[r1,#0]
|
||||
0000b2 f0414180 ORR r1,r1,#0x40000000
|
||||
0000b6 6011 STR r1,[r2,#0]
|
||||
;;;122 M1_DISABLE;
|
||||
0000b8 1591 ASRS r1,r2,#22
|
||||
0000ba 4a0c LDR r2,|L5.236|
|
||||
0000bc 3214 ADDS r2,r2,#0x14
|
||||
0000be 6011 STR r1,[r2,#0]
|
||||
;;;123 break;
|
||||
0000c0 e011 B |L5.230|
|
||||
;;;124 case STEP_1_16: // M1M0: 1Z
|
||||
;;;125 M0_SET_AS_INPUT();
|
||||
0000c2 490a LDR r1,|L5.236|
|
||||
0000c4 6809 LDR r1,[r1,#0]
|
||||
0000c6 f0214170 BIC r1,r1,#0xf0000000
|
||||
0000ca 4a08 LDR r2,|L5.236|
|
||||
0000cc 6011 STR r1,[r2,#0]
|
||||
0000ce 4611 MOV r1,r2
|
||||
0000d0 6809 LDR r1,[r1,#0]
|
||||
0000d2 f0414180 ORR r1,r1,#0x40000000
|
||||
0000d6 6011 STR r1,[r2,#0]
|
||||
;;;126 M1_ENABLE;
|
||||
0000d8 1591 ASRS r1,r2,#22
|
||||
0000da 4a04 LDR r2,|L5.236|
|
||||
0000dc 3210 ADDS r2,r2,#0x10
|
||||
0000de 6011 STR r1,[r2,#0]
|
||||
;;;127 break;
|
||||
0000e0 e001 B |L5.230|
|
||||
0000e2 e7ff B |L5.228|
|
||||
|L5.228|
|
||||
;;;128 default:
|
||||
;;;129 break;
|
||||
0000e4 bf00 NOP
|
||||
|L5.230|
|
||||
0000e6 bf00 NOP ;104
|
||||
;;;130 }
|
||||
;;;131 }
|
||||
0000e8 4770 BX lr
|
||||
;;;132 void bsp_drv8880_config_dir(DIR_E dir)
|
||||
ENDP
|
||||
|
||||
0000ea 0000 DCW 0x0000
|
||||
|L5.236|
|
||||
DCD 0x40011800
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\src\\bsp_drv8880.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___13_bsp_drv8880_c_b3f300ed____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___13_bsp_drv8880_c_b3f300ed____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___13_bsp_drv8880_c_b3f300ed____REVSH|
|
||||
#line 128
|
||||
|__asm___13_bsp_drv8880_c_b3f300ed____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
367
Project/MDK-ARM/Flash/List/bsp_eeprom_24xx.txt
Normal file
367
Project/MDK-ARM/Flash/List/bsp_eeprom_24xx.txt
Normal file
@@ -0,0 +1,367 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp_eeprom_24xx.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_eeprom_24xx.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp_eeprom_24xx.crf ..\..\User\bsp\src\bsp_eeprom_24xx.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.ee_CheckOk||, CODE, READONLY, ALIGN=1
|
||||
|
||||
ee_CheckOk PROC
|
||||
;;;32 */
|
||||
;;;33 uint8_t ee_CheckOk(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;34 {
|
||||
;;;35 if (i2c_CheckDevice(EE_DEV_ADDR) == 0)
|
||||
000002 20a0 MOVS r0,#0xa0
|
||||
000004 f7fffffe BL i2c_CheckDevice
|
||||
000008 b908 CBNZ r0,|L1.14|
|
||||
;;;36 {
|
||||
;;;37 return 1;
|
||||
00000a 2001 MOVS r0,#1
|
||||
|L1.12|
|
||||
;;;38 }
|
||||
;;;39 else
|
||||
;;;40 {
|
||||
;;;41 /* 失败后,切记发送I2C总线停止信号 */
|
||||
;;;42 i2c_Stop();
|
||||
;;;43 return 0;
|
||||
;;;44 }
|
||||
;;;45 }
|
||||
00000c bd10 POP {r4,pc}
|
||||
|L1.14|
|
||||
00000e f7fffffe BL i2c_Stop
|
||||
000012 2000 MOVS r0,#0 ;43
|
||||
000014 e7fa B |L1.12|
|
||||
;;;46
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.ee_ReadBytes||, CODE, READONLY, ALIGN=1
|
||||
|
||||
ee_ReadBytes PROC
|
||||
;;;56 */
|
||||
;;;57 uint8_t ee_ReadBytes(uint8_t *_pReadBuf, uint16_t _usAddress, uint16_t _usSize)
|
||||
000000 e92d41f0 PUSH {r4-r8,lr}
|
||||
;;;58 {
|
||||
000004 4607 MOV r7,r0
|
||||
000006 460d MOV r5,r1
|
||||
000008 4616 MOV r6,r2
|
||||
;;;59 uint16_t i;
|
||||
;;;60
|
||||
;;;61 /* 采用串行EEPROM随即读取指令序列,连续读取若干字节 */
|
||||
;;;62
|
||||
;;;63 /* 第1步:发起I2C总线启动信号 */
|
||||
;;;64 i2c_Start();
|
||||
00000a f7fffffe BL i2c_Start
|
||||
;;;65
|
||||
;;;66 /* 第2步:发起控制字节,高7bit是地址,bit0是读写控制位,0表示写,1表示读 */
|
||||
;;;67 i2c_SendByte(EE_DEV_ADDR | I2C_WR); /* 此处是写指令 */
|
||||
00000e 20a0 MOVS r0,#0xa0
|
||||
000010 f7fffffe BL i2c_SendByte
|
||||
;;;68
|
||||
;;;69 /* 第3步:发送ACK */
|
||||
;;;70 if (i2c_WaitAck() != 0)
|
||||
000014 f7fffffe BL i2c_WaitAck
|
||||
000018 b100 CBZ r0,|L2.28|
|
||||
;;;71 {
|
||||
;;;72 goto cmd_fail; /* EEPROM器件无应答 */
|
||||
00001a e02c B |L2.118|
|
||||
|L2.28|
|
||||
;;;73 }
|
||||
;;;74
|
||||
;;;75 /* 第4步:发送字节地址,24C02只有256字节,因此1个字节就够了,如果是24C04以上,那么此处需要连发多个地址 */
|
||||
;;;76 if (EE_ADDR_BYTES == 1)
|
||||
;;;77 {
|
||||
;;;78 i2c_SendByte((uint8_t)_usAddress);
|
||||
;;;79 if (i2c_WaitAck() != 0)
|
||||
;;;80 {
|
||||
;;;81 goto cmd_fail; /* EEPROM器件无应答 */
|
||||
;;;82 }
|
||||
;;;83 }
|
||||
;;;84 else
|
||||
;;;85 {
|
||||
;;;86 i2c_SendByte(_usAddress >> 8);
|
||||
00001c 1228 ASRS r0,r5,#8
|
||||
00001e f7fffffe BL i2c_SendByte
|
||||
;;;87 if (i2c_WaitAck() != 0)
|
||||
000022 f7fffffe BL i2c_WaitAck
|
||||
000026 b100 CBZ r0,|L2.42|
|
||||
;;;88 {
|
||||
;;;89 goto cmd_fail; /* EEPROM器件无应答 */
|
||||
000028 e025 B |L2.118|
|
||||
|L2.42|
|
||||
;;;90 }
|
||||
;;;91
|
||||
;;;92 i2c_SendByte(_usAddress);
|
||||
00002a b2e8 UXTB r0,r5
|
||||
00002c f7fffffe BL i2c_SendByte
|
||||
;;;93 if (i2c_WaitAck() != 0)
|
||||
000030 f7fffffe BL i2c_WaitAck
|
||||
000034 b100 CBZ r0,|L2.56|
|
||||
;;;94 {
|
||||
;;;95 goto cmd_fail; /* EEPROM器件无应答 */
|
||||
000036 e01e B |L2.118|
|
||||
|L2.56|
|
||||
;;;96 }
|
||||
;;;97 }
|
||||
;;;98
|
||||
;;;99 /* 第6步:重新启动I2C总线。下面开始读取数据 */
|
||||
;;;100 i2c_Start();
|
||||
000038 f7fffffe BL i2c_Start
|
||||
;;;101
|
||||
;;;102 /* 第7步:发起控制字节,高7bit是地址,bit0是读写控制位,0表示写,1表示读 */
|
||||
;;;103 i2c_SendByte(EE_DEV_ADDR | I2C_RD); /* 此处是读指令 */
|
||||
00003c 20a1 MOVS r0,#0xa1
|
||||
00003e f7fffffe BL i2c_SendByte
|
||||
;;;104
|
||||
;;;105 /* 第8步:发送ACK */
|
||||
;;;106 if (i2c_WaitAck() != 0)
|
||||
000042 f7fffffe BL i2c_WaitAck
|
||||
000046 b100 CBZ r0,|L2.74|
|
||||
;;;107 {
|
||||
;;;108 goto cmd_fail; /* EEPROM器件无应答 */
|
||||
000048 e015 B |L2.118|
|
||||
|L2.74|
|
||||
;;;109 }
|
||||
;;;110
|
||||
;;;111 /* 第9步:循环读取数据 */
|
||||
;;;112 for (i = 0; i < _usSize; i++)
|
||||
00004a 2400 MOVS r4,#0
|
||||
00004c e00c B |L2.104|
|
||||
|L2.78|
|
||||
;;;113 {
|
||||
;;;114 _pReadBuf[i] = i2c_ReadByte(); /* 读1个字节 */
|
||||
00004e f7fffffe BL i2c_ReadByte
|
||||
000052 5538 STRB r0,[r7,r4]
|
||||
;;;115
|
||||
;;;116 /* 每读完1个字节后,需要发送Ack, 最后一个字节不需要Ack,发Nack */
|
||||
;;;117 if (i != _usSize - 1)
|
||||
000054 1e70 SUBS r0,r6,#1
|
||||
000056 42a0 CMP r0,r4
|
||||
000058 d002 BEQ |L2.96|
|
||||
;;;118 {
|
||||
;;;119 i2c_Ack(); /* 中间字节读完后,CPU产生ACK信号(驱动SDA = 0) */
|
||||
00005a f7fffffe BL i2c_Ack
|
||||
00005e e001 B |L2.100|
|
||||
|L2.96|
|
||||
;;;120 }
|
||||
;;;121 else
|
||||
;;;122 {
|
||||
;;;123 i2c_NAck(); /* 最后1个字节读完后,CPU产生NACK信号(驱动SDA = 1) */
|
||||
000060 f7fffffe BL i2c_NAck
|
||||
|L2.100|
|
||||
000064 1c60 ADDS r0,r4,#1 ;112
|
||||
000066 b284 UXTH r4,r0 ;112
|
||||
|L2.104|
|
||||
000068 42b4 CMP r4,r6 ;112
|
||||
00006a dbf0 BLT |L2.78|
|
||||
;;;124 }
|
||||
;;;125 }
|
||||
;;;126 /* 发送I2C总线停止信号 */
|
||||
;;;127 i2c_Stop();
|
||||
00006c f7fffffe BL i2c_Stop
|
||||
;;;128 return 1; /* 执行成功 */
|
||||
000070 2001 MOVS r0,#1
|
||||
|L2.114|
|
||||
;;;129
|
||||
;;;130 cmd_fail: /* 命令执行失败后,切记发送停止信号,避免影响I2C总线上其他设备 */
|
||||
;;;131 /* 发送I2C总线停止信号 */
|
||||
;;;132 i2c_Stop();
|
||||
;;;133 return 0;
|
||||
;;;134 }
|
||||
000072 e8bd81f0 POP {r4-r8,pc}
|
||||
|L2.118|
|
||||
000076 f7fffffe BL i2c_Stop
|
||||
00007a 2000 MOVS r0,#0 ;133
|
||||
00007c e7f9 B |L2.114|
|
||||
;;;135
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.ee_WriteBytes||, CODE, READONLY, ALIGN=1
|
||||
|
||||
ee_WriteBytes PROC
|
||||
;;;145 */
|
||||
;;;146 uint8_t ee_WriteBytes(uint8_t *_pWriteBuf, uint16_t _usAddress, uint16_t _usSize)
|
||||
000000 e92d47f0 PUSH {r4-r10,lr}
|
||||
;;;147 {
|
||||
000004 4607 MOV r7,r0
|
||||
000006 4688 MOV r8,r1
|
||||
000008 4691 MOV r9,r2
|
||||
;;;148 uint16_t i, m;
|
||||
;;;149 uint16_t usAddr;
|
||||
;;;150
|
||||
;;;151 /*
|
||||
;;;152 写串行EEPROM不像读操作可以连续读取很多字节,每次写操作只能在同一个page。
|
||||
;;;153 对于24xx02,page size = 8
|
||||
;;;154 简单的处理方法为:按字节写操作模式,每写1个字节,都发送地址
|
||||
;;;155 为了提高连续写的效率: 本函数采用page wirte操作。
|
||||
;;;156 */
|
||||
;;;157
|
||||
;;;158 usAddr = _usAddress;
|
||||
00000a 4645 MOV r5,r8
|
||||
;;;159 for (i = 0; i < _usSize; i++)
|
||||
00000c 2400 MOVS r4,#0
|
||||
00000e e033 B |L3.120|
|
||||
|L3.16|
|
||||
;;;160 {
|
||||
;;;161 /* 当发送第1个字节或是页面首地址时,需要重新发起启动信号和地址 */
|
||||
;;;162 if ((i == 0) || (usAddr & (EE_PAGE_SIZE - 1)) == 0)
|
||||
000010 b114 CBZ r4,|L3.24|
|
||||
000012 f005003f AND r0,r5,#0x3f
|
||||
000016 bb20 CBNZ r0,|L3.98|
|
||||
|L3.24|
|
||||
;;;163 {
|
||||
;;;164 /* 第0步:发停止信号,启动内部写操作 */
|
||||
;;;165 i2c_Stop();
|
||||
000018 f7fffffe BL i2c_Stop
|
||||
;;;166
|
||||
;;;167 /* 通过检查器件应答的方式,判断内部写操作是否完成, 一般小于 10ms
|
||||
;;;168 CLK频率为200KHz时,查询次数为30次左右
|
||||
;;;169 */
|
||||
;;;170 for (m = 0; m < 1000; m++)
|
||||
00001c 2600 MOVS r6,#0
|
||||
00001e e00a B |L3.54|
|
||||
|L3.32|
|
||||
;;;171 {
|
||||
;;;172 /* 第1步:发起I2C总线启动信号 */
|
||||
;;;173 i2c_Start();
|
||||
000020 f7fffffe BL i2c_Start
|
||||
;;;174
|
||||
;;;175 /* 第2步:发起控制字节,高7bit是地址,bit0是读写控制位,0表示写,1表示读 */
|
||||
;;;176 i2c_SendByte(EE_DEV_ADDR | I2C_WR); /* 此处是写指令 */
|
||||
000024 20a0 MOVS r0,#0xa0
|
||||
000026 f7fffffe BL i2c_SendByte
|
||||
;;;177
|
||||
;;;178 /* 第3步:发送一个时钟,判断器件是否正确应答 */
|
||||
;;;179 if (i2c_WaitAck() == 0)
|
||||
00002a f7fffffe BL i2c_WaitAck
|
||||
00002e b900 CBNZ r0,|L3.50|
|
||||
;;;180 {
|
||||
;;;181 break;
|
||||
000030 e004 B |L3.60|
|
||||
|L3.50|
|
||||
000032 1c70 ADDS r0,r6,#1 ;170
|
||||
000034 b286 UXTH r6,r0 ;170
|
||||
|L3.54|
|
||||
000036 f5b67f7a CMP r6,#0x3e8 ;170
|
||||
00003a dbf1 BLT |L3.32|
|
||||
|L3.60|
|
||||
00003c bf00 NOP
|
||||
;;;182 }
|
||||
;;;183 }
|
||||
;;;184 if (m == 1000)
|
||||
00003e f5b67f7a CMP r6,#0x3e8
|
||||
000042 d100 BNE |L3.70|
|
||||
;;;185 {
|
||||
;;;186 goto cmd_fail; /* EEPROM器件写超时 */
|
||||
000044 e01f B |L3.134|
|
||||
|L3.70|
|
||||
;;;187 }
|
||||
;;;188
|
||||
;;;189 /* 第4步:发送字节地址,24C02只有256字节,因此1个字节就够了,如果是24C04以上,那么此处需要连发多个地址 */
|
||||
;;;190 if (EE_ADDR_BYTES == 1)
|
||||
;;;191 {
|
||||
;;;192 i2c_SendByte((uint8_t)usAddr);
|
||||
;;;193 if (i2c_WaitAck() != 0)
|
||||
;;;194 {
|
||||
;;;195 goto cmd_fail; /* EEPROM器件无应答 */
|
||||
;;;196 }
|
||||
;;;197 }
|
||||
;;;198 else
|
||||
;;;199 {
|
||||
;;;200 i2c_SendByte(usAddr >> 8);
|
||||
000046 1228 ASRS r0,r5,#8
|
||||
000048 f7fffffe BL i2c_SendByte
|
||||
;;;201 if (i2c_WaitAck() != 0)
|
||||
00004c f7fffffe BL i2c_WaitAck
|
||||
000050 b100 CBZ r0,|L3.84|
|
||||
;;;202 {
|
||||
;;;203 goto cmd_fail; /* EEPROM器件无应答 */
|
||||
000052 e018 B |L3.134|
|
||||
|L3.84|
|
||||
;;;204 }
|
||||
;;;205
|
||||
;;;206 i2c_SendByte(usAddr);
|
||||
000054 b2e8 UXTB r0,r5
|
||||
000056 f7fffffe BL i2c_SendByte
|
||||
;;;207 if (i2c_WaitAck() != 0)
|
||||
00005a f7fffffe BL i2c_WaitAck
|
||||
00005e b100 CBZ r0,|L3.98|
|
||||
;;;208 {
|
||||
;;;209 goto cmd_fail; /* EEPROM器件无应答 */
|
||||
000060 e011 B |L3.134|
|
||||
|L3.98|
|
||||
;;;210 }
|
||||
;;;211 }
|
||||
;;;212 }
|
||||
;;;213
|
||||
;;;214 /* 第6步:开始写入数据 */
|
||||
;;;215 i2c_SendByte(_pWriteBuf[i]);
|
||||
000062 5d38 LDRB r0,[r7,r4]
|
||||
000064 f7fffffe BL i2c_SendByte
|
||||
;;;216
|
||||
;;;217 /* 第7步:发送ACK */
|
||||
;;;218 if (i2c_WaitAck() != 0)
|
||||
000068 f7fffffe BL i2c_WaitAck
|
||||
00006c b100 CBZ r0,|L3.112|
|
||||
;;;219 {
|
||||
;;;220 goto cmd_fail; /* EEPROM器件无应答 */
|
||||
00006e e00a B |L3.134|
|
||||
|L3.112|
|
||||
;;;221 }
|
||||
;;;222
|
||||
;;;223 usAddr++; /* 地址增1 */
|
||||
000070 1c68 ADDS r0,r5,#1
|
||||
000072 b285 UXTH r5,r0
|
||||
000074 1c60 ADDS r0,r4,#1 ;159
|
||||
000076 b284 UXTH r4,r0 ;159
|
||||
|L3.120|
|
||||
000078 454c CMP r4,r9 ;159
|
||||
00007a dbc9 BLT |L3.16|
|
||||
;;;224 }
|
||||
;;;225
|
||||
;;;226 /* 命令执行成功,发送I2C总线停止信号 */
|
||||
;;;227 i2c_Stop();
|
||||
00007c f7fffffe BL i2c_Stop
|
||||
;;;228 return 1;
|
||||
000080 2001 MOVS r0,#1
|
||||
|L3.130|
|
||||
;;;229
|
||||
;;;230 cmd_fail: /* 命令执行失败后,切记发送停止信号,避免影响I2C总线上其他设备 */
|
||||
;;;231 /* 发送I2C总线停止信号 */
|
||||
;;;232 i2c_Stop();
|
||||
;;;233 return 0;
|
||||
;;;234 }
|
||||
000082 e8bd87f0 POP {r4-r10,pc}
|
||||
|L3.134|
|
||||
000086 f7fffffe BL i2c_Stop
|
||||
00008a 2000 MOVS r0,#0 ;233
|
||||
00008c e7f9 B |L3.130|
|
||||
;;;235
|
||||
ENDP
|
||||
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\src\\bsp_eeprom_24xx.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___17_bsp_eeprom_24xx_c_4eb00f1b____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___17_bsp_eeprom_24xx_c_4eb00f1b____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___17_bsp_eeprom_24xx_c_4eb00f1b____REVSH|
|
||||
#line 128
|
||||
|__asm___17_bsp_eeprom_24xx_c_4eb00f1b____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
158
Project/MDK-ARM/Flash/List/bsp_fpga_power.txt
Normal file
158
Project/MDK-ARM/Flash/List/bsp_fpga_power.txt
Normal file
@@ -0,0 +1,158 @@
|
||||
; generated by Component: ARM Compiler 5.05 update 1 (build 106) Tool: ArmCC [4d0efa]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp_fpga_power.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_fpga_power.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -IC:\Keil_v5\ARM\RV31\INC -IC:\Keil_v5\ARM\CMSIS\Include -IC:\Keil_v5\ARM\Inc\ST\STM32F10x -D__MICROLIB -D__UVISION_VERSION=514 -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp_fpga_power.crf ..\..\User\bsp\src\bsp_fpga_power.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.bsp_FpgaPowerCmd||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_FpgaPowerCmd PROC
|
||||
;;;53 //------------------------------------------------------------------------------
|
||||
;;;54 void bsp_FpgaPowerCmd(FunctionalState _NewState)
|
||||
000000 2801 CMP r0,#1
|
||||
;;;55 {
|
||||
;;;56 if(_NewState==ENABLE)
|
||||
000002 d103 BNE |L1.12|
|
||||
;;;57 {
|
||||
;;;58 GPIO_PORT_PWR->BSRR = GPIO_PIN_PWR;
|
||||
000004 0381 LSLS r1,r0,#14
|
||||
000006 4a05 LDR r2,|L1.28|
|
||||
000008 6011 STR r1,[r2,#0]
|
||||
00000a e005 B |L1.24|
|
||||
|L1.12|
|
||||
;;;59 }
|
||||
;;;60 else if(_NewState==DISABLE)
|
||||
00000c b920 CBNZ r0,|L1.24|
|
||||
;;;61 {
|
||||
;;;62 GPIO_PORT_PWR->BRR = GPIO_PIN_PWR;
|
||||
00000e f44f4180 MOV r1,#0x4000
|
||||
000012 4a02 LDR r2,|L1.28|
|
||||
000014 1d12 ADDS r2,r2,#4
|
||||
000016 6011 STR r1,[r2,#0]
|
||||
|L1.24|
|
||||
;;;63 }
|
||||
;;;64 }
|
||||
000018 4770 BX lr
|
||||
;;;65
|
||||
ENDP
|
||||
|
||||
00001a 0000 DCW 0x0000
|
||||
|L1.28|
|
||||
DCD 0x40011810
|
||||
|
||||
AREA ||i.bsp_FpgaPowerMainLoop||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_FpgaPowerMainLoop PROC
|
||||
;;;71 //------------------------------------------------------------------------------
|
||||
;;;72 void bsp_FpgaPowerMainLoop(uint16_t _delay_n_10ms)
|
||||
000000 b500 PUSH {lr}
|
||||
;;;73 {
|
||||
000002 4603 MOV r3,r0
|
||||
;;;74 static uint16_t cnt=0;
|
||||
;;;75 if(!s_gucStartOk)
|
||||
000004 4809 LDR r0,|L2.44|
|
||||
000006 7800 LDRB r0,[r0,#0] ; s_gucStartOk
|
||||
000008 b970 CBNZ r0,|L2.40|
|
||||
;;;76 {
|
||||
;;;77 if(++cnt>=_delay_n_10ms)
|
||||
00000a 4809 LDR r0,|L2.48|
|
||||
00000c 8800 LDRH r0,[r0,#0] ; cnt
|
||||
00000e 1c40 ADDS r0,r0,#1
|
||||
000010 b280 UXTH r0,r0
|
||||
000012 4907 LDR r1,|L2.48|
|
||||
000014 8008 STRH r0,[r1,#0]
|
||||
000016 4298 CMP r0,r3
|
||||
000018 db06 BLT |L2.40|
|
||||
;;;78 {
|
||||
;;;79 cnt = 0;
|
||||
00001a 2000 MOVS r0,#0
|
||||
00001c 8008 STRH r0,[r1,#0]
|
||||
;;;80 s_gucStartOk = 1;
|
||||
00001e 2001 MOVS r0,#1
|
||||
000020 4902 LDR r1,|L2.44|
|
||||
000022 7008 STRB r0,[r1,#0]
|
||||
;;;81 bsp_FpgaPowerCmd(ENABLE);
|
||||
000024 f7fffffe BL bsp_FpgaPowerCmd
|
||||
|L2.40|
|
||||
;;;82 }
|
||||
;;;83 }
|
||||
;;;84 }
|
||||
000028 bd00 POP {pc}
|
||||
;;;85
|
||||
ENDP
|
||||
|
||||
00002a 0000 DCW 0x0000
|
||||
|L2.44|
|
||||
DCD s_gucStartOk
|
||||
|L2.48|
|
||||
DCD ||cnt||
|
||||
|
||||
AREA ||i.bsp_InitFpgaPower||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_InitFpgaPower PROC
|
||||
;;;32 //------------------------------------------------------------------------------
|
||||
;;;33 void bsp_InitFpgaPower(void)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;34 {
|
||||
;;;35
|
||||
;;;36 GPIO_InitTypeDef GPIO_InitStructure;
|
||||
;;;37
|
||||
;;;38 // ´ò¿ªGPIOʱÖÓ
|
||||
;;;39 RCC_APB2PeriphClockCmd(RCC_ALL_FPGA_POWER, ENABLE);
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 2040 MOVS r0,#0x40
|
||||
000006 f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;40
|
||||
;;;41 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
00000a 2003 MOVS r0,#3
|
||||
00000c f88d0002 STRB r0,[sp,#2]
|
||||
;;;42 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // ÍÆÍìÊä³öģʽ
|
||||
000010 2010 MOVS r0,#0x10
|
||||
000012 f88d0003 STRB r0,[sp,#3]
|
||||
;;;43
|
||||
;;;44 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_PWR;
|
||||
000016 0280 LSLS r0,r0,#10
|
||||
000018 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;45 GPIO_Init(GPIO_PORT_PWR, &GPIO_InitStructure);
|
||||
00001c 4669 MOV r1,sp
|
||||
00001e 4802 LDR r0,|L3.40|
|
||||
000020 f7fffffe BL GPIO_Init
|
||||
;;;46 }
|
||||
000024 bd08 POP {r3,pc}
|
||||
;;;47
|
||||
ENDP
|
||||
|
||||
000026 0000 DCW 0x0000
|
||||
|L3.40|
|
||||
DCD 0x40011800
|
||||
|
||||
AREA ||.data||, DATA, ALIGN=1
|
||||
|
||||
s_gucStartOk
|
||||
000000 0000 DCB 0x00,0x00
|
||||
||cnt||
|
||||
000002 0000 DCW 0x0000
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\src\\bsp_fpga_power.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___16_bsp_fpga_power_c_e013a162____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___16_bsp_fpga_power_c_e013a162____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___16_bsp_fpga_power_c_e013a162____REVSH|
|
||||
#line 128
|
||||
|__asm___16_bsp_fpga_power_c_e013a162____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
505
Project/MDK-ARM/Flash/List/bsp_i2c_gpio.txt
Normal file
505
Project/MDK-ARM/Flash/List/bsp_i2c_gpio.txt
Normal file
@@ -0,0 +1,505 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp_i2c_gpio.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_i2c_gpio.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp_i2c_gpio.crf ..\..\User\bsp\src\bsp_i2c_gpio.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.bsp_InitI2C||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_InitI2C PROC
|
||||
;;;61 */
|
||||
;;;62 void bsp_InitI2C(void)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;63 {
|
||||
;;;64 GPIO_InitTypeDef GPIO_InitStructure;
|
||||
;;;65
|
||||
;;;66 RCC_APB2PeriphClockCmd(RCC_I2C_PORT, ENABLE); /* 打开GPIO时钟 */
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 2008 MOVS r0,#8
|
||||
000006 f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;67
|
||||
;;;68 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
00000a 2003 MOVS r0,#3
|
||||
00000c f88d0002 STRB r0,[sp,#2]
|
||||
;;;69 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; /* 开漏输出模式 */
|
||||
000010 2014 MOVS r0,#0x14
|
||||
000012 f88d0003 STRB r0,[sp,#3]
|
||||
;;;70
|
||||
;;;71 GPIO_InitStructure.GPIO_Pin = PIN_I2C_SCL;
|
||||
000016 2040 MOVS r0,#0x40
|
||||
000018 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;72 GPIO_Init(PORT_I2C_SCL, &GPIO_InitStructure);
|
||||
00001c 4669 MOV r1,sp
|
||||
00001e 4806 LDR r0,|L1.56|
|
||||
000020 f7fffffe BL GPIO_Init
|
||||
;;;73
|
||||
;;;74 GPIO_InitStructure.GPIO_Pin = PIN_I2C_SDA;
|
||||
000024 2080 MOVS r0,#0x80
|
||||
000026 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;75 GPIO_Init(PORT_I2C_SDA, &GPIO_InitStructure);
|
||||
00002a 4669 MOV r1,sp
|
||||
00002c 4802 LDR r0,|L1.56|
|
||||
00002e f7fffffe BL GPIO_Init
|
||||
;;;76
|
||||
;;;77 /* 给一个停止信号, 复位I2C总线上的所有设备到待机模式 */
|
||||
;;;78 i2c_Stop();
|
||||
000032 f7fffffe BL i2c_Stop
|
||||
;;;79 }
|
||||
000036 bd08 POP {r3,pc}
|
||||
;;;80
|
||||
ENDP
|
||||
|
||||
|L1.56|
|
||||
DCD 0x40010c00
|
||||
|
||||
AREA ||i.i2c_Ack||, CODE, READONLY, ALIGN=2
|
||||
|
||||
i2c_Ack PROC
|
||||
;;;248 */
|
||||
;;;249 void i2c_Ack(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;250 {
|
||||
;;;251 I2C_SDA_0(); /* CPU驱动SDA = 0 */
|
||||
000002 2080 MOVS r0,#0x80
|
||||
000004 4909 LDR r1,|L2.44|
|
||||
000006 6008 STR r0,[r1,#0]
|
||||
;;;252 i2c_Delay();
|
||||
000008 f7fffffe BL i2c_Delay
|
||||
;;;253 I2C_SCL_1(); /* CPU产生1个时钟 */
|
||||
00000c 2040 MOVS r0,#0x40
|
||||
00000e 4907 LDR r1,|L2.44|
|
||||
000010 1f09 SUBS r1,r1,#4
|
||||
000012 6008 STR r0,[r1,#0]
|
||||
;;;254 i2c_Delay();
|
||||
000014 f7fffffe BL i2c_Delay
|
||||
;;;255 I2C_SCL_0();
|
||||
000018 2040 MOVS r0,#0x40
|
||||
00001a 4904 LDR r1,|L2.44|
|
||||
00001c 6008 STR r0,[r1,#0]
|
||||
;;;256 i2c_Delay();
|
||||
00001e f7fffffe BL i2c_Delay
|
||||
;;;257 I2C_SDA_1(); /* CPU释放SDA总线 */
|
||||
000022 2080 MOVS r0,#0x80
|
||||
000024 4901 LDR r1,|L2.44|
|
||||
000026 1f09 SUBS r1,r1,#4
|
||||
000028 6008 STR r0,[r1,#0]
|
||||
;;;258 }
|
||||
00002a bd10 POP {r4,pc}
|
||||
;;;259
|
||||
ENDP
|
||||
|
||||
|L2.44|
|
||||
DCD 0x40010c14
|
||||
|
||||
AREA ||i.i2c_CheckDevice||, CODE, READONLY, ALIGN=2
|
||||
|
||||
i2c_CheckDevice PROC
|
||||
;;;285 */
|
||||
;;;286 uint8_t i2c_CheckDevice(uint8_t _Address)
|
||||
000000 b570 PUSH {r4-r6,lr}
|
||||
;;;287 {
|
||||
000002 4604 MOV r4,r0
|
||||
;;;288 uint8_t ucAck;
|
||||
;;;289
|
||||
;;;290 if (I2C_SDA_READ() && I2C_SCL_READ())
|
||||
000004 480b LDR r0,|L3.52|
|
||||
000006 6800 LDR r0,[r0,#0]
|
||||
000008 f0000080 AND r0,r0,#0x80
|
||||
00000c b180 CBZ r0,|L3.48|
|
||||
00000e 4809 LDR r0,|L3.52|
|
||||
000010 6800 LDR r0,[r0,#0]
|
||||
000012 f0000040 AND r0,r0,#0x40
|
||||
000016 b158 CBZ r0,|L3.48|
|
||||
;;;291 {
|
||||
;;;292 i2c_Start(); /* 发送启动信号 */
|
||||
000018 f7fffffe BL i2c_Start
|
||||
;;;293
|
||||
;;;294 /* 发送设备地址+读写控制bit(0 = w, 1 = r) bit7 先传 */
|
||||
;;;295 i2c_SendByte(_Address | I2C_WR);
|
||||
00001c 4620 MOV r0,r4
|
||||
00001e f7fffffe BL i2c_SendByte
|
||||
;;;296 ucAck = i2c_WaitAck(); /* 检测设备的ACK应答 */
|
||||
000022 f7fffffe BL i2c_WaitAck
|
||||
000026 4605 MOV r5,r0
|
||||
;;;297
|
||||
;;;298 i2c_Stop(); /* 发送停止信号 */
|
||||
000028 f7fffffe BL i2c_Stop
|
||||
;;;299
|
||||
;;;300 return ucAck;
|
||||
00002c 4628 MOV r0,r5
|
||||
|L3.46|
|
||||
;;;301 }
|
||||
;;;302 return 1; /* I2C总线异常 */
|
||||
;;;303 }
|
||||
00002e bd70 POP {r4-r6,pc}
|
||||
|L3.48|
|
||||
000030 2001 MOVS r0,#1 ;302
|
||||
000032 e7fc B |L3.46|
|
||||
;;;304
|
||||
ENDP
|
||||
|
||||
|L3.52|
|
||||
DCD 0x40010c08
|
||||
|
||||
AREA ||i.i2c_Delay||, CODE, READONLY, ALIGN=1
|
||||
|
||||
i2c_Delay PROC
|
||||
;;;88 */
|
||||
;;;89 static void i2c_Delay(void)
|
||||
000000 2000 MOVS r0,#0
|
||||
;;;90 {
|
||||
;;;91 uint8_t i;
|
||||
;;;92
|
||||
;;;93 /*
|
||||
;;;94 CPU主频168MHz时,在内部Flash运行, MDK工程不优化。用台式示波器观测波形。
|
||||
;;;95 循环次数为5时,SCL频率 = 1.78MHz (读耗时: 92ms, 读写正常,但是用示波器探头碰上就读写失败。时序接近临界)
|
||||
;;;96 循环次数为10时,SCL频率 = 1.1MHz (读耗时: 138ms, 读速度: 118724B/s)
|
||||
;;;97 循环次数为30时,SCL频率 = 440KHz, SCL高电平时间1.0us,SCL低电平时间1.2us
|
||||
;;;98
|
||||
;;;99 上拉电阻选择2.2K欧时,SCL上升沿时间约0.5us,如果选4.7K欧,则上升沿约1us
|
||||
;;;100
|
||||
;;;101 实际应用选择400KHz左右的速率即可
|
||||
;;;102 */
|
||||
;;;103 for (i = 0; i < 30; i++)
|
||||
000002 e001 B |L4.8|
|
||||
|L4.4|
|
||||
000004 1c41 ADDS r1,r0,#1
|
||||
000006 b2c8 UXTB r0,r1
|
||||
|L4.8|
|
||||
000008 281e CMP r0,#0x1e
|
||||
00000a dbfb BLT |L4.4|
|
||||
;;;104 ;
|
||||
;;;105 }
|
||||
00000c 4770 BX lr
|
||||
;;;106
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.i2c_NAck||, CODE, READONLY, ALIGN=2
|
||||
|
||||
i2c_NAck PROC
|
||||
;;;267 */
|
||||
;;;268 void i2c_NAck(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;269 {
|
||||
;;;270 I2C_SDA_1(); /* CPU驱动SDA = 1 */
|
||||
000002 2080 MOVS r0,#0x80
|
||||
000004 4907 LDR r1,|L5.36|
|
||||
000006 6008 STR r0,[r1,#0]
|
||||
;;;271 i2c_Delay();
|
||||
000008 f7fffffe BL i2c_Delay
|
||||
;;;272 I2C_SCL_1(); /* CPU产生1个时钟 */
|
||||
00000c 2040 MOVS r0,#0x40
|
||||
00000e 4905 LDR r1,|L5.36|
|
||||
000010 6008 STR r0,[r1,#0]
|
||||
;;;273 i2c_Delay();
|
||||
000012 f7fffffe BL i2c_Delay
|
||||
;;;274 I2C_SCL_0();
|
||||
000016 2040 MOVS r0,#0x40
|
||||
000018 4902 LDR r1,|L5.36|
|
||||
00001a 1d09 ADDS r1,r1,#4
|
||||
00001c 6008 STR r0,[r1,#0]
|
||||
;;;275 i2c_Delay();
|
||||
00001e f7fffffe BL i2c_Delay
|
||||
;;;276 }
|
||||
000022 bd10 POP {r4,pc}
|
||||
;;;277
|
||||
ENDP
|
||||
|
||||
|L5.36|
|
||||
DCD 0x40010c10
|
||||
|
||||
AREA ||i.i2c_ReadByte||, CODE, READONLY, ALIGN=2
|
||||
|
||||
i2c_ReadByte PROC
|
||||
;;;189 */
|
||||
;;;190 uint8_t i2c_ReadByte(void)
|
||||
000000 b570 PUSH {r4-r6,lr}
|
||||
;;;191 {
|
||||
;;;192 uint8_t i;
|
||||
;;;193 uint8_t value;
|
||||
;;;194
|
||||
;;;195 /* 读到第1个bit为数据的bit7 */
|
||||
;;;196 value = 0;
|
||||
000002 2400 MOVS r4,#0
|
||||
;;;197 for (i = 0; i < 8; i++)
|
||||
000004 2500 MOVS r5,#0
|
||||
000006 e016 B |L6.54|
|
||||
|L6.8|
|
||||
;;;198 {
|
||||
;;;199 value <<= 1;
|
||||
000008 0660 LSLS r0,r4,#25
|
||||
00000a 0e04 LSRS r4,r0,#24
|
||||
;;;200 I2C_SCL_1();
|
||||
00000c 2040 MOVS r0,#0x40
|
||||
00000e 490c LDR r1,|L6.64|
|
||||
000010 6008 STR r0,[r1,#0]
|
||||
;;;201 i2c_Delay();
|
||||
000012 f7fffffe BL i2c_Delay
|
||||
;;;202 if (I2C_SDA_READ())
|
||||
000016 480a LDR r0,|L6.64|
|
||||
000018 3808 SUBS r0,r0,#8
|
||||
00001a 6800 LDR r0,[r0,#0]
|
||||
00001c f0000080 AND r0,r0,#0x80
|
||||
000020 b108 CBZ r0,|L6.38|
|
||||
;;;203 {
|
||||
;;;204 value++;
|
||||
000022 1c60 ADDS r0,r4,#1
|
||||
000024 b2c4 UXTB r4,r0
|
||||
|L6.38|
|
||||
;;;205 }
|
||||
;;;206 I2C_SCL_0();
|
||||
000026 2040 MOVS r0,#0x40
|
||||
000028 4905 LDR r1,|L6.64|
|
||||
00002a 1d09 ADDS r1,r1,#4
|
||||
00002c 6008 STR r0,[r1,#0]
|
||||
;;;207 i2c_Delay();
|
||||
00002e f7fffffe BL i2c_Delay
|
||||
000032 1c68 ADDS r0,r5,#1 ;197
|
||||
000034 b2c5 UXTB r5,r0 ;197
|
||||
|L6.54|
|
||||
000036 2d08 CMP r5,#8 ;197
|
||||
000038 dbe6 BLT |L6.8|
|
||||
;;;208 }
|
||||
;;;209 return value;
|
||||
00003a 4620 MOV r0,r4
|
||||
;;;210 }
|
||||
00003c bd70 POP {r4-r6,pc}
|
||||
;;;211
|
||||
ENDP
|
||||
|
||||
00003e 0000 DCW 0x0000
|
||||
|L6.64|
|
||||
DCD 0x40010c10
|
||||
|
||||
AREA ||i.i2c_SendByte||, CODE, READONLY, ALIGN=2
|
||||
|
||||
i2c_SendByte PROC
|
||||
;;;153 */
|
||||
;;;154 void i2c_SendByte(uint8_t _ucByte)
|
||||
000000 b570 PUSH {r4-r6,lr}
|
||||
;;;155 {
|
||||
000002 4604 MOV r4,r0
|
||||
;;;156 uint8_t i;
|
||||
;;;157
|
||||
;;;158 /* 先发送字节的高位bit7 */
|
||||
;;;159 for (i = 0; i < 8; i++)
|
||||
000004 2500 MOVS r5,#0
|
||||
000006 e020 B |L7.74|
|
||||
|L7.8|
|
||||
;;;160 {
|
||||
;;;161 if (_ucByte & 0x80)
|
||||
000008 f0040080 AND r0,r4,#0x80
|
||||
00000c b118 CBZ r0,|L7.22|
|
||||
;;;162 {
|
||||
;;;163 I2C_SDA_1();
|
||||
00000e 2080 MOVS r0,#0x80
|
||||
000010 490f LDR r1,|L7.80|
|
||||
000012 6008 STR r0,[r1,#0]
|
||||
000014 e003 B |L7.30|
|
||||
|L7.22|
|
||||
;;;164 }
|
||||
;;;165 else
|
||||
;;;166 {
|
||||
;;;167 I2C_SDA_0();
|
||||
000016 2080 MOVS r0,#0x80
|
||||
000018 490d LDR r1,|L7.80|
|
||||
00001a 1d09 ADDS r1,r1,#4
|
||||
00001c 6008 STR r0,[r1,#0]
|
||||
|L7.30|
|
||||
;;;168 }
|
||||
;;;169 i2c_Delay();
|
||||
00001e f7fffffe BL i2c_Delay
|
||||
;;;170 I2C_SCL_1();
|
||||
000022 2040 MOVS r0,#0x40
|
||||
000024 490a LDR r1,|L7.80|
|
||||
000026 6008 STR r0,[r1,#0]
|
||||
;;;171 i2c_Delay();
|
||||
000028 f7fffffe BL i2c_Delay
|
||||
;;;172 I2C_SCL_0();
|
||||
00002c 2040 MOVS r0,#0x40
|
||||
00002e 4908 LDR r1,|L7.80|
|
||||
000030 1d09 ADDS r1,r1,#4
|
||||
000032 6008 STR r0,[r1,#0]
|
||||
;;;173 if (i == 7)
|
||||
000034 2d07 CMP r5,#7
|
||||
000036 d102 BNE |L7.62|
|
||||
;;;174 {
|
||||
;;;175 I2C_SDA_1(); // 释放总线
|
||||
000038 2080 MOVS r0,#0x80
|
||||
00003a 1f09 SUBS r1,r1,#4
|
||||
00003c 6008 STR r0,[r1,#0]
|
||||
|L7.62|
|
||||
;;;176 }
|
||||
;;;177 _ucByte <<= 1; /* 左移一个bit */
|
||||
00003e 0660 LSLS r0,r4,#25
|
||||
000040 0e04 LSRS r4,r0,#24
|
||||
;;;178 i2c_Delay();
|
||||
000042 f7fffffe BL i2c_Delay
|
||||
000046 1c68 ADDS r0,r5,#1 ;159
|
||||
000048 b2c5 UXTB r5,r0 ;159
|
||||
|L7.74|
|
||||
00004a 2d08 CMP r5,#8 ;159
|
||||
00004c dbdc BLT |L7.8|
|
||||
;;;179 }
|
||||
;;;180 }
|
||||
00004e bd70 POP {r4-r6,pc}
|
||||
;;;181
|
||||
ENDP
|
||||
|
||||
|L7.80|
|
||||
DCD 0x40010c10
|
||||
|
||||
AREA ||i.i2c_Start||, CODE, READONLY, ALIGN=2
|
||||
|
||||
i2c_Start PROC
|
||||
;;;114 */
|
||||
;;;115 void i2c_Start(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;116 {
|
||||
;;;117 /* 当SCL高电平时,SDA出现一个下跳沿表示I2C总线启动信号 */
|
||||
;;;118 I2C_SDA_1();
|
||||
000002 2080 MOVS r0,#0x80
|
||||
000004 4909 LDR r1,|L8.44|
|
||||
000006 6008 STR r0,[r1,#0]
|
||||
;;;119 I2C_SCL_1();
|
||||
000008 2040 MOVS r0,#0x40
|
||||
00000a 6008 STR r0,[r1,#0]
|
||||
;;;120 i2c_Delay();
|
||||
00000c f7fffffe BL i2c_Delay
|
||||
;;;121 I2C_SDA_0();
|
||||
000010 2080 MOVS r0,#0x80
|
||||
000012 4906 LDR r1,|L8.44|
|
||||
000014 1d09 ADDS r1,r1,#4
|
||||
000016 6008 STR r0,[r1,#0]
|
||||
;;;122 i2c_Delay();
|
||||
000018 f7fffffe BL i2c_Delay
|
||||
;;;123
|
||||
;;;124 I2C_SCL_0();
|
||||
00001c 2040 MOVS r0,#0x40
|
||||
00001e 4903 LDR r1,|L8.44|
|
||||
000020 1d09 ADDS r1,r1,#4
|
||||
000022 6008 STR r0,[r1,#0]
|
||||
;;;125 i2c_Delay();
|
||||
000024 f7fffffe BL i2c_Delay
|
||||
;;;126 }
|
||||
000028 bd10 POP {r4,pc}
|
||||
;;;127
|
||||
ENDP
|
||||
|
||||
00002a 0000 DCW 0x0000
|
||||
|L8.44|
|
||||
DCD 0x40010c10
|
||||
|
||||
AREA ||i.i2c_Stop||, CODE, READONLY, ALIGN=2
|
||||
|
||||
i2c_Stop PROC
|
||||
;;;135 */
|
||||
;;;136 void i2c_Stop(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;137 {
|
||||
;;;138 /* 当SCL高电平时,SDA出现一个上跳沿表示I2C总线停止信号 */
|
||||
;;;139 I2C_SDA_0();
|
||||
000002 2080 MOVS r0,#0x80
|
||||
000004 4906 LDR r1,|L9.32|
|
||||
000006 6008 STR r0,[r1,#0]
|
||||
;;;140 I2C_SCL_1();
|
||||
000008 2040 MOVS r0,#0x40
|
||||
00000a 1f09 SUBS r1,r1,#4
|
||||
00000c 6008 STR r0,[r1,#0]
|
||||
;;;141 i2c_Delay();
|
||||
00000e f7fffffe BL i2c_Delay
|
||||
;;;142 I2C_SDA_1();
|
||||
000012 2080 MOVS r0,#0x80
|
||||
000014 4902 LDR r1,|L9.32|
|
||||
000016 1f09 SUBS r1,r1,#4
|
||||
000018 6008 STR r0,[r1,#0]
|
||||
;;;143 i2c_Delay();
|
||||
00001a f7fffffe BL i2c_Delay
|
||||
;;;144 }
|
||||
00001e bd10 POP {r4,pc}
|
||||
;;;145
|
||||
ENDP
|
||||
|
||||
|L9.32|
|
||||
DCD 0x40010c14
|
||||
|
||||
AREA ||i.i2c_WaitAck||, CODE, READONLY, ALIGN=2
|
||||
|
||||
i2c_WaitAck PROC
|
||||
;;;219 */
|
||||
;;;220 uint8_t i2c_WaitAck(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;221 {
|
||||
;;;222 uint8_t re;
|
||||
;;;223
|
||||
;;;224 I2C_SDA_1(); /* CPU释放SDA总线 */
|
||||
000002 2080 MOVS r0,#0x80
|
||||
000004 490c LDR r1,|L10.56|
|
||||
000006 6008 STR r0,[r1,#0]
|
||||
;;;225 i2c_Delay();
|
||||
000008 f7fffffe BL i2c_Delay
|
||||
;;;226 I2C_SCL_1(); /* CPU驱动SCL = 1, 此时器件会返回ACK应答 */
|
||||
00000c 2040 MOVS r0,#0x40
|
||||
00000e 490a LDR r1,|L10.56|
|
||||
000010 6008 STR r0,[r1,#0]
|
||||
;;;227 i2c_Delay();
|
||||
000012 f7fffffe BL i2c_Delay
|
||||
;;;228 if (I2C_SDA_READ()) /* CPU读取SDA口线状态 */
|
||||
000016 4808 LDR r0,|L10.56|
|
||||
000018 3808 SUBS r0,r0,#8
|
||||
00001a 6800 LDR r0,[r0,#0]
|
||||
00001c f0000080 AND r0,r0,#0x80
|
||||
000020 b108 CBZ r0,|L10.38|
|
||||
;;;229 {
|
||||
;;;230 re = 1;
|
||||
000022 2401 MOVS r4,#1
|
||||
000024 e000 B |L10.40|
|
||||
|L10.38|
|
||||
;;;231 }
|
||||
;;;232 else
|
||||
;;;233 {
|
||||
;;;234 re = 0;
|
||||
000026 2400 MOVS r4,#0
|
||||
|L10.40|
|
||||
;;;235 }
|
||||
;;;236 I2C_SCL_0();
|
||||
000028 2040 MOVS r0,#0x40
|
||||
00002a 4903 LDR r1,|L10.56|
|
||||
00002c 1d09 ADDS r1,r1,#4
|
||||
00002e 6008 STR r0,[r1,#0]
|
||||
;;;237 i2c_Delay();
|
||||
000030 f7fffffe BL i2c_Delay
|
||||
;;;238 return re;
|
||||
000034 4620 MOV r0,r4
|
||||
;;;239 }
|
||||
000036 bd10 POP {r4,pc}
|
||||
;;;240
|
||||
ENDP
|
||||
|
||||
|L10.56|
|
||||
DCD 0x40010c10
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\src\\bsp_i2c_gpio.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___14_bsp_i2c_gpio_c_ec180c52____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___14_bsp_i2c_gpio_c_ec180c52____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___14_bsp_i2c_gpio_c_ec180c52____REVSH|
|
||||
#line 128
|
||||
|__asm___14_bsp_i2c_gpio_c_ec180c52____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
748
Project/MDK-ARM/Flash/List/bsp_key.txt
Normal file
748
Project/MDK-ARM/Flash/List/bsp_key.txt
Normal file
@@ -0,0 +1,748 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp_key.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_key.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp_key.crf ..\..\User\bsp\src\bsp_key.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.IsKeyDown1||, CODE, READONLY, ALIGN=2
|
||||
|
||||
IsKeyDown1 PROC
|
||||
;;;118 #else
|
||||
;;;119 uint8_t IsKeyDown1(void)
|
||||
000000 4804 LDR r0,|L1.20|
|
||||
;;;120 {
|
||||
;;;121 if ((GPIO_PORT_K6->IDR & GPIO_PIN_K6) == 0)
|
||||
000002 6800 LDR r0,[r0,#0]
|
||||
000004 f0000008 AND r0,r0,#8
|
||||
000008 b908 CBNZ r0,|L1.14|
|
||||
;;;122 return 1;
|
||||
00000a 2001 MOVS r0,#1
|
||||
|L1.12|
|
||||
;;;123 else
|
||||
;;;124 return 0;
|
||||
;;;125 } // 复位键
|
||||
00000c 4770 BX lr
|
||||
|L1.14|
|
||||
00000e 2000 MOVS r0,#0 ;124
|
||||
000010 e7fc B |L1.12|
|
||||
;;;126 // 被main函数调用
|
||||
ENDP
|
||||
|
||||
000012 0000 DCW 0x0000
|
||||
|L1.20|
|
||||
DCD 0x40010808
|
||||
|
||||
AREA ||i.IsKeyDown2||, CODE, READONLY, ALIGN=2
|
||||
|
||||
IsKeyDown2 PROC
|
||||
;;;126 // 被main函数调用
|
||||
;;;127 uint8_t IsKeyDown2(void)
|
||||
000000 4804 LDR r0,|L2.20|
|
||||
;;;128 {
|
||||
;;;129 if ((GPIO_PORT_K1->IDR & GPIO_PIN_K1) == 0)
|
||||
000002 6800 LDR r0,[r0,#0]
|
||||
000004 f0000004 AND r0,r0,#4
|
||||
000008 b908 CBNZ r0,|L2.14|
|
||||
;;;130 return 1;
|
||||
00000a 2001 MOVS r0,#1
|
||||
|L2.12|
|
||||
;;;131 else
|
||||
;;;132 return 0;
|
||||
;;;133 } // 模式切换键
|
||||
00000c 4770 BX lr
|
||||
|L2.14|
|
||||
00000e 2000 MOVS r0,#0 ;132
|
||||
000010 e7fc B |L2.12|
|
||||
;;;134 uint8_t IsKeyDown3(void)
|
||||
ENDP
|
||||
|
||||
000012 0000 DCW 0x0000
|
||||
|L2.20|
|
||||
DCD 0x40011808
|
||||
|
||||
AREA ||i.IsKeyDown3||, CODE, READONLY, ALIGN=2
|
||||
|
||||
IsKeyDown3 PROC
|
||||
;;;133 } // 模式切换键
|
||||
;;;134 uint8_t IsKeyDown3(void)
|
||||
000000 4804 LDR r0,|L3.20|
|
||||
;;;135 {
|
||||
;;;136 if ((GPIO_PORT_K2->IDR & GPIO_PIN_K2) == 0)
|
||||
000002 6800 LDR r0,[r0,#0]
|
||||
000004 f0000008 AND r0,r0,#8
|
||||
000008 b908 CBNZ r0,|L3.14|
|
||||
;;;137 return 1;
|
||||
00000a 2001 MOVS r0,#1
|
||||
|L3.12|
|
||||
;;;138 else
|
||||
;;;139 return 0;
|
||||
;;;140 } // 模式切换键
|
||||
00000c 4770 BX lr
|
||||
|L3.14|
|
||||
00000e 2000 MOVS r0,#0 ;139
|
||||
000010 e7fc B |L3.12|
|
||||
;;;141 // static uint8_t IsKeyDown3(void) {if ((GPIO_PORT_K3->IDR & GPIO_PIN_K3) == 0) return 1;else return 0;}
|
||||
ENDP
|
||||
|
||||
000012 0000 DCW 0x0000
|
||||
|L3.20|
|
||||
DCD 0x40011808
|
||||
|
||||
AREA ||i.bsp_ClearKey||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_ClearKey PROC
|
||||
;;;279 */
|
||||
;;;280 void bsp_ClearKey(void)
|
||||
000000 4802 LDR r0,|L4.12|
|
||||
;;;281 {
|
||||
;;;282 s_tKey.Read = s_tKey.Write;
|
||||
000002 7ac0 LDRB r0,[r0,#0xb] ; s_tKey
|
||||
000004 4901 LDR r1,|L4.12|
|
||||
000006 7288 STRB r0,[r1,#0xa]
|
||||
;;;283 }
|
||||
000008 4770 BX lr
|
||||
;;;284
|
||||
ENDP
|
||||
|
||||
00000a 0000 DCW 0x0000
|
||||
|L4.12|
|
||||
DCD s_tKey
|
||||
|
||||
AREA ||i.bsp_DetectKey||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_DetectKey PROC
|
||||
;;;392 */
|
||||
;;;393 static void bsp_DetectKey(uint8_t i)
|
||||
000000 b570 PUSH {r4-r6,lr}
|
||||
;;;394 {
|
||||
000002 4605 MOV r5,r0
|
||||
;;;395 KEY_T *pBtn;
|
||||
;;;396
|
||||
;;;397 /*
|
||||
;;;398 如果没有初始化按键函数,则报错
|
||||
;;;399 if (s_tBtn[i].IsKeyDownFunc == 0)
|
||||
;;;400 {
|
||||
;;;401 printf("Fault : DetectButton(), s_tBtn[i].IsKeyDownFunc undefine");
|
||||
;;;402 }
|
||||
;;;403 */
|
||||
;;;404
|
||||
;;;405 pBtn = &s_tBtn[i];
|
||||
000004 4830 LDR r0,|L5.200|
|
||||
000006 eb001405 ADD r4,r0,r5,LSL #4
|
||||
;;;406 if (pBtn->IsKeyDownFunc())
|
||||
00000a 6820 LDR r0,[r4,#0]
|
||||
00000c 4780 BLX r0
|
||||
00000e 2800 CMP r0,#0
|
||||
000010 d03e BEQ |L5.144|
|
||||
;;;407 {
|
||||
;;;408 if (pBtn->Count < KEY_FILTER_TIME)
|
||||
000012 7920 LDRB r0,[r4,#4]
|
||||
000014 2801 CMP r0,#1
|
||||
000016 da02 BGE |L5.30|
|
||||
;;;409 {
|
||||
;;;410 pBtn->Count = KEY_FILTER_TIME;
|
||||
000018 2001 MOVS r0,#1
|
||||
00001a 7120 STRB r0,[r4,#4]
|
||||
00001c e052 B |L5.196|
|
||||
|L5.30|
|
||||
;;;411 }
|
||||
;;;412 else if (pBtn->Count < 2 * KEY_FILTER_TIME)
|
||||
00001e 7920 LDRB r0,[r4,#4]
|
||||
000020 2802 CMP r0,#2
|
||||
000022 da03 BGE |L5.44|
|
||||
;;;413 {
|
||||
;;;414 pBtn->Count++;
|
||||
000024 7920 LDRB r0,[r4,#4]
|
||||
000026 1c40 ADDS r0,r0,#1
|
||||
000028 7120 STRB r0,[r4,#4]
|
||||
00002a e04b B |L5.196|
|
||||
|L5.44|
|
||||
;;;415 }
|
||||
;;;416 else
|
||||
;;;417 {
|
||||
;;;418 if (pBtn->State == 0)
|
||||
00002c 7aa0 LDRB r0,[r4,#0xa]
|
||||
00002e b938 CBNZ r0,|L5.64|
|
||||
;;;419 {
|
||||
;;;420 pBtn->State = 1;
|
||||
000030 2001 MOVS r0,#1
|
||||
000032 72a0 STRB r0,[r4,#0xa]
|
||||
;;;421
|
||||
;;;422 /* 发送按钮按下的消息 */
|
||||
;;;423 bsp_PutKey((uint8_t)(3 * i + 1));
|
||||
000034 eb050145 ADD r1,r5,r5,LSL #1
|
||||
000038 1c49 ADDS r1,r1,#1
|
||||
00003a b2c8 UXTB r0,r1
|
||||
00003c f7fffffe BL bsp_PutKey
|
||||
|L5.64|
|
||||
;;;424 }
|
||||
;;;425
|
||||
;;;426 if (pBtn->LongTime > 0)
|
||||
000040 8920 LDRH r0,[r4,#8]
|
||||
000042 2800 CMP r0,#0
|
||||
000044 dd3e BLE |L5.196|
|
||||
;;;427 {
|
||||
;;;428 if (pBtn->LongCount < pBtn->LongTime)
|
||||
000046 88e0 LDRH r0,[r4,#6]
|
||||
000048 8921 LDRH r1,[r4,#8]
|
||||
00004a 4288 CMP r0,r1
|
||||
00004c da0d BGE |L5.106|
|
||||
;;;429 {
|
||||
;;;430 /* 发送按钮持续按下的消息 */
|
||||
;;;431 if (++pBtn->LongCount == pBtn->LongTime)
|
||||
00004e 88e0 LDRH r0,[r4,#6]
|
||||
000050 1c40 ADDS r0,r0,#1
|
||||
000052 b280 UXTH r0,r0
|
||||
000054 80e0 STRH r0,[r4,#6]
|
||||
000056 8921 LDRH r1,[r4,#8]
|
||||
000058 4288 CMP r0,r1
|
||||
00005a d133 BNE |L5.196|
|
||||
;;;432 {
|
||||
;;;433 /* 键值放入按键FIFO */
|
||||
;;;434 bsp_PutKey((uint8_t)(3 * i + 3));
|
||||
00005c eb050145 ADD r1,r5,r5,LSL #1
|
||||
000060 1cc9 ADDS r1,r1,#3
|
||||
000062 b2c8 UXTB r0,r1
|
||||
000064 f7fffffe BL bsp_PutKey
|
||||
000068 e02c B |L5.196|
|
||||
|L5.106|
|
||||
;;;435 }
|
||||
;;;436 }
|
||||
;;;437 else
|
||||
;;;438 {
|
||||
;;;439 if (pBtn->RepeatSpeed > 0)
|
||||
00006a 7ae0 LDRB r0,[r4,#0xb]
|
||||
00006c 2800 CMP r0,#0
|
||||
00006e dd29 BLE |L5.196|
|
||||
;;;440 {
|
||||
;;;441 if (++pBtn->RepeatCount >= pBtn->RepeatSpeed)
|
||||
000070 7b20 LDRB r0,[r4,#0xc]
|
||||
000072 1c40 ADDS r0,r0,#1
|
||||
000074 b2c0 UXTB r0,r0
|
||||
000076 7320 STRB r0,[r4,#0xc]
|
||||
000078 7ae1 LDRB r1,[r4,#0xb]
|
||||
00007a 4288 CMP r0,r1
|
||||
00007c db22 BLT |L5.196|
|
||||
;;;442 {
|
||||
;;;443 pBtn->RepeatCount = 0;
|
||||
00007e 2000 MOVS r0,#0
|
||||
000080 7320 STRB r0,[r4,#0xc]
|
||||
;;;444 /* 常按键后,每隔10ms发送1个按键 */
|
||||
;;;445 bsp_PutKey((uint8_t)(3 * i + 1));
|
||||
000082 eb050145 ADD r1,r5,r5,LSL #1
|
||||
000086 1c49 ADDS r1,r1,#1
|
||||
000088 b2c8 UXTB r0,r1
|
||||
00008a f7fffffe BL bsp_PutKey
|
||||
00008e e019 B |L5.196|
|
||||
|L5.144|
|
||||
;;;446 }
|
||||
;;;447 }
|
||||
;;;448 }
|
||||
;;;449 }
|
||||
;;;450 }
|
||||
;;;451 }
|
||||
;;;452 else
|
||||
;;;453 {
|
||||
;;;454 if (pBtn->Count > KEY_FILTER_TIME)
|
||||
000090 7920 LDRB r0,[r4,#4]
|
||||
000092 2801 CMP r0,#1
|
||||
000094 dd02 BLE |L5.156|
|
||||
;;;455 {
|
||||
;;;456 pBtn->Count = KEY_FILTER_TIME;
|
||||
000096 2001 MOVS r0,#1
|
||||
000098 7120 STRB r0,[r4,#4]
|
||||
00009a e010 B |L5.190|
|
||||
|L5.156|
|
||||
;;;457 }
|
||||
;;;458 else if (pBtn->Count != 0)
|
||||
00009c 7920 LDRB r0,[r4,#4]
|
||||
00009e b118 CBZ r0,|L5.168|
|
||||
;;;459 {
|
||||
;;;460 pBtn->Count--;
|
||||
0000a0 7920 LDRB r0,[r4,#4]
|
||||
0000a2 1e40 SUBS r0,r0,#1
|
||||
0000a4 7120 STRB r0,[r4,#4]
|
||||
0000a6 e00a B |L5.190|
|
||||
|L5.168|
|
||||
;;;461 }
|
||||
;;;462 else
|
||||
;;;463 {
|
||||
;;;464 if (pBtn->State == 1)
|
||||
0000a8 7aa0 LDRB r0,[r4,#0xa]
|
||||
0000aa 2801 CMP r0,#1
|
||||
0000ac d107 BNE |L5.190|
|
||||
;;;465 {
|
||||
;;;466 pBtn->State = 0;
|
||||
0000ae 2000 MOVS r0,#0
|
||||
0000b0 72a0 STRB r0,[r4,#0xa]
|
||||
;;;467
|
||||
;;;468 /* 发送按钮弹起的消息 */
|
||||
;;;469 bsp_PutKey((uint8_t)(3 * i + 2));
|
||||
0000b2 eb050145 ADD r1,r5,r5,LSL #1
|
||||
0000b6 1c89 ADDS r1,r1,#2
|
||||
0000b8 b2c8 UXTB r0,r1
|
||||
0000ba f7fffffe BL bsp_PutKey
|
||||
|L5.190|
|
||||
;;;470 }
|
||||
;;;471 }
|
||||
;;;472
|
||||
;;;473 pBtn->LongCount = 0;
|
||||
0000be 2000 MOVS r0,#0
|
||||
0000c0 80e0 STRH r0,[r4,#6]
|
||||
;;;474 pBtn->RepeatCount = 0;
|
||||
0000c2 7320 STRB r0,[r4,#0xc]
|
||||
|L5.196|
|
||||
;;;475 }
|
||||
;;;476 }
|
||||
0000c4 bd70 POP {r4-r6,pc}
|
||||
;;;477
|
||||
ENDP
|
||||
|
||||
0000c6 0000 DCW 0x0000
|
||||
|L5.200|
|
||||
DCD s_tBtn
|
||||
|
||||
AREA ||i.bsp_GetKey||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_GetKey PROC
|
||||
;;;193 */
|
||||
;;;194 uint8_t bsp_GetKey(void)
|
||||
000000 480b LDR r0,|L6.48|
|
||||
;;;195 {
|
||||
;;;196 uint8_t ret;
|
||||
;;;197
|
||||
;;;198 if (s_tKey.Read == s_tKey.Write)
|
||||
000002 7a80 LDRB r0,[r0,#0xa] ; s_tKey
|
||||
000004 4a0a LDR r2,|L6.48|
|
||||
000006 7ad2 LDRB r2,[r2,#0xb] ; s_tKey
|
||||
000008 4290 CMP r0,r2
|
||||
00000a d101 BNE |L6.16|
|
||||
;;;199 {
|
||||
;;;200 return KEY_NONE;
|
||||
00000c 2000 MOVS r0,#0
|
||||
|L6.14|
|
||||
;;;201 }
|
||||
;;;202 else
|
||||
;;;203 {
|
||||
;;;204 ret = s_tKey.Buf[s_tKey.Read];
|
||||
;;;205
|
||||
;;;206 if (++s_tKey.Read >= KEY_FIFO_SIZE)
|
||||
;;;207 {
|
||||
;;;208 s_tKey.Read = 0;
|
||||
;;;209 }
|
||||
;;;210 return ret;
|
||||
;;;211 }
|
||||
;;;212 }
|
||||
00000e 4770 BX lr
|
||||
|L6.16|
|
||||
000010 4807 LDR r0,|L6.48|
|
||||
000012 7a80 LDRB r0,[r0,#0xa] ;204 ; s_tKey
|
||||
000014 4a06 LDR r2,|L6.48|
|
||||
000016 5c11 LDRB r1,[r2,r0] ;204
|
||||
000018 4610 MOV r0,r2 ;206
|
||||
00001a 7a80 LDRB r0,[r0,#0xa] ;206 ; s_tKey
|
||||
00001c 1c40 ADDS r0,r0,#1 ;206
|
||||
00001e b2c0 UXTB r0,r0 ;206
|
||||
000020 7290 STRB r0,[r2,#0xa] ;206
|
||||
000022 280a CMP r0,#0xa ;206
|
||||
000024 db01 BLT |L6.42|
|
||||
000026 2000 MOVS r0,#0 ;208
|
||||
000028 7290 STRB r0,[r2,#0xa] ;208
|
||||
|L6.42|
|
||||
00002a 4608 MOV r0,r1 ;210
|
||||
00002c e7ef B |L6.14|
|
||||
;;;213
|
||||
ENDP
|
||||
|
||||
00002e 0000 DCW 0x0000
|
||||
|L6.48|
|
||||
DCD s_tKey
|
||||
|
||||
AREA ||i.bsp_GetKey2||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_GetKey2 PROC
|
||||
;;;221 */
|
||||
;;;222 uint8_t bsp_GetKey2(void)
|
||||
000000 480b LDR r0,|L7.48|
|
||||
;;;223 {
|
||||
;;;224 uint8_t ret;
|
||||
;;;225
|
||||
;;;226 if (s_tKey.Read2 == s_tKey.Write)
|
||||
000002 7b00 LDRB r0,[r0,#0xc] ; s_tKey
|
||||
000004 4a0a LDR r2,|L7.48|
|
||||
000006 7ad2 LDRB r2,[r2,#0xb] ; s_tKey
|
||||
000008 4290 CMP r0,r2
|
||||
00000a d101 BNE |L7.16|
|
||||
;;;227 {
|
||||
;;;228 return KEY_NONE;
|
||||
00000c 2000 MOVS r0,#0
|
||||
|L7.14|
|
||||
;;;229 }
|
||||
;;;230 else
|
||||
;;;231 {
|
||||
;;;232 ret = s_tKey.Buf[s_tKey.Read2];
|
||||
;;;233
|
||||
;;;234 if (++s_tKey.Read2 >= KEY_FIFO_SIZE)
|
||||
;;;235 {
|
||||
;;;236 s_tKey.Read2 = 0;
|
||||
;;;237 }
|
||||
;;;238 return ret;
|
||||
;;;239 }
|
||||
;;;240 }
|
||||
00000e 4770 BX lr
|
||||
|L7.16|
|
||||
000010 4807 LDR r0,|L7.48|
|
||||
000012 7b00 LDRB r0,[r0,#0xc] ;232 ; s_tKey
|
||||
000014 4a06 LDR r2,|L7.48|
|
||||
000016 5c11 LDRB r1,[r2,r0] ;232
|
||||
000018 4610 MOV r0,r2 ;234
|
||||
00001a 7b00 LDRB r0,[r0,#0xc] ;234 ; s_tKey
|
||||
00001c 1c40 ADDS r0,r0,#1 ;234
|
||||
00001e b2c0 UXTB r0,r0 ;234
|
||||
000020 7310 STRB r0,[r2,#0xc] ;234
|
||||
000022 280a CMP r0,#0xa ;234
|
||||
000024 db01 BLT |L7.42|
|
||||
000026 2000 MOVS r0,#0 ;236
|
||||
000028 7310 STRB r0,[r2,#0xc] ;236
|
||||
|L7.42|
|
||||
00002a 4608 MOV r0,r1 ;238
|
||||
00002c e7ef B |L7.14|
|
||||
;;;241
|
||||
ENDP
|
||||
|
||||
00002e 0000 DCW 0x0000
|
||||
|L7.48|
|
||||
DCD s_tKey
|
||||
|
||||
AREA ||i.bsp_GetKeyState||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_GetKeyState PROC
|
||||
;;;249 */
|
||||
;;;250 uint8_t bsp_GetKeyState(KEY_ID_E _ucKeyID)
|
||||
000000 4601 MOV r1,r0
|
||||
;;;251 {
|
||||
;;;252 return s_tBtn[_ucKeyID].State;
|
||||
000002 4802 LDR r0,|L8.12|
|
||||
000004 eb001001 ADD r0,r0,r1,LSL #4
|
||||
000008 7a80 LDRB r0,[r0,#0xa]
|
||||
;;;253 }
|
||||
00000a 4770 BX lr
|
||||
;;;254
|
||||
ENDP
|
||||
|
||||
|L8.12|
|
||||
DCD s_tBtn
|
||||
|
||||
AREA ||i.bsp_InitKey||, CODE, READONLY, ALIGN=1
|
||||
|
||||
bsp_InitKey PROC
|
||||
;;;161 */
|
||||
;;;162 void bsp_InitKey(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;163 {
|
||||
;;;164 bsp_InitKeyVar(); /* 初始化按键变量 */
|
||||
000002 f7fffffe BL bsp_InitKeyVar
|
||||
;;;165 bsp_InitKeyHard(); /* 初始化按键硬件 */
|
||||
000006 f7fffffe BL bsp_InitKeyHard
|
||||
;;;166 }
|
||||
00000a bd10 POP {r4,pc}
|
||||
;;;167
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.bsp_InitKeyHard||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_InitKeyHard PROC
|
||||
;;;292 */
|
||||
;;;293 static void bsp_InitKeyHard(void)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;294 {
|
||||
;;;295 GPIO_InitTypeDef GPIO_InitStructure;
|
||||
;;;296
|
||||
;;;297 /* 第1步:打开GPIO时钟 */
|
||||
;;;298 RCC_APB2PeriphClockCmd(RCC_ALL_KEY | RCC_ALL_KEY1, ENABLE);
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 2044 MOVS r0,#0x44
|
||||
000006 f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;299
|
||||
;;;300 /* 第2步:配置所有的按键GPIO为浮动输入模式(实际上CPU复位后就是输入状态) */
|
||||
;;;301 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
00000a 2003 MOVS r0,#3
|
||||
00000c f88d0002 STRB r0,[sp,#2]
|
||||
;;;302 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; /* 输入浮空模式 */
|
||||
000010 2004 MOVS r0,#4
|
||||
000012 f88d0003 STRB r0,[sp,#3]
|
||||
;;;303
|
||||
;;;304 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_K1;
|
||||
000016 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;305 GPIO_Init(GPIO_PORT_K1, &GPIO_InitStructure);
|
||||
00001a 4669 MOV r1,sp
|
||||
00001c 4808 LDR r0,|L10.64|
|
||||
00001e f7fffffe BL GPIO_Init
|
||||
;;;306
|
||||
;;;307 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_K2;
|
||||
000022 2008 MOVS r0,#8
|
||||
000024 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;308 GPIO_Init(GPIO_PORT_K2, &GPIO_InitStructure);
|
||||
000028 4669 MOV r1,sp
|
||||
00002a 4805 LDR r0,|L10.64|
|
||||
00002c f7fffffe BL GPIO_Init
|
||||
;;;309
|
||||
;;;310 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_K6;
|
||||
000030 2008 MOVS r0,#8
|
||||
000032 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;311 GPIO_Init(GPIO_PORT_K6, &GPIO_InitStructure);
|
||||
000036 4669 MOV r1,sp
|
||||
000038 4802 LDR r0,|L10.68|
|
||||
00003a f7fffffe BL GPIO_Init
|
||||
;;;312
|
||||
;;;313 // GPIO_InitStructure.GPIO_Pin = GPIO_PIN_K3;
|
||||
;;;314 // GPIO_Init(GPIO_PORT_K3, &GPIO_InitStructure);
|
||||
;;;315 //
|
||||
;;;316 // GPIO_InitStructure.GPIO_Pin = GPIO_PIN_K4;
|
||||
;;;317 // GPIO_Init(GPIO_PORT_K4, &GPIO_InitStructure);
|
||||
;;;318 //
|
||||
;;;319 // GPIO_InitStructure.GPIO_Pin = GPIO_PIN_K5;
|
||||
;;;320 // GPIO_Init(GPIO_PORT_K5, &GPIO_InitStructure);
|
||||
;;;321 //
|
||||
;;;322 // GPIO_InitStructure.GPIO_Pin = GPIO_PIN_K6;
|
||||
;;;323 // GPIO_Init(GPIO_PORT_K6, &GPIO_InitStructure);
|
||||
;;;324 //
|
||||
;;;325 // GPIO_InitStructure.GPIO_Pin = GPIO_PIN_K7;
|
||||
;;;326 // GPIO_Init(GPIO_PORT_K7, &GPIO_InitStructure);
|
||||
;;;327 //
|
||||
;;;328 // GPIO_InitStructure.GPIO_Pin = GPIO_PIN_K8;
|
||||
;;;329 // GPIO_Init(GPIO_PORT_K8, &GPIO_InitStructure);
|
||||
;;;330 }
|
||||
00003e bd08 POP {r3,pc}
|
||||
;;;331
|
||||
ENDP
|
||||
|
||||
|L10.64|
|
||||
DCD 0x40011800
|
||||
|L10.68|
|
||||
DCD 0x40010800
|
||||
|
||||
AREA ||i.bsp_InitKeyVar||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_InitKeyVar PROC
|
||||
;;;339 */
|
||||
;;;340 static void bsp_InitKeyVar(void)
|
||||
000000 2100 MOVS r1,#0
|
||||
;;;341 {
|
||||
;;;342 uint8_t i;
|
||||
;;;343
|
||||
;;;344 /* 对按键FIFO读写指针清零 */
|
||||
;;;345 s_tKey.Read = 0;
|
||||
000002 4a14 LDR r2,|L11.84|
|
||||
000004 7291 STRB r1,[r2,#0xa]
|
||||
;;;346 s_tKey.Write = 0;
|
||||
000006 72d1 STRB r1,[r2,#0xb]
|
||||
;;;347 s_tKey.Read2 = 0;
|
||||
000008 7311 STRB r1,[r2,#0xc]
|
||||
;;;348
|
||||
;;;349 /* 给每个按键结构体成员变量赋一组缺省值 */
|
||||
;;;350 for (i = 0; i < KEY_COUNT; i++)
|
||||
00000a 2000 MOVS r0,#0
|
||||
00000c e017 B |L11.62|
|
||||
|L11.14|
|
||||
;;;351 {
|
||||
;;;352 s_tBtn[i].LongTime = KEY_LONG_TIME; /* 长按时间 0 表示不检测长按键事件 */
|
||||
00000e 2164 MOVS r1,#0x64
|
||||
000010 4a11 LDR r2,|L11.88|
|
||||
000012 eb021200 ADD r2,r2,r0,LSL #4
|
||||
000016 8111 STRH r1,[r2,#8]
|
||||
;;;353 s_tBtn[i].Count = KEY_FILTER_TIME / 2; /* 计数器设置为滤波时间的一半 */
|
||||
000018 2100 MOVS r1,#0
|
||||
00001a 4a0f LDR r2,|L11.88|
|
||||
00001c eb021200 ADD r2,r2,r0,LSL #4
|
||||
000020 7111 STRB r1,[r2,#4]
|
||||
;;;354 s_tBtn[i].State = 0; /* 按键缺省状态,0为未按下 */
|
||||
000022 4a0d LDR r2,|L11.88|
|
||||
000024 eb021200 ADD r2,r2,r0,LSL #4
|
||||
000028 7291 STRB r1,[r2,#0xa]
|
||||
;;;355 // s_tBtn[i].KeyCodeDown = 3 * i + 1; /* 按键按下的键值代码 */
|
||||
;;;356 // s_tBtn[i].KeyCodeUp = 3 * i + 2; /* 按键弹起的键值代码 */
|
||||
;;;357 // s_tBtn[i].KeyCodeLong = 3 * i + 3; /* 按键被持续按下的键值代码 */
|
||||
;;;358 s_tBtn[i].RepeatSpeed = 0; /* 按键连发的速度,0表示不支持连发 */
|
||||
00002a 4a0b LDR r2,|L11.88|
|
||||
00002c eb021200 ADD r2,r2,r0,LSL #4
|
||||
000030 72d1 STRB r1,[r2,#0xb]
|
||||
;;;359 s_tBtn[i].RepeatCount = 0; /* 连发计数器 */
|
||||
000032 4a09 LDR r2,|L11.88|
|
||||
000034 eb021200 ADD r2,r2,r0,LSL #4
|
||||
000038 7311 STRB r1,[r2,#0xc]
|
||||
00003a 1c41 ADDS r1,r0,#1 ;350
|
||||
00003c b2c8 UXTB r0,r1 ;350
|
||||
|L11.62|
|
||||
00003e 2803 CMP r0,#3 ;350
|
||||
000040 dbe5 BLT |L11.14|
|
||||
;;;360 }
|
||||
;;;361
|
||||
;;;362 /* 如果需要单独更改某个按键的参数,可以在此单独重新赋值 */
|
||||
;;;363 /* 比如,我们希望按键1按下超过1秒后,自动重发相同键值 */
|
||||
;;;364 // s_tBtn[KID_K7].LongTime = 40;
|
||||
;;;365 // s_tBtn[KID_K7].RepeatSpeed = 5; /* 每隔50ms自动发送键值 */
|
||||
;;;366 //
|
||||
;;;367 // s_tBtn[KID_K8].LongTime = 40;
|
||||
;;;368 // s_tBtn[KID_K8].RepeatSpeed = 5; /* 每隔50ms自动发送键值 */
|
||||
;;;369
|
||||
;;;370 /* 判断按键按下的函数 */
|
||||
;;;371 s_tBtn[0].IsKeyDownFunc = IsKeyDown1;
|
||||
000042 4906 LDR r1,|L11.92|
|
||||
000044 4a04 LDR r2,|L11.88|
|
||||
000046 6011 STR r1,[r2,#0] ; s_tBtn
|
||||
;;;372 s_tBtn[1].IsKeyDownFunc = IsKeyDown2;
|
||||
000048 4905 LDR r1,|L11.96|
|
||||
00004a 6111 STR r1,[r2,#0x10] ; s_tBtn
|
||||
;;;373 s_tBtn[2].IsKeyDownFunc = IsKeyDown3;
|
||||
00004c 4905 LDR r1,|L11.100|
|
||||
00004e 6211 STR r1,[r2,#0x20] ; s_tBtn
|
||||
;;;374 // s_tBtn[3].IsKeyDownFunc = IsKeyDown4;
|
||||
;;;375 // s_tBtn[4].IsKeyDownFunc = IsKeyDown5;
|
||||
;;;376 // s_tBtn[5].IsKeyDownFunc = IsKeyDown6;
|
||||
;;;377 // s_tBtn[6].IsKeyDownFunc = IsKeyDown7;// shen 0809
|
||||
;;;378 // s_tBtn[7].IsKeyDownFunc = IsKeyDown8;
|
||||
;;;379
|
||||
;;;380 /* 组合键 */
|
||||
;;;381 // s_tBtn[8].IsKeyDownFunc = IsKeyDown9;
|
||||
;;;382 // s_tBtn[9].IsKeyDownFunc = IsKeyDown10;
|
||||
;;;383 }
|
||||
000050 4770 BX lr
|
||||
;;;384
|
||||
ENDP
|
||||
|
||||
000052 0000 DCW 0x0000
|
||||
|L11.84|
|
||||
DCD s_tKey
|
||||
|L11.88|
|
||||
DCD s_tBtn
|
||||
|L11.92|
|
||||
DCD IsKeyDown1
|
||||
|L11.96|
|
||||
DCD IsKeyDown2
|
||||
|L11.100|
|
||||
DCD IsKeyDown3
|
||||
|
||||
AREA ||i.bsp_KeyScan||, CODE, READONLY, ALIGN=1
|
||||
|
||||
bsp_KeyScan PROC
|
||||
;;;485 */
|
||||
;;;486 void bsp_KeyScan(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;487 {
|
||||
;;;488 uint8_t i;
|
||||
;;;489
|
||||
;;;490 for (i = 0; i < KEY_COUNT; i++)
|
||||
000002 2400 MOVS r4,#0
|
||||
000004 e004 B |L12.16|
|
||||
|L12.6|
|
||||
;;;491 {
|
||||
;;;492 bsp_DetectKey(i);
|
||||
000006 4620 MOV r0,r4
|
||||
000008 f7fffffe BL bsp_DetectKey
|
||||
00000c 1c60 ADDS r0,r4,#1 ;490
|
||||
00000e b2c4 UXTB r4,r0 ;490
|
||||
|L12.16|
|
||||
000010 2c03 CMP r4,#3 ;490
|
||||
000012 dbf8 BLT |L12.6|
|
||||
;;;493 }
|
||||
;;;494 }
|
||||
000014 bd10 POP {r4,pc}
|
||||
;;;495
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.bsp_PutKey||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_PutKey PROC
|
||||
;;;175 */
|
||||
;;;176 void bsp_PutKey(uint8_t _KeyCode)
|
||||
000000 4906 LDR r1,|L13.28|
|
||||
;;;177 {
|
||||
;;;178 s_tKey.Buf[s_tKey.Write] = _KeyCode;
|
||||
000002 7ac9 LDRB r1,[r1,#0xb] ; s_tKey
|
||||
000004 4a05 LDR r2,|L13.28|
|
||||
000006 5450 STRB r0,[r2,r1]
|
||||
;;;179
|
||||
;;;180 if (++s_tKey.Write >= KEY_FIFO_SIZE)
|
||||
000008 4611 MOV r1,r2
|
||||
00000a 7ac9 LDRB r1,[r1,#0xb] ; s_tKey
|
||||
00000c 1c49 ADDS r1,r1,#1
|
||||
00000e b2c9 UXTB r1,r1
|
||||
000010 72d1 STRB r1,[r2,#0xb]
|
||||
000012 290a CMP r1,#0xa
|
||||
000014 db01 BLT |L13.26|
|
||||
;;;181 {
|
||||
;;;182 s_tKey.Write = 0;
|
||||
000016 2100 MOVS r1,#0
|
||||
000018 72d1 STRB r1,[r2,#0xb]
|
||||
|L13.26|
|
||||
;;;183 }
|
||||
;;;184 }
|
||||
00001a 4770 BX lr
|
||||
;;;185
|
||||
ENDP
|
||||
|
||||
|L13.28|
|
||||
DCD s_tKey
|
||||
|
||||
AREA ||i.bsp_SetKeyParam||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_SetKeyParam PROC
|
||||
;;;264 */
|
||||
;;;265 void bsp_SetKeyParam(uint8_t _ucKeyID, uint16_t _LongTime, uint8_t _RepeatSpeed)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;266 {
|
||||
;;;267 s_tBtn[_ucKeyID].LongTime = _LongTime; /* 长按时间 0 表示不检测长按键事件 */
|
||||
000002 4b07 LDR r3,|L14.32|
|
||||
000004 eb031300 ADD r3,r3,r0,LSL #4
|
||||
000008 8119 STRH r1,[r3,#8]
|
||||
;;;268 s_tBtn[_ucKeyID].RepeatSpeed = _RepeatSpeed; /* 按键连发的速度,0表示不支持连发 */
|
||||
00000a 4b05 LDR r3,|L14.32|
|
||||
00000c eb031300 ADD r3,r3,r0,LSL #4
|
||||
000010 72da STRB r2,[r3,#0xb]
|
||||
;;;269 s_tBtn[_ucKeyID].RepeatCount = 0; /* 连发计数器 */
|
||||
000012 2300 MOVS r3,#0
|
||||
000014 4c02 LDR r4,|L14.32|
|
||||
000016 eb041400 ADD r4,r4,r0,LSL #4
|
||||
00001a 7323 STRB r3,[r4,#0xc]
|
||||
;;;270 }
|
||||
00001c bd10 POP {r4,pc}
|
||||
;;;271
|
||||
ENDP
|
||||
|
||||
00001e 0000 DCW 0x0000
|
||||
|L14.32|
|
||||
DCD s_tBtn
|
||||
|
||||
AREA ||.bss||, DATA, NOINIT, ALIGN=2
|
||||
|
||||
s_tBtn
|
||||
% 48
|
||||
s_tKey
|
||||
% 13
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\src\\bsp_key.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___9_bsp_key_c_fc777be6____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___9_bsp_key_c_fc777be6____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___9_bsp_key_c_fc777be6____REVSH|
|
||||
#line 128
|
||||
|__asm___9_bsp_key_c_fc777be6____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
969
Project/MDK-ARM/Flash/List/bsp_led.txt
Normal file
969
Project/MDK-ARM/Flash/List/bsp_led.txt
Normal file
@@ -0,0 +1,969 @@
|
||||
; generated by Component: ARM Compiler 5.05 update 1 (build 106) Tool: ArmCC [4d0efa]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp_led.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_led.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -IC:\Keil_v5\ARM\RV31\INC -IC:\Keil_v5\ARM\CMSIS\Include -IC:\Keil_v5\ARM\Inc\ST\STM32F10x -D__MICROLIB -D__UVISION_VERSION=514 -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp_led.crf ..\..\User\bsp\src\bsp_led.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.ChannelLedAllOff||, CODE, READONLY, ALIGN=1
|
||||
|
||||
ChannelLedAllOff PROC
|
||||
;;;391
|
||||
;;;392 static void ChannelLedAllOff(void)
|
||||
000000 b500 PUSH {lr}
|
||||
;;;393 {
|
||||
;;;394 bsp_LedOff(1);
|
||||
000002 2001 MOVS r0,#1
|
||||
000004 f7fffffe BL bsp_LedOff
|
||||
;;;395 bsp_LedOff(2);
|
||||
000008 2002 MOVS r0,#2
|
||||
00000a f7fffffe BL bsp_LedOff
|
||||
;;;396 bsp_LedOff(3);
|
||||
00000e 2003 MOVS r0,#3
|
||||
000010 f7fffffe BL bsp_LedOff
|
||||
;;;397 bsp_LedOff(4);
|
||||
000014 2004 MOVS r0,#4
|
||||
000016 f7fffffe BL bsp_LedOff
|
||||
;;;398 bsp_LedOff(5);
|
||||
00001a 2005 MOVS r0,#5
|
||||
00001c f7fffffe BL bsp_LedOff
|
||||
;;;399 bsp_LedOff(6);
|
||||
000020 2006 MOVS r0,#6
|
||||
000022 f7fffffe BL bsp_LedOff
|
||||
;;;400 }
|
||||
000026 bd00 POP {pc}
|
||||
;;;401
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.ResLedAllOff||, CODE, READONLY, ALIGN=1
|
||||
|
||||
ResLedAllOff PROC
|
||||
;;;401
|
||||
;;;402 static void ResLedAllOff(void)
|
||||
000000 b500 PUSH {lr}
|
||||
;;;403 {
|
||||
;;;404 bsp_LedOff(7);
|
||||
000002 2007 MOVS r0,#7
|
||||
000004 f7fffffe BL bsp_LedOff
|
||||
;;;405 bsp_LedOff(8);
|
||||
000008 2008 MOVS r0,#8
|
||||
00000a f7fffffe BL bsp_LedOff
|
||||
;;;406 bsp_LedOff(9);
|
||||
00000e 2009 MOVS r0,#9
|
||||
000010 f7fffffe BL bsp_LedOff
|
||||
;;;407 bsp_LedOff(10);
|
||||
000014 200a MOVS r0,#0xa
|
||||
000016 f7fffffe BL bsp_LedOff
|
||||
;;;408 bsp_LedOff(11);
|
||||
00001a 200b MOVS r0,#0xb
|
||||
00001c f7fffffe BL bsp_LedOff
|
||||
;;;409 bsp_LedOff(12);
|
||||
000020 200c MOVS r0,#0xc
|
||||
000022 f7fffffe BL bsp_LedOff
|
||||
;;;410 bsp_LedOff(13);
|
||||
000026 200d MOVS r0,#0xd
|
||||
000028 f7fffffe BL bsp_LedOff
|
||||
;;;411 bsp_LedOff(14);
|
||||
00002c 200e MOVS r0,#0xe
|
||||
00002e f7fffffe BL bsp_LedOff
|
||||
;;;412 }
|
||||
000032 bd00 POP {pc}
|
||||
;;;413
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.bsp_ChannelSelect||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_ChannelSelect PROC
|
||||
;;;416 //---------------------------------------
|
||||
;;;417 void bsp_ChannelSelect(uint8_t _ch)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;418 {
|
||||
000002 4604 MOV r4,r0
|
||||
;;;419 static uint8_t s_ucOldCh=255;
|
||||
;;;420
|
||||
;;;421 if(_ch==s_ucOldCh)
|
||||
000004 480b LDR r0,|L3.52|
|
||||
000006 7800 LDRB r0,[r0,#0] ; s_ucOldCh
|
||||
000008 4284 CMP r4,r0
|
||||
00000a d107 BNE |L3.28|
|
||||
;;;422 {
|
||||
;;;423 ChannelLedAllOff();
|
||||
00000c f7fffffe BL ChannelLedAllOff
|
||||
;;;424 bsp_RealyAllOff();
|
||||
000010 f7fffffe BL bsp_RealyAllOff
|
||||
;;;425 s_ucOldCh=255;
|
||||
000014 20ff MOVS r0,#0xff
|
||||
000016 4907 LDR r1,|L3.52|
|
||||
000018 7008 STRB r0,[r1,#0]
|
||||
00001a e009 B |L3.48|
|
||||
|L3.28|
|
||||
;;;426 }
|
||||
;;;427 else
|
||||
;;;428 {
|
||||
;;;429 s_ucOldCh = _ch;
|
||||
00001c 4805 LDR r0,|L3.52|
|
||||
00001e 7004 STRB r4,[r0,#0]
|
||||
;;;430 ChannelLedAllOff();
|
||||
000020 f7fffffe BL ChannelLedAllOff
|
||||
;;;431 bsp_LedOn(_ch);
|
||||
000024 4620 MOV r0,r4
|
||||
000026 f7fffffe BL bsp_LedOn
|
||||
;;;432 bsp_RelayOn(_ch);
|
||||
00002a 4620 MOV r0,r4
|
||||
00002c f7fffffe BL bsp_RelayOn
|
||||
|L3.48|
|
||||
;;;433 }
|
||||
;;;434
|
||||
;;;435 }
|
||||
000030 bd10 POP {r4,pc}
|
||||
;;;436
|
||||
ENDP
|
||||
|
||||
000032 0000 DCW 0x0000
|
||||
|L3.52|
|
||||
DCD s_ucOldCh
|
||||
|
||||
AREA ||i.bsp_InitLed||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_InitLed PROC
|
||||
;;;81 */
|
||||
;;;82 void bsp_InitLed(void)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;83 {
|
||||
;;;84 GPIO_InitTypeDef GPIO_InitStructure;
|
||||
;;;85
|
||||
;;;86 /* 打开GPIO时钟 */
|
||||
;;;87 RCC_APB2PeriphClockCmd(RCC_ALL_LED, ENABLE);
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 20f4 MOVS r0,#0xf4
|
||||
000006 f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;88
|
||||
;;;89 /*
|
||||
;;;90 配置所有的LED指示灯GPIO为推挽输出模式
|
||||
;;;91 由于将GPIO设置为输出时,GPIO输出寄存器的值缺省是0,因此会驱动LED点亮.
|
||||
;;;92 这是我不希望的,因此在改变GPIO为输出前,先关闭LED指示灯
|
||||
;;;93 */
|
||||
;;;94 bsp_LedOff(1);
|
||||
00000a 2001 MOVS r0,#1
|
||||
00000c f7fffffe BL bsp_LedOff
|
||||
;;;95 bsp_LedOff(2);
|
||||
000010 2002 MOVS r0,#2
|
||||
000012 f7fffffe BL bsp_LedOff
|
||||
;;;96 bsp_LedOff(3);
|
||||
000016 2003 MOVS r0,#3
|
||||
000018 f7fffffe BL bsp_LedOff
|
||||
;;;97 bsp_LedOff(4);
|
||||
00001c 2004 MOVS r0,#4
|
||||
00001e f7fffffe BL bsp_LedOff
|
||||
;;;98 bsp_LedOff(5);
|
||||
000022 2005 MOVS r0,#5
|
||||
000024 f7fffffe BL bsp_LedOff
|
||||
;;;99 bsp_LedOff(6);
|
||||
000028 2006 MOVS r0,#6
|
||||
00002a f7fffffe BL bsp_LedOff
|
||||
;;;100 bsp_LedOn(7);
|
||||
00002e 2007 MOVS r0,#7
|
||||
000030 f7fffffe BL bsp_LedOn
|
||||
;;;101 bsp_LedOff(8);
|
||||
000034 2008 MOVS r0,#8
|
||||
000036 f7fffffe BL bsp_LedOff
|
||||
;;;102 bsp_LedOff(9);
|
||||
00003a 2009 MOVS r0,#9
|
||||
00003c f7fffffe BL bsp_LedOff
|
||||
;;;103 bsp_LedOff(10);
|
||||
000040 200a MOVS r0,#0xa
|
||||
000042 f7fffffe BL bsp_LedOff
|
||||
;;;104 bsp_LedOff(11);
|
||||
000046 200b MOVS r0,#0xb
|
||||
000048 f7fffffe BL bsp_LedOff
|
||||
;;;105 bsp_LedOff(12);
|
||||
00004c 200c MOVS r0,#0xc
|
||||
00004e f7fffffe BL bsp_LedOff
|
||||
;;;106 bsp_LedOff(13);
|
||||
000052 200d MOVS r0,#0xd
|
||||
000054 f7fffffe BL bsp_LedOff
|
||||
;;;107 bsp_LedOff(14);
|
||||
000058 200e MOVS r0,#0xe
|
||||
00005a f7fffffe BL bsp_LedOff
|
||||
;;;108
|
||||
;;;109 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
00005e 2003 MOVS r0,#3
|
||||
000060 f88d0002 STRB r0,[sp,#2]
|
||||
;;;110 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /* 推挽输出模式 */
|
||||
000064 2010 MOVS r0,#0x10
|
||||
000066 f88d0003 STRB r0,[sp,#3]
|
||||
;;;111
|
||||
;;;112 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);
|
||||
00006a 2101 MOVS r1,#1
|
||||
00006c 2005 MOVS r0,#5
|
||||
00006e f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;113 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
|
||||
000072 2101 MOVS r1,#1
|
||||
000074 4834 LDR r0,|L4.328|
|
||||
000076 f7fffffe BL GPIO_PinRemapConfig
|
||||
;;;114
|
||||
;;;115 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED1;
|
||||
00007a f44f4000 MOV r0,#0x8000
|
||||
00007e f8ad0000 STRH r0,[sp,#0]
|
||||
;;;116 GPIO_Init(GPIO_PORT_LED1, &GPIO_InitStructure);
|
||||
000082 4669 MOV r1,sp
|
||||
000084 4831 LDR r0,|L4.332|
|
||||
000086 f7fffffe BL GPIO_Init
|
||||
;;;117
|
||||
;;;118 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED2;
|
||||
00008a f44f6080 MOV r0,#0x400
|
||||
00008e f8ad0000 STRH r0,[sp,#0]
|
||||
;;;119 GPIO_Init(GPIO_PORT_LED2, &GPIO_InitStructure);
|
||||
000092 4669 MOV r1,sp
|
||||
000094 482e LDR r0,|L4.336|
|
||||
000096 f7fffffe BL GPIO_Init
|
||||
;;;120
|
||||
;;;121 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED3;
|
||||
00009a f44f6000 MOV r0,#0x800
|
||||
00009e f8ad0000 STRH r0,[sp,#0]
|
||||
;;;122 GPIO_Init(GPIO_PORT_LED3, &GPIO_InitStructure);
|
||||
0000a2 4669 MOV r1,sp
|
||||
0000a4 482a LDR r0,|L4.336|
|
||||
0000a6 f7fffffe BL GPIO_Init
|
||||
;;;123
|
||||
;;;124 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED4;
|
||||
0000aa f44f5080 MOV r0,#0x1000
|
||||
0000ae f8ad0000 STRH r0,[sp,#0]
|
||||
;;;125 GPIO_Init(GPIO_PORT_LED4, &GPIO_InitStructure);
|
||||
0000b2 4669 MOV r1,sp
|
||||
0000b4 4826 LDR r0,|L4.336|
|
||||
0000b6 f7fffffe BL GPIO_Init
|
||||
;;;126
|
||||
;;;127 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED5;
|
||||
0000ba 2001 MOVS r0,#1
|
||||
0000bc f8ad0000 STRH r0,[sp,#0]
|
||||
;;;128 GPIO_Init(GPIO_PORT_LED5, &GPIO_InitStructure);
|
||||
0000c0 4669 MOV r1,sp
|
||||
0000c2 4824 LDR r0,|L4.340|
|
||||
0000c4 f7fffffe BL GPIO_Init
|
||||
;;;129
|
||||
;;;130 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED6;
|
||||
0000c8 2002 MOVS r0,#2
|
||||
0000ca f8ad0000 STRH r0,[sp,#0]
|
||||
;;;131 GPIO_Init(GPIO_PORT_LED6, &GPIO_InitStructure);
|
||||
0000ce 4669 MOV r1,sp
|
||||
0000d0 4820 LDR r0,|L4.340|
|
||||
0000d2 f7fffffe BL GPIO_Init
|
||||
;;;132
|
||||
;;;133 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED7;
|
||||
0000d6 2020 MOVS r0,#0x20
|
||||
0000d8 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;134 GPIO_Init(GPIO_PORT_LED7, &GPIO_InitStructure);
|
||||
0000dc 4669 MOV r1,sp
|
||||
0000de 481e LDR r0,|L4.344|
|
||||
0000e0 f7fffffe BL GPIO_Init
|
||||
;;;135
|
||||
;;;136 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED8;
|
||||
0000e4 2010 MOVS r0,#0x10
|
||||
0000e6 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;137 GPIO_Init(GPIO_PORT_LED8, &GPIO_InitStructure);
|
||||
0000ea 4669 MOV r1,sp
|
||||
0000ec 481a LDR r0,|L4.344|
|
||||
0000ee f7fffffe BL GPIO_Init
|
||||
;;;138
|
||||
;;;139 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED9;
|
||||
0000f2 2008 MOVS r0,#8
|
||||
0000f4 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;140 GPIO_Init(GPIO_PORT_LED9, &GPIO_InitStructure);
|
||||
0000f8 4669 MOV r1,sp
|
||||
0000fa 4817 LDR r0,|L4.344|
|
||||
0000fc f7fffffe BL GPIO_Init
|
||||
;;;141
|
||||
;;;142 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED10;
|
||||
000100 2004 MOVS r0,#4
|
||||
000102 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;143 GPIO_Init(GPIO_PORT_LED10, &GPIO_InitStructure);
|
||||
000106 4669 MOV r1,sp
|
||||
000108 4813 LDR r0,|L4.344|
|
||||
00010a f7fffffe BL GPIO_Init
|
||||
;;;144
|
||||
;;;145 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED11;
|
||||
00010e 2002 MOVS r0,#2
|
||||
000110 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;146 GPIO_Init(GPIO_PORT_LED11, &GPIO_InitStructure);
|
||||
000114 4669 MOV r1,sp
|
||||
000116 4810 LDR r0,|L4.344|
|
||||
000118 f7fffffe BL GPIO_Init
|
||||
;;;147
|
||||
;;;148 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED12;
|
||||
00011c 2001 MOVS r0,#1
|
||||
00011e f8ad0000 STRH r0,[sp,#0]
|
||||
;;;149 GPIO_Init(GPIO_PORT_LED12, &GPIO_InitStructure);
|
||||
000122 4669 MOV r1,sp
|
||||
000124 480c LDR r0,|L4.344|
|
||||
000126 f7fffffe BL GPIO_Init
|
||||
;;;150
|
||||
;;;151 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED13;
|
||||
00012a 2020 MOVS r0,#0x20
|
||||
00012c f8ad0000 STRH r0,[sp,#0]
|
||||
;;;152 GPIO_Init(GPIO_PORT_LED13, &GPIO_InitStructure);
|
||||
000130 4669 MOV r1,sp
|
||||
000132 480a LDR r0,|L4.348|
|
||||
000134 f7fffffe BL GPIO_Init
|
||||
;;;153
|
||||
;;;154 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED14;
|
||||
000138 2010 MOVS r0,#0x10
|
||||
00013a f8ad0000 STRH r0,[sp,#0]
|
||||
;;;155 GPIO_Init(GPIO_PORT_LED14, &GPIO_InitStructure);
|
||||
00013e 4669 MOV r1,sp
|
||||
000140 4806 LDR r0,|L4.348|
|
||||
000142 f7fffffe BL GPIO_Init
|
||||
;;;156
|
||||
;;;157 }
|
||||
000146 bd08 POP {r3,pc}
|
||||
;;;158
|
||||
ENDP
|
||||
|
||||
|L4.328|
|
||||
DCD 0x00300200
|
||||
|L4.332|
|
||||
DCD 0x40010800
|
||||
|L4.336|
|
||||
DCD 0x40011000
|
||||
|L4.340|
|
||||
DCD 0x40011400
|
||||
|L4.344|
|
||||
DCD 0x40011c00
|
||||
|L4.348|
|
||||
DCD 0x40011800
|
||||
|
||||
AREA ||i.bsp_IsLedOn||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_IsLedOn PROC
|
||||
;;;335 */
|
||||
;;;336 uint8_t bsp_IsLedOn(uint8_t _no)
|
||||
000000 4601 MOV r1,r0
|
||||
;;;337 {
|
||||
;;;338 if (_no == 1)
|
||||
000002 2901 CMP r1,#1
|
||||
000004 d108 BNE |L5.24|
|
||||
;;;339 {
|
||||
;;;340 if ((GPIO_PORT_LED1->ODR & GPIO_PIN_LED1) == 0)
|
||||
000006 4816 LDR r0,|L5.96|
|
||||
000008 6800 LDR r0,[r0,#0]
|
||||
00000a f4004000 AND r0,r0,#0x8000
|
||||
00000e b908 CBNZ r0,|L5.20|
|
||||
;;;341 {
|
||||
;;;342 return 1;
|
||||
000010 2001 MOVS r0,#1
|
||||
|L5.18|
|
||||
;;;343 }
|
||||
;;;344 return 0;
|
||||
;;;345 }
|
||||
;;;346 else if (_no == 2)
|
||||
;;;347 {
|
||||
;;;348 if ((GPIO_PORT_LED2->ODR & GPIO_PIN_LED2) == 0)
|
||||
;;;349 {
|
||||
;;;350 return 1;
|
||||
;;;351 }
|
||||
;;;352 return 0;
|
||||
;;;353 }
|
||||
;;;354 else if (_no == 3)
|
||||
;;;355 {
|
||||
;;;356 if ((GPIO_PORT_LED3->ODR & GPIO_PIN_LED3) == 0)
|
||||
;;;357 {
|
||||
;;;358 return 1;
|
||||
;;;359 }
|
||||
;;;360 return 0;
|
||||
;;;361 }
|
||||
;;;362 else if (_no == 4)
|
||||
;;;363 {
|
||||
;;;364 if ((GPIO_PORT_LED4->ODR & GPIO_PIN_LED4) == 0)
|
||||
;;;365 {
|
||||
;;;366 return 1;
|
||||
;;;367 }
|
||||
;;;368 return 0;
|
||||
;;;369 }
|
||||
;;;370
|
||||
;;;371 return 0;
|
||||
;;;372 }
|
||||
000012 4770 BX lr
|
||||
|L5.20|
|
||||
000014 2000 MOVS r0,#0 ;344
|
||||
000016 e7fc B |L5.18|
|
||||
|L5.24|
|
||||
000018 2902 CMP r1,#2 ;346
|
||||
00001a d108 BNE |L5.46|
|
||||
00001c 4811 LDR r0,|L5.100|
|
||||
00001e 68c0 LDR r0,[r0,#0xc] ;348
|
||||
000020 f4006080 AND r0,r0,#0x400 ;348
|
||||
000024 b908 CBNZ r0,|L5.42|
|
||||
000026 2001 MOVS r0,#1 ;350
|
||||
000028 e7f3 B |L5.18|
|
||||
|L5.42|
|
||||
00002a 2000 MOVS r0,#0 ;352
|
||||
00002c e7f1 B |L5.18|
|
||||
|L5.46|
|
||||
00002e 2903 CMP r1,#3 ;354
|
||||
000030 d108 BNE |L5.68|
|
||||
000032 480c LDR r0,|L5.100|
|
||||
000034 68c0 LDR r0,[r0,#0xc] ;356
|
||||
000036 f4006000 AND r0,r0,#0x800 ;356
|
||||
00003a b908 CBNZ r0,|L5.64|
|
||||
00003c 2001 MOVS r0,#1 ;358
|
||||
00003e e7e8 B |L5.18|
|
||||
|L5.64|
|
||||
000040 2000 MOVS r0,#0 ;360
|
||||
000042 e7e6 B |L5.18|
|
||||
|L5.68|
|
||||
000044 2904 CMP r1,#4 ;362
|
||||
000046 d108 BNE |L5.90|
|
||||
000048 4806 LDR r0,|L5.100|
|
||||
00004a 68c0 LDR r0,[r0,#0xc] ;364
|
||||
00004c f4005080 AND r0,r0,#0x1000 ;364
|
||||
000050 b908 CBNZ r0,|L5.86|
|
||||
000052 2001 MOVS r0,#1 ;366
|
||||
000054 e7dd B |L5.18|
|
||||
|L5.86|
|
||||
000056 2000 MOVS r0,#0 ;368
|
||||
000058 e7db B |L5.18|
|
||||
|L5.90|
|
||||
00005a 2000 MOVS r0,#0 ;371
|
||||
00005c e7d9 B |L5.18|
|
||||
;;;373
|
||||
ENDP
|
||||
|
||||
00005e 0000 DCW 0x0000
|
||||
|L5.96|
|
||||
DCD 0x4001080c
|
||||
|L5.100|
|
||||
DCD 0x40011000
|
||||
|
||||
AREA ||i.bsp_LedAllOff||, CODE, READONLY, ALIGN=1
|
||||
|
||||
bsp_LedAllOff PROC
|
||||
;;;373
|
||||
;;;374 void bsp_LedAllOff(void)
|
||||
000000 b500 PUSH {lr}
|
||||
;;;375 {
|
||||
;;;376 bsp_LedOff(1);
|
||||
000002 2001 MOVS r0,#1
|
||||
000004 f7fffffe BL bsp_LedOff
|
||||
;;;377 bsp_LedOff(2);
|
||||
000008 2002 MOVS r0,#2
|
||||
00000a f7fffffe BL bsp_LedOff
|
||||
;;;378 bsp_LedOff(3);
|
||||
00000e 2003 MOVS r0,#3
|
||||
000010 f7fffffe BL bsp_LedOff
|
||||
;;;379 bsp_LedOff(4);
|
||||
000014 2004 MOVS r0,#4
|
||||
000016 f7fffffe BL bsp_LedOff
|
||||
;;;380 bsp_LedOff(5);
|
||||
00001a 2005 MOVS r0,#5
|
||||
00001c f7fffffe BL bsp_LedOff
|
||||
;;;381 bsp_LedOff(6);
|
||||
000020 2006 MOVS r0,#6
|
||||
000022 f7fffffe BL bsp_LedOff
|
||||
;;;382 bsp_LedOff(7);
|
||||
000026 2007 MOVS r0,#7
|
||||
000028 f7fffffe BL bsp_LedOff
|
||||
;;;383 bsp_LedOff(8);
|
||||
00002c 2008 MOVS r0,#8
|
||||
00002e f7fffffe BL bsp_LedOff
|
||||
;;;384 bsp_LedOff(9);
|
||||
000032 2009 MOVS r0,#9
|
||||
000034 f7fffffe BL bsp_LedOff
|
||||
;;;385 bsp_LedOff(10);
|
||||
000038 200a MOVS r0,#0xa
|
||||
00003a f7fffffe BL bsp_LedOff
|
||||
;;;386 bsp_LedOff(11);
|
||||
00003e 200b MOVS r0,#0xb
|
||||
000040 f7fffffe BL bsp_LedOff
|
||||
;;;387 bsp_LedOff(12);
|
||||
000044 200c MOVS r0,#0xc
|
||||
000046 f7fffffe BL bsp_LedOff
|
||||
;;;388 bsp_LedOff(13);
|
||||
00004a 200d MOVS r0,#0xd
|
||||
00004c f7fffffe BL bsp_LedOff
|
||||
;;;389 bsp_LedOff(14);
|
||||
000050 200e MOVS r0,#0xe
|
||||
000052 f7fffffe BL bsp_LedOff
|
||||
;;;390 }
|
||||
000056 bd00 POP {pc}
|
||||
;;;391
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.bsp_LedOff||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_LedOff PROC
|
||||
;;;166 */
|
||||
;;;167 void bsp_LedOff(uint8_t _no)
|
||||
000000 1e41 SUBS r1,r0,#1
|
||||
;;;168 {
|
||||
;;;169 _no--;
|
||||
000002 b2c8 UXTB r0,r1
|
||||
;;;170
|
||||
;;;171 if (_no == 0)
|
||||
000004 b920 CBNZ r0,|L7.16|
|
||||
;;;172 {
|
||||
;;;173 GPIO_PORT_LED1->BRR = GPIO_PIN_LED1;
|
||||
000006 f44f4100 MOV r1,#0x8000
|
||||
00000a 4a29 LDR r2,|L7.176|
|
||||
00000c 6011 STR r1,[r2,#0]
|
||||
00000e e04d B |L7.172|
|
||||
|L7.16|
|
||||
;;;174 }
|
||||
;;;175 else if (_no == 1)
|
||||
000010 2801 CMP r0,#1
|
||||
000012 d103 BNE |L7.28|
|
||||
;;;176 {
|
||||
;;;177 GPIO_PORT_LED2->BRR = GPIO_PIN_LED2;
|
||||
000014 0281 LSLS r1,r0,#10
|
||||
000016 4a27 LDR r2,|L7.180|
|
||||
000018 6151 STR r1,[r2,#0x14]
|
||||
00001a e047 B |L7.172|
|
||||
|L7.28|
|
||||
;;;178 }
|
||||
;;;179 else if (_no == 2)
|
||||
00001c 2802 CMP r0,#2
|
||||
00001e d103 BNE |L7.40|
|
||||
;;;180 {
|
||||
;;;181 GPIO_PORT_LED3->BRR = GPIO_PIN_LED3;
|
||||
000020 0281 LSLS r1,r0,#10
|
||||
000022 4a24 LDR r2,|L7.180|
|
||||
000024 6151 STR r1,[r2,#0x14]
|
||||
000026 e041 B |L7.172|
|
||||
|L7.40|
|
||||
;;;182 }
|
||||
;;;183 else if (_no == 3)
|
||||
000028 2803 CMP r0,#3
|
||||
00002a d104 BNE |L7.54|
|
||||
;;;184 {
|
||||
;;;185 GPIO_PORT_LED4->BRR = GPIO_PIN_LED4;
|
||||
00002c f44f5180 MOV r1,#0x1000
|
||||
000030 4a20 LDR r2,|L7.180|
|
||||
000032 6151 STR r1,[r2,#0x14]
|
||||
000034 e03a B |L7.172|
|
||||
|L7.54|
|
||||
;;;186 }
|
||||
;;;187 else if (_no == 4)
|
||||
000036 2804 CMP r0,#4
|
||||
000038 d103 BNE |L7.66|
|
||||
;;;188 {
|
||||
;;;189 GPIO_PORT_LED5->BRR = GPIO_PIN_LED5;
|
||||
00003a 2101 MOVS r1,#1
|
||||
00003c 4a1e LDR r2,|L7.184|
|
||||
00003e 6011 STR r1,[r2,#0]
|
||||
000040 e034 B |L7.172|
|
||||
|L7.66|
|
||||
;;;190 }
|
||||
;;;191 else if (_no == 5)
|
||||
000042 2805 CMP r0,#5
|
||||
000044 d103 BNE |L7.78|
|
||||
;;;192 {
|
||||
;;;193 GPIO_PORT_LED6->BRR = GPIO_PIN_LED6;
|
||||
000046 2102 MOVS r1,#2
|
||||
000048 4a1b LDR r2,|L7.184|
|
||||
00004a 6011 STR r1,[r2,#0]
|
||||
00004c e02e B |L7.172|
|
||||
|L7.78|
|
||||
;;;194 }
|
||||
;;;195 else if (_no == 6)
|
||||
00004e 2806 CMP r0,#6
|
||||
000050 d103 BNE |L7.90|
|
||||
;;;196 {
|
||||
;;;197 GPIO_PORT_LED7->BRR = GPIO_PIN_LED7;
|
||||
000052 2120 MOVS r1,#0x20
|
||||
000054 4a19 LDR r2,|L7.188|
|
||||
000056 6011 STR r1,[r2,#0]
|
||||
000058 e028 B |L7.172|
|
||||
|L7.90|
|
||||
;;;198 }
|
||||
;;;199 else if (_no == 7)
|
||||
00005a 2807 CMP r0,#7
|
||||
00005c d103 BNE |L7.102|
|
||||
;;;200 {
|
||||
;;;201 GPIO_PORT_LED8->BRR = GPIO_PIN_LED8;
|
||||
00005e 2110 MOVS r1,#0x10
|
||||
000060 4a16 LDR r2,|L7.188|
|
||||
000062 6011 STR r1,[r2,#0]
|
||||
000064 e022 B |L7.172|
|
||||
|L7.102|
|
||||
;;;202 }
|
||||
;;;203 else if (_no == 8)
|
||||
000066 2808 CMP r0,#8
|
||||
000068 d103 BNE |L7.114|
|
||||
;;;204 {
|
||||
;;;205 GPIO_PORT_LED9->BRR = GPIO_PIN_LED9;
|
||||
00006a 2108 MOVS r1,#8
|
||||
00006c 4a13 LDR r2,|L7.188|
|
||||
00006e 6011 STR r1,[r2,#0]
|
||||
000070 e01c B |L7.172|
|
||||
|L7.114|
|
||||
;;;206 }
|
||||
;;;207 else if (_no == 9)
|
||||
000072 2809 CMP r0,#9
|
||||
000074 d103 BNE |L7.126|
|
||||
;;;208 {
|
||||
;;;209 GPIO_PORT_LED10->BRR = GPIO_PIN_LED10;
|
||||
000076 2104 MOVS r1,#4
|
||||
000078 4a10 LDR r2,|L7.188|
|
||||
00007a 6011 STR r1,[r2,#0]
|
||||
00007c e016 B |L7.172|
|
||||
|L7.126|
|
||||
;;;210 }
|
||||
;;;211 else if (_no == 10)
|
||||
00007e 280a CMP r0,#0xa
|
||||
000080 d103 BNE |L7.138|
|
||||
;;;212 {
|
||||
;;;213 GPIO_PORT_LED11->BRR = GPIO_PIN_LED11;
|
||||
000082 2102 MOVS r1,#2
|
||||
000084 4a0d LDR r2,|L7.188|
|
||||
000086 6011 STR r1,[r2,#0]
|
||||
000088 e010 B |L7.172|
|
||||
|L7.138|
|
||||
;;;214 }
|
||||
;;;215 else if (_no == 11)
|
||||
00008a 280b CMP r0,#0xb
|
||||
00008c d103 BNE |L7.150|
|
||||
;;;216 {
|
||||
;;;217 GPIO_PORT_LED12->BRR = GPIO_PIN_LED12;
|
||||
00008e 2101 MOVS r1,#1
|
||||
000090 4a0a LDR r2,|L7.188|
|
||||
000092 6011 STR r1,[r2,#0]
|
||||
000094 e00a B |L7.172|
|
||||
|L7.150|
|
||||
;;;218 }
|
||||
;;;219 else if (_no == 12)
|
||||
000096 280c CMP r0,#0xc
|
||||
000098 d103 BNE |L7.162|
|
||||
;;;220 {
|
||||
;;;221 GPIO_PORT_LED13->BRR = GPIO_PIN_LED13;
|
||||
00009a 2120 MOVS r1,#0x20
|
||||
00009c 4a08 LDR r2,|L7.192|
|
||||
00009e 6011 STR r1,[r2,#0]
|
||||
0000a0 e004 B |L7.172|
|
||||
|L7.162|
|
||||
;;;222 }
|
||||
;;;223 else if (_no == 13)
|
||||
0000a2 280d CMP r0,#0xd
|
||||
0000a4 d102 BNE |L7.172|
|
||||
;;;224 {
|
||||
;;;225 GPIO_PORT_LED14->BRR = GPIO_PIN_LED14;
|
||||
0000a6 2110 MOVS r1,#0x10
|
||||
0000a8 4a05 LDR r2,|L7.192|
|
||||
0000aa 6011 STR r1,[r2,#0]
|
||||
|L7.172|
|
||||
;;;226 }
|
||||
;;;227 }
|
||||
0000ac 4770 BX lr
|
||||
;;;228
|
||||
ENDP
|
||||
|
||||
0000ae 0000 DCW 0x0000
|
||||
|L7.176|
|
||||
DCD 0x40010814
|
||||
|L7.180|
|
||||
DCD 0x40011000
|
||||
|L7.184|
|
||||
DCD 0x40011414
|
||||
|L7.188|
|
||||
DCD 0x40011c14
|
||||
|L7.192|
|
||||
DCD 0x40011814
|
||||
|
||||
AREA ||i.bsp_LedOn||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_LedOn PROC
|
||||
;;;236 */
|
||||
;;;237 void bsp_LedOn(uint8_t _no)
|
||||
000000 1e41 SUBS r1,r0,#1
|
||||
;;;238 {
|
||||
;;;239 _no--;
|
||||
000002 b2c8 UXTB r0,r1
|
||||
;;;240
|
||||
;;;241 if (_no == 0)
|
||||
000004 b920 CBNZ r0,|L8.16|
|
||||
;;;242 {
|
||||
;;;243 GPIO_PORT_LED1->BSRR = GPIO_PIN_LED1;
|
||||
000006 f44f4100 MOV r1,#0x8000
|
||||
00000a 4a29 LDR r2,|L8.176|
|
||||
00000c 6011 STR r1,[r2,#0]
|
||||
00000e e04d B |L8.172|
|
||||
|L8.16|
|
||||
;;;244 }
|
||||
;;;245 else if (_no == 1)
|
||||
000010 2801 CMP r0,#1
|
||||
000012 d103 BNE |L8.28|
|
||||
;;;246 {
|
||||
;;;247 GPIO_PORT_LED2->BSRR = GPIO_PIN_LED2;
|
||||
000014 0281 LSLS r1,r0,#10
|
||||
000016 4a27 LDR r2,|L8.180|
|
||||
000018 6111 STR r1,[r2,#0x10]
|
||||
00001a e047 B |L8.172|
|
||||
|L8.28|
|
||||
;;;248 }
|
||||
;;;249 else if (_no == 2)
|
||||
00001c 2802 CMP r0,#2
|
||||
00001e d103 BNE |L8.40|
|
||||
;;;250 {
|
||||
;;;251 GPIO_PORT_LED3->BSRR = GPIO_PIN_LED3;
|
||||
000020 0281 LSLS r1,r0,#10
|
||||
000022 4a24 LDR r2,|L8.180|
|
||||
000024 6111 STR r1,[r2,#0x10]
|
||||
000026 e041 B |L8.172|
|
||||
|L8.40|
|
||||
;;;252 }
|
||||
;;;253 else if (_no == 3)
|
||||
000028 2803 CMP r0,#3
|
||||
00002a d104 BNE |L8.54|
|
||||
;;;254 {
|
||||
;;;255 GPIO_PORT_LED4->BSRR = GPIO_PIN_LED4;
|
||||
00002c f44f5180 MOV r1,#0x1000
|
||||
000030 4a20 LDR r2,|L8.180|
|
||||
000032 6111 STR r1,[r2,#0x10]
|
||||
000034 e03a B |L8.172|
|
||||
|L8.54|
|
||||
;;;256 }
|
||||
;;;257 else if (_no == 4)
|
||||
000036 2804 CMP r0,#4
|
||||
000038 d103 BNE |L8.66|
|
||||
;;;258 {
|
||||
;;;259 GPIO_PORT_LED5->BSRR = GPIO_PIN_LED5;
|
||||
00003a 2101 MOVS r1,#1
|
||||
00003c 4a1e LDR r2,|L8.184|
|
||||
00003e 6011 STR r1,[r2,#0]
|
||||
000040 e034 B |L8.172|
|
||||
|L8.66|
|
||||
;;;260 }
|
||||
;;;261 else if (_no == 5)
|
||||
000042 2805 CMP r0,#5
|
||||
000044 d103 BNE |L8.78|
|
||||
;;;262 {
|
||||
;;;263 GPIO_PORT_LED6->BSRR = GPIO_PIN_LED6;
|
||||
000046 2102 MOVS r1,#2
|
||||
000048 4a1b LDR r2,|L8.184|
|
||||
00004a 6011 STR r1,[r2,#0]
|
||||
00004c e02e B |L8.172|
|
||||
|L8.78|
|
||||
;;;264 }
|
||||
;;;265 else if (_no == 6)
|
||||
00004e 2806 CMP r0,#6
|
||||
000050 d103 BNE |L8.90|
|
||||
;;;266 {
|
||||
;;;267 GPIO_PORT_LED7->BSRR = GPIO_PIN_LED7;
|
||||
000052 2120 MOVS r1,#0x20
|
||||
000054 4a19 LDR r2,|L8.188|
|
||||
000056 6011 STR r1,[r2,#0]
|
||||
000058 e028 B |L8.172|
|
||||
|L8.90|
|
||||
;;;268 }
|
||||
;;;269 else if (_no == 7)
|
||||
00005a 2807 CMP r0,#7
|
||||
00005c d103 BNE |L8.102|
|
||||
;;;270 {
|
||||
;;;271 GPIO_PORT_LED8->BSRR = GPIO_PIN_LED8;
|
||||
00005e 2110 MOVS r1,#0x10
|
||||
000060 4a16 LDR r2,|L8.188|
|
||||
000062 6011 STR r1,[r2,#0]
|
||||
000064 e022 B |L8.172|
|
||||
|L8.102|
|
||||
;;;272 }
|
||||
;;;273 else if (_no == 8)
|
||||
000066 2808 CMP r0,#8
|
||||
000068 d103 BNE |L8.114|
|
||||
;;;274 {
|
||||
;;;275 GPIO_PORT_LED9->BSRR = GPIO_PIN_LED9;
|
||||
00006a 2108 MOVS r1,#8
|
||||
00006c 4a13 LDR r2,|L8.188|
|
||||
00006e 6011 STR r1,[r2,#0]
|
||||
000070 e01c B |L8.172|
|
||||
|L8.114|
|
||||
;;;276 }
|
||||
;;;277 else if (_no == 9)
|
||||
000072 2809 CMP r0,#9
|
||||
000074 d103 BNE |L8.126|
|
||||
;;;278 {
|
||||
;;;279 GPIO_PORT_LED10->BSRR = GPIO_PIN_LED10;
|
||||
000076 2104 MOVS r1,#4
|
||||
000078 4a10 LDR r2,|L8.188|
|
||||
00007a 6011 STR r1,[r2,#0]
|
||||
00007c e016 B |L8.172|
|
||||
|L8.126|
|
||||
;;;280 }
|
||||
;;;281 else if (_no == 10)
|
||||
00007e 280a CMP r0,#0xa
|
||||
000080 d103 BNE |L8.138|
|
||||
;;;282 {
|
||||
;;;283 GPIO_PORT_LED11->BSRR = GPIO_PIN_LED11;
|
||||
000082 2102 MOVS r1,#2
|
||||
000084 4a0d LDR r2,|L8.188|
|
||||
000086 6011 STR r1,[r2,#0]
|
||||
000088 e010 B |L8.172|
|
||||
|L8.138|
|
||||
;;;284 }
|
||||
;;;285 else if (_no == 11)
|
||||
00008a 280b CMP r0,#0xb
|
||||
00008c d103 BNE |L8.150|
|
||||
;;;286 {
|
||||
;;;287 GPIO_PORT_LED12->BSRR = GPIO_PIN_LED12;
|
||||
00008e 2101 MOVS r1,#1
|
||||
000090 4a0a LDR r2,|L8.188|
|
||||
000092 6011 STR r1,[r2,#0]
|
||||
000094 e00a B |L8.172|
|
||||
|L8.150|
|
||||
;;;288 }
|
||||
;;;289 else if (_no == 12)
|
||||
000096 280c CMP r0,#0xc
|
||||
000098 d103 BNE |L8.162|
|
||||
;;;290 {
|
||||
;;;291 GPIO_PORT_LED13->BSRR = GPIO_PIN_LED13;
|
||||
00009a 2120 MOVS r1,#0x20
|
||||
00009c 4a08 LDR r2,|L8.192|
|
||||
00009e 6011 STR r1,[r2,#0]
|
||||
0000a0 e004 B |L8.172|
|
||||
|L8.162|
|
||||
;;;292 }
|
||||
;;;293 else if (_no == 13)
|
||||
0000a2 280d CMP r0,#0xd
|
||||
0000a4 d102 BNE |L8.172|
|
||||
;;;294 {
|
||||
;;;295 GPIO_PORT_LED14->BSRR = GPIO_PIN_LED14;
|
||||
0000a6 2110 MOVS r1,#0x10
|
||||
0000a8 4a05 LDR r2,|L8.192|
|
||||
0000aa 6011 STR r1,[r2,#0]
|
||||
|L8.172|
|
||||
;;;296 }
|
||||
;;;297
|
||||
;;;298 }
|
||||
0000ac 4770 BX lr
|
||||
;;;299
|
||||
ENDP
|
||||
|
||||
0000ae 0000 DCW 0x0000
|
||||
|L8.176|
|
||||
DCD 0x40010810
|
||||
|L8.180|
|
||||
DCD 0x40011000
|
||||
|L8.184|
|
||||
DCD 0x40011410
|
||||
|L8.188|
|
||||
DCD 0x40011c10
|
||||
|L8.192|
|
||||
DCD 0x40011810
|
||||
|
||||
AREA ||i.bsp_LedToggle||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_LedToggle PROC
|
||||
;;;307 */
|
||||
;;;308 void bsp_LedToggle(uint8_t _no)
|
||||
000000 2801 CMP r0,#1
|
||||
;;;309 {
|
||||
;;;310 if (_no == 1)
|
||||
000002 d106 BNE |L9.18|
|
||||
;;;311 {
|
||||
;;;312 GPIO_PORT_LED1->ODR ^= GPIO_PIN_LED1;
|
||||
000004 4910 LDR r1,|L9.72|
|
||||
000006 6809 LDR r1,[r1,#0]
|
||||
000008 f4814100 EOR r1,r1,#0x8000
|
||||
00000c 4a0e LDR r2,|L9.72|
|
||||
00000e 6011 STR r1,[r2,#0]
|
||||
000010 e019 B |L9.70|
|
||||
|L9.18|
|
||||
;;;313 }
|
||||
;;;314 else if (_no == 2)
|
||||
000012 2802 CMP r0,#2
|
||||
000014 d106 BNE |L9.36|
|
||||
;;;315 {
|
||||
;;;316 GPIO_PORT_LED2->ODR ^= GPIO_PIN_LED2;
|
||||
000016 490d LDR r1,|L9.76|
|
||||
000018 68c9 LDR r1,[r1,#0xc]
|
||||
00001a f4816180 EOR r1,r1,#0x400
|
||||
00001e 4a0b LDR r2,|L9.76|
|
||||
000020 60d1 STR r1,[r2,#0xc]
|
||||
000022 e010 B |L9.70|
|
||||
|L9.36|
|
||||
;;;317 }
|
||||
;;;318 else if (_no == 3)
|
||||
000024 2803 CMP r0,#3
|
||||
000026 d106 BNE |L9.54|
|
||||
;;;319 {
|
||||
;;;320 GPIO_PORT_LED3->ODR ^= GPIO_PIN_LED3;
|
||||
000028 4908 LDR r1,|L9.76|
|
||||
00002a 68c9 LDR r1,[r1,#0xc]
|
||||
00002c f4816100 EOR r1,r1,#0x800
|
||||
000030 4a06 LDR r2,|L9.76|
|
||||
000032 60d1 STR r1,[r2,#0xc]
|
||||
000034 e007 B |L9.70|
|
||||
|L9.54|
|
||||
;;;321 }
|
||||
;;;322 else if (_no == 4)
|
||||
000036 2804 CMP r0,#4
|
||||
000038 d105 BNE |L9.70|
|
||||
;;;323 {
|
||||
;;;324 GPIO_PORT_LED4->ODR ^= GPIO_PIN_LED4;
|
||||
00003a 4904 LDR r1,|L9.76|
|
||||
00003c 68c9 LDR r1,[r1,#0xc]
|
||||
00003e f4815180 EOR r1,r1,#0x1000
|
||||
000042 4a02 LDR r2,|L9.76|
|
||||
000044 60d1 STR r1,[r2,#0xc]
|
||||
|L9.70|
|
||||
;;;325 }
|
||||
;;;326 }
|
||||
000046 4770 BX lr
|
||||
;;;327
|
||||
ENDP
|
||||
|
||||
|L9.72|
|
||||
DCD 0x4001080c
|
||||
|L9.76|
|
||||
DCD 0x40011000
|
||||
|
||||
AREA ||i.bsp_ResSelect||, CODE, READONLY, ALIGN=1
|
||||
|
||||
bsp_ResSelect PROC
|
||||
;;;436
|
||||
;;;437 void bsp_ResSelect(uint8_t _res)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;438 {
|
||||
000002 4604 MOV r4,r0
|
||||
;;;439 ResLedAllOff();
|
||||
000004 f7fffffe BL ResLedAllOff
|
||||
;;;440 //printf("_res:%d\r\n",_res);
|
||||
;;;441 bsp_LedOn(_res);
|
||||
000008 4620 MOV r0,r4
|
||||
00000a f7fffffe BL bsp_LedOn
|
||||
;;;442 bsp_SelectRes(_res);
|
||||
00000e 4620 MOV r0,r4
|
||||
000010 f7fffffe BL bsp_SelectRes
|
||||
;;;443 }
|
||||
000014 bd10 POP {r4,pc}
|
||||
;;;444
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||.data||, DATA, ALIGN=0
|
||||
|
||||
s_ucOldCh
|
||||
000000 ff DCB 0xff
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\src\\bsp_led.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___9_bsp_led_c_ba23b041____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___9_bsp_led_c_ba23b041____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___9_bsp_led_c_ba23b041____REVSH|
|
||||
#line 128
|
||||
|__asm___9_bsp_led_c_ba23b041____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
349
Project/MDK-ARM/Flash/List/bsp_res.txt
Normal file
349
Project/MDK-ARM/Flash/List/bsp_res.txt
Normal file
@@ -0,0 +1,349 @@
|
||||
; generated by Component: ARM Compiler 5.05 update 1 (build 106) Tool: ArmCC [4d0efa]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp_res.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_res.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -IC:\Keil_v5\ARM\RV31\INC -IC:\Keil_v5\ARM\CMSIS\Include -IC:\Keil_v5\ARM\Inc\ST\STM32F10x -D__MICROLIB -D__UVISION_VERSION=514 -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp_res.crf ..\..\User\bsp\src\bsp_res.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.bsp_InitRes||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_InitRes PROC
|
||||
;;;39 //------------------------------------------------------------------------------
|
||||
;;;40 void bsp_InitRes(void)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;41 {
|
||||
;;;42 GPIO_InitTypeDef GPIO_InitStructure;
|
||||
;;;43
|
||||
;;;44 // ´ò¿ªGPIOʱÖÓ
|
||||
;;;45 RCC_APB2PeriphClockCmd(RCC_ALL_RES, ENABLE);
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 2018 MOVS r0,#0x18
|
||||
000006 f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;46
|
||||
;;;47 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
00000a 2003 MOVS r0,#3
|
||||
00000c f88d0002 STRB r0,[sp,#2]
|
||||
;;;48 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /* ÍÆÍìÊä³öģʽ */
|
||||
000010 2010 MOVS r0,#0x10
|
||||
000012 f88d0003 STRB r0,[sp,#3]
|
||||
;;;49
|
||||
;;;50 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RES10;
|
||||
000016 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;51 GPIO_Init(GPIO_PORT_RES10, &GPIO_InitStructure);
|
||||
00001a 4669 MOV r1,sp
|
||||
00001c 480c LDR r0,|L1.80|
|
||||
00001e f7fffffe BL GPIO_Init
|
||||
;;;52
|
||||
;;;53 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RES51_1;
|
||||
000022 2020 MOVS r0,#0x20
|
||||
000024 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;54 GPIO_Init(GPIO_PORT_RES51_1, &GPIO_InitStructure);
|
||||
000028 4669 MOV r1,sp
|
||||
00002a 4809 LDR r0,|L1.80|
|
||||
00002c f7fffffe BL GPIO_Init
|
||||
;;;55
|
||||
;;;56 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RES51_2;
|
||||
000030 2001 MOVS r0,#1
|
||||
000032 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;57 GPIO_Init(GPIO_PORT_RES51_2, &GPIO_InitStructure);
|
||||
000036 4669 MOV r1,sp
|
||||
000038 4806 LDR r0,|L1.84|
|
||||
00003a f7fffffe BL GPIO_Init
|
||||
;;;58
|
||||
;;;59 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RES100;
|
||||
00003e 2002 MOVS r0,#2
|
||||
000040 f8ad0000 STRH r0,[sp,#0]
|
||||
;;;60 GPIO_Init(GPIO_PORT_RES100, &GPIO_InitStructure);
|
||||
000044 4669 MOV r1,sp
|
||||
000046 4803 LDR r0,|L1.84|
|
||||
000048 f7fffffe BL GPIO_Init
|
||||
;;;61 }
|
||||
00004c bd08 POP {r3,pc}
|
||||
;;;62
|
||||
ENDP
|
||||
|
||||
00004e 0000 DCW 0x0000
|
||||
|L1.80|
|
||||
DCD 0x40011000
|
||||
|L1.84|
|
||||
DCD 0x40010c00
|
||||
|
||||
AREA ||i.bsp_Port100_Output||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_Port100_Output PROC
|
||||
;;;119 //------------------------------------------------------------------------------
|
||||
;;;120 void bsp_Port100_Output(uint8_t _status)
|
||||
000000 b918 CBNZ r0,|L2.10|
|
||||
;;;121 {
|
||||
;;;122 if(_status==0)
|
||||
;;;123 {
|
||||
;;;124 GPIO_PORT_RES100->BRR = GPIO_PIN_RES100;
|
||||
000002 2102 MOVS r1,#2
|
||||
000004 4a04 LDR r2,|L2.24|
|
||||
000006 6011 STR r1,[r2,#0]
|
||||
000008 e005 B |L2.22|
|
||||
|L2.10|
|
||||
;;;125 }
|
||||
;;;126 else if(_status==1)
|
||||
00000a 2801 CMP r0,#1
|
||||
00000c d103 BNE |L2.22|
|
||||
;;;127 {
|
||||
;;;128 GPIO_PORT_RES100->BSRR = GPIO_PIN_RES100;
|
||||
00000e 2102 MOVS r1,#2
|
||||
000010 4a01 LDR r2,|L2.24|
|
||||
000012 1f12 SUBS r2,r2,#4
|
||||
000014 6011 STR r1,[r2,#0]
|
||||
|L2.22|
|
||||
;;;129 }
|
||||
;;;130 }
|
||||
000016 4770 BX lr
|
||||
;;;131
|
||||
ENDP
|
||||
|
||||
|L2.24|
|
||||
DCD 0x40010c14
|
||||
|
||||
AREA ||i.bsp_Port10_Output||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_Port10_Output PROC
|
||||
;;;68 //------------------------------------------------------------------------------
|
||||
;;;69 void bsp_Port10_Output(uint8_t _status)
|
||||
000000 b918 CBNZ r0,|L3.10|
|
||||
;;;70 {
|
||||
;;;71 if(_status==0)
|
||||
;;;72 {
|
||||
;;;73 GPIO_PORT_RES10->BRR = GPIO_PIN_RES10;
|
||||
000002 2110 MOVS r1,#0x10
|
||||
000004 4a04 LDR r2,|L3.24|
|
||||
000006 6151 STR r1,[r2,#0x14]
|
||||
000008 e004 B |L3.20|
|
||||
|L3.10|
|
||||
;;;74 }
|
||||
;;;75 else if(_status==1)
|
||||
00000a 2801 CMP r0,#1
|
||||
00000c d102 BNE |L3.20|
|
||||
;;;76 {
|
||||
;;;77 GPIO_PORT_RES10->BSRR = GPIO_PIN_RES10;
|
||||
00000e 2110 MOVS r1,#0x10
|
||||
000010 4a01 LDR r2,|L3.24|
|
||||
000012 6111 STR r1,[r2,#0x10]
|
||||
|L3.20|
|
||||
;;;78 }
|
||||
;;;79 }
|
||||
000014 4770 BX lr
|
||||
;;;80 //------------------------------------------------------------------------------
|
||||
ENDP
|
||||
|
||||
000016 0000 DCW 0x0000
|
||||
|L3.24|
|
||||
DCD 0x40011000
|
||||
|
||||
AREA ||i.bsp_Port51_1_Output||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_Port51_1_Output PROC
|
||||
;;;85 //------------------------------------------------------------------------------
|
||||
;;;86 void bsp_Port51_1_Output(uint8_t _status)
|
||||
000000 b918 CBNZ r0,|L4.10|
|
||||
;;;87 {
|
||||
;;;88 if(_status==0)
|
||||
;;;89 {
|
||||
;;;90 GPIO_PORT_RES51_1->BRR = GPIO_PIN_RES51_1;
|
||||
000002 2120 MOVS r1,#0x20
|
||||
000004 4a04 LDR r2,|L4.24|
|
||||
000006 6151 STR r1,[r2,#0x14]
|
||||
000008 e004 B |L4.20|
|
||||
|L4.10|
|
||||
;;;91 }
|
||||
;;;92 else if(_status==1)
|
||||
00000a 2801 CMP r0,#1
|
||||
00000c d102 BNE |L4.20|
|
||||
;;;93 {
|
||||
;;;94 GPIO_PORT_RES51_1->BSRR = GPIO_PIN_RES51_1;
|
||||
00000e 2120 MOVS r1,#0x20
|
||||
000010 4a01 LDR r2,|L4.24|
|
||||
000012 6111 STR r1,[r2,#0x10]
|
||||
|L4.20|
|
||||
;;;95 }
|
||||
;;;96 }
|
||||
000014 4770 BX lr
|
||||
;;;97 //------------------------------------------------------------------------------
|
||||
ENDP
|
||||
|
||||
000016 0000 DCW 0x0000
|
||||
|L4.24|
|
||||
DCD 0x40011000
|
||||
|
||||
AREA ||i.bsp_Port51_2_Output||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_Port51_2_Output PROC
|
||||
;;;102 //------------------------------------------------------------------------------
|
||||
;;;103 void bsp_Port51_2_Output(uint8_t _status)
|
||||
000000 b918 CBNZ r0,|L5.10|
|
||||
;;;104 {
|
||||
;;;105 if(_status==0)
|
||||
;;;106 {
|
||||
;;;107 GPIO_PORT_RES51_2->BRR = GPIO_PIN_RES51_2;
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 4a04 LDR r2,|L5.24|
|
||||
000006 6011 STR r1,[r2,#0]
|
||||
000008 e005 B |L5.22|
|
||||
|L5.10|
|
||||
;;;108 }
|
||||
;;;109 else if(_status==1)
|
||||
00000a 2801 CMP r0,#1
|
||||
00000c d103 BNE |L5.22|
|
||||
;;;110 {
|
||||
;;;111 GPIO_PORT_RES51_2->BSRR = GPIO_PIN_RES51_2;
|
||||
00000e 2101 MOVS r1,#1
|
||||
000010 4a01 LDR r2,|L5.24|
|
||||
000012 1f12 SUBS r2,r2,#4
|
||||
000014 6011 STR r1,[r2,#0]
|
||||
|L5.22|
|
||||
;;;112 }
|
||||
;;;113 }
|
||||
000016 4770 BX lr
|
||||
;;;114 //------------------------------------------------------------------------------
|
||||
ENDP
|
||||
|
||||
|L5.24|
|
||||
DCD 0x40010c14
|
||||
|
||||
AREA ||i.bsp_SelectRes||, CODE, READONLY, ALIGN=1
|
||||
|
||||
bsp_SelectRes PROC
|
||||
;;;137 //------------------------------------------------------------------------------
|
||||
;;;138 void bsp_SelectRes(uint8_t _res)
|
||||
000000 b500 PUSH {lr}
|
||||
;;;139 {
|
||||
000002 4603 MOV r3,r0
|
||||
;;;140 switch(_res)
|
||||
000004 1fd8 SUBS r0,r3,#7
|
||||
000006 2808 CMP r0,#8
|
||||
000008 d26d BCS |L6.230|
|
||||
00000a e8dff000 TBB [pc,r0]
|
||||
00000e 0411 DCB 0x04,0x11
|
||||
000010 1e2b3845 DCB 0x1e,0x2b,0x38,0x45
|
||||
000014 525f DCB 0x52,0x5f
|
||||
;;;141 {
|
||||
;;;142 case RES_0:
|
||||
;;;143 bsp_Port10_Output(0);bsp_Port51_1_Output(0);bsp_Port51_2_Output(0);bsp_Port100_Output(0); break;
|
||||
000016 2000 MOVS r0,#0
|
||||
000018 f7fffffe BL bsp_Port10_Output
|
||||
00001c 2000 MOVS r0,#0
|
||||
00001e f7fffffe BL bsp_Port51_1_Output
|
||||
000022 2000 MOVS r0,#0
|
||||
000024 f7fffffe BL bsp_Port51_2_Output
|
||||
000028 2000 MOVS r0,#0
|
||||
00002a f7fffffe BL bsp_Port100_Output
|
||||
00002e e05b B |L6.232|
|
||||
;;;144 case RES_10:
|
||||
;;;145 bsp_Port10_Output(1);bsp_Port51_1_Output(0);bsp_Port51_2_Output(0);bsp_Port100_Output(0); break;
|
||||
000030 2001 MOVS r0,#1
|
||||
000032 f7fffffe BL bsp_Port10_Output
|
||||
000036 2000 MOVS r0,#0
|
||||
000038 f7fffffe BL bsp_Port51_1_Output
|
||||
00003c 2000 MOVS r0,#0
|
||||
00003e f7fffffe BL bsp_Port51_2_Output
|
||||
000042 2000 MOVS r0,#0
|
||||
000044 f7fffffe BL bsp_Port100_Output
|
||||
000048 e04e B |L6.232|
|
||||
;;;146 case RES_61:
|
||||
;;;147 bsp_Port10_Output(1);bsp_Port51_1_Output(1);bsp_Port51_2_Output(0);bsp_Port100_Output(0); break;
|
||||
00004a 2001 MOVS r0,#1
|
||||
00004c f7fffffe BL bsp_Port10_Output
|
||||
000050 2001 MOVS r0,#1
|
||||
000052 f7fffffe BL bsp_Port51_1_Output
|
||||
000056 2000 MOVS r0,#0
|
||||
000058 f7fffffe BL bsp_Port51_2_Output
|
||||
00005c 2000 MOVS r0,#0
|
||||
00005e f7fffffe BL bsp_Port100_Output
|
||||
000062 e041 B |L6.232|
|
||||
;;;148 case RES_100:
|
||||
;;;149 bsp_Port10_Output(0);bsp_Port51_1_Output(0);bsp_Port51_2_Output(0);bsp_Port100_Output(1); break;
|
||||
000064 2000 MOVS r0,#0
|
||||
000066 f7fffffe BL bsp_Port10_Output
|
||||
00006a 2000 MOVS r0,#0
|
||||
00006c f7fffffe BL bsp_Port51_1_Output
|
||||
000070 2000 MOVS r0,#0
|
||||
000072 f7fffffe BL bsp_Port51_2_Output
|
||||
000076 2001 MOVS r0,#1
|
||||
000078 f7fffffe BL bsp_Port100_Output
|
||||
00007c e034 B |L6.232|
|
||||
;;;150 case RES_110:
|
||||
;;;151 bsp_Port10_Output(1);bsp_Port51_1_Output(0);bsp_Port51_2_Output(0);bsp_Port100_Output(1); break;
|
||||
00007e 2001 MOVS r0,#1
|
||||
000080 f7fffffe BL bsp_Port10_Output
|
||||
000084 2000 MOVS r0,#0
|
||||
000086 f7fffffe BL bsp_Port51_1_Output
|
||||
00008a 2000 MOVS r0,#0
|
||||
00008c f7fffffe BL bsp_Port51_2_Output
|
||||
000090 2001 MOVS r0,#1
|
||||
000092 f7fffffe BL bsp_Port100_Output
|
||||
000096 e027 B |L6.232|
|
||||
;;;152 case RES_151:
|
||||
;;;153 bsp_Port10_Output(0);bsp_Port51_1_Output(1);bsp_Port51_2_Output(0);bsp_Port100_Output(1); break;
|
||||
000098 2000 MOVS r0,#0
|
||||
00009a f7fffffe BL bsp_Port10_Output
|
||||
00009e 2001 MOVS r0,#1
|
||||
0000a0 f7fffffe BL bsp_Port51_1_Output
|
||||
0000a4 2000 MOVS r0,#0
|
||||
0000a6 f7fffffe BL bsp_Port51_2_Output
|
||||
0000aa 2001 MOVS r0,#1
|
||||
0000ac f7fffffe BL bsp_Port100_Output
|
||||
0000b0 e01a B |L6.232|
|
||||
;;;154 case RES_202:
|
||||
;;;155 bsp_Port10_Output(0);bsp_Port51_1_Output(1);bsp_Port51_2_Output(1);bsp_Port100_Output(1); break;
|
||||
0000b2 2000 MOVS r0,#0
|
||||
0000b4 f7fffffe BL bsp_Port10_Output
|
||||
0000b8 2001 MOVS r0,#1
|
||||
0000ba f7fffffe BL bsp_Port51_1_Output
|
||||
0000be 2001 MOVS r0,#1
|
||||
0000c0 f7fffffe BL bsp_Port51_2_Output
|
||||
0000c4 2001 MOVS r0,#1
|
||||
0000c6 f7fffffe BL bsp_Port100_Output
|
||||
0000ca e00d B |L6.232|
|
||||
;;;156 case RES_212:
|
||||
;;;157 bsp_Port10_Output(1);bsp_Port51_1_Output(1);bsp_Port51_2_Output(1);bsp_Port100_Output(1); break;
|
||||
0000cc 2001 MOVS r0,#1
|
||||
0000ce f7fffffe BL bsp_Port10_Output
|
||||
0000d2 2001 MOVS r0,#1
|
||||
0000d4 f7fffffe BL bsp_Port51_1_Output
|
||||
0000d8 2001 MOVS r0,#1
|
||||
0000da f7fffffe BL bsp_Port51_2_Output
|
||||
0000de 2001 MOVS r0,#1
|
||||
0000e0 f7fffffe BL bsp_Port100_Output
|
||||
0000e4 e000 B |L6.232|
|
||||
|L6.230|
|
||||
;;;158 default: break;
|
||||
0000e6 bf00 NOP
|
||||
|L6.232|
|
||||
0000e8 bf00 NOP ;143
|
||||
;;;159 }
|
||||
;;;160 }
|
||||
0000ea bd00 POP {pc}
|
||||
;;;161
|
||||
ENDP
|
||||
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\src\\bsp_res.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___9_bsp_res_c_2f48bbfc____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___9_bsp_res_c_2f48bbfc____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___9_bsp_res_c_2f48bbfc____REVSH|
|
||||
#line 128
|
||||
|__asm___9_bsp_res_c_2f48bbfc____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
562
Project/MDK-ARM/Flash/List/bsp_step_moto.txt
Normal file
562
Project/MDK-ARM/Flash/List/bsp_step_moto.txt
Normal file
@@ -0,0 +1,562 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp_step_moto.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_step_moto.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp_step_moto.crf ..\..\User\bsp\src\bsp_step_moto.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.MOTO_ISR||, CODE, READONLY, ALIGN=2
|
||||
|
||||
MOTO_ISR PROC
|
||||
;;;182 //------------------------------------------------------------------------------
|
||||
;;;183 void MOTO_ISR(void)
|
||||
000000 e92d41f0 PUSH {r4-r8,lr}
|
||||
;;;184 {
|
||||
;;;185 if (g_tMoto.Running == 0)
|
||||
000004 483c LDR r0,|L1.248|
|
||||
000006 7e00 LDRB r0,[r0,#0x18] ; g_tMoto
|
||||
000008 b908 CBNZ r0,|L1.14|
|
||||
|L1.10|
|
||||
;;;186 {
|
||||
;;;187 return;
|
||||
;;;188 }
|
||||
;;;189 // BEEP_KeyTone();
|
||||
;;;190
|
||||
;;;191 // g_tMoto.Pos = 0;
|
||||
;;;192 switch (g_tMoto.Pos)
|
||||
;;;193 {
|
||||
;;;194 case 0:
|
||||
;;;195 {
|
||||
;;;196 g_tMoto.Pos = 1;
|
||||
;;;197 MOTO_STEP_1();
|
||||
;;;198 g_tMoto.prev_pv_pulse = g_tMoto.pv_pulse;
|
||||
;;;199 if (g_tMoto.pv_pulse < g_tMoto.sv_pulse)
|
||||
;;;200 {
|
||||
;;;201 g_tMoto.pv_pulse++;
|
||||
;;;202 }
|
||||
;;;203 else if (g_tMoto.pv_pulse > g_tMoto.sv_pulse)
|
||||
;;;204 {
|
||||
;;;205 g_tMoto.pv_pulse--;
|
||||
;;;206 }
|
||||
;;;207 // 检测过零点:pv_pulse 每跨越一个 STEP_PER_LAP(即每转一圈)翻转PA6
|
||||
;;;208 if ((g_tMoto.prev_pv_pulse / STEP_PER_LAP) != (g_tMoto.pv_pulse / STEP_PER_LAP))
|
||||
;;;209 {
|
||||
;;;210 ZERO_SIG_TOGGLE();
|
||||
;;;211 }
|
||||
;;;212 break;
|
||||
;;;213 }
|
||||
;;;214
|
||||
;;;215 case 1:
|
||||
;;;216 {
|
||||
;;;217 g_tMoto.Pos = 0;
|
||||
;;;218 MOTO_STEP_0();
|
||||
;;;219 g_tMoto.CurrentStep++;
|
||||
;;;220 if (g_tMoto.pv_pulse == g_tMoto.sv_pulse)
|
||||
;;;221 {
|
||||
;;;222 MOTO_Stop();
|
||||
;;;223 TIM_ClearITPendingBit(TIM6, TIM_IT_Update); /* 清除中断标志位 */
|
||||
;;;224 }
|
||||
;;;225 break;
|
||||
;;;226 }
|
||||
;;;227 default:
|
||||
;;;228 break;
|
||||
;;;229 }
|
||||
;;;230 }
|
||||
00000a e8bd81f0 POP {r4-r8,pc}
|
||||
|L1.14|
|
||||
00000e 483a LDR r0,|L1.248|
|
||||
000010 7e40 LDRB r0,[r0,#0x19] ;192 ; g_tMoto
|
||||
000012 b110 CBZ r0,|L1.26|
|
||||
000014 2801 CMP r0,#1 ;192
|
||||
000016 d16b BNE |L1.240|
|
||||
000018 e04e B |L1.184|
|
||||
|L1.26|
|
||||
00001a 2001 MOVS r0,#1 ;196
|
||||
00001c 4936 LDR r1,|L1.248|
|
||||
00001e 7648 STRB r0,[r1,#0x19] ;196
|
||||
000020 2080 MOVS r0,#0x80 ;197
|
||||
000022 4936 LDR r1,|L1.252|
|
||||
000024 6108 STR r0,[r1,#0x10] ;197
|
||||
000026 4834 LDR r0,|L1.248|
|
||||
000028 e9d01008 LDRD r1,r0,[r0,#0x20] ;198
|
||||
00002c 4a32 LDR r2,|L1.248|
|
||||
00002e e9c2100c STRD r1,r0,[r2,#0x30] ;198
|
||||
000032 4610 MOV r0,r2 ;199
|
||||
000034 e9d03008 LDRD r3,r0,[r0,#0x20] ;199
|
||||
000038 e9d2120a LDRD r1,r2,[r2,#0x28] ;199
|
||||
00003c 1a59 SUBS r1,r3,r1 ;199
|
||||
00003e 4190 SBCS r0,r0,r2 ;199
|
||||
000040 da09 BGE |L1.86|
|
||||
000042 482d LDR r0,|L1.248|
|
||||
000044 e9d01008 LDRD r1,r0,[r0,#0x20] ;201
|
||||
000048 1c49 ADDS r1,r1,#1 ;201
|
||||
00004a f1400000 ADC r0,r0,#0 ;201
|
||||
00004e 4a2a LDR r2,|L1.248|
|
||||
000050 e9c21008 STRD r1,r0,[r2,#0x20] ;201
|
||||
000054 e011 B |L1.122|
|
||||
|L1.86|
|
||||
000056 4828 LDR r0,|L1.248|
|
||||
000058 e9d0200a LDRD r2,r0,[r0,#0x28] ;203
|
||||
00005c 4926 LDR r1,|L1.248|
|
||||
00005e e9d13108 LDRD r3,r1,[r1,#0x20] ;203
|
||||
000062 1ad2 SUBS r2,r2,r3 ;203
|
||||
000064 4188 SBCS r0,r0,r1 ;203
|
||||
000066 da08 BGE |L1.122|
|
||||
000068 4823 LDR r0,|L1.248|
|
||||
00006a e9d01008 LDRD r1,r0,[r0,#0x20] ;205
|
||||
00006e 1e49 SUBS r1,r1,#1 ;205
|
||||
000070 f1600000 SBC r0,r0,#0 ;205
|
||||
000074 4a20 LDR r2,|L1.248|
|
||||
000076 e9c21008 STRD r1,r0,[r2,#0x20] ;205
|
||||
|L1.122|
|
||||
00007a 481f LDR r0,|L1.248|
|
||||
00007c f242120d MOV r2,#0x210d ;208
|
||||
000080 2300 MOVS r3,#0 ;208
|
||||
000082 e9d0410c LDRD r4,r1,[r0,#0x30] ;208
|
||||
000086 4620 MOV r0,r4 ;208
|
||||
000088 f7fffffe BL __aeabi_ldivmod
|
||||
00008c 4606 MOV r6,r0 ;208
|
||||
00008e 460f MOV r7,r1 ;208
|
||||
000090 4819 LDR r0,|L1.248|
|
||||
000092 f242120d MOV r2,#0x210d ;208
|
||||
000096 2300 MOVS r3,#0 ;208
|
||||
000098 e9d04108 LDRD r4,r1,[r0,#0x20] ;208
|
||||
00009c 4620 MOV r0,r4 ;208
|
||||
00009e f7fffffe BL __aeabi_ldivmod
|
||||
0000a2 4046 EORS r6,r6,r0 ;208
|
||||
0000a4 404f EORS r7,r7,r1 ;208
|
||||
0000a6 433e ORRS r6,r6,r7 ;208
|
||||
0000a8 d005 BEQ |L1.182|
|
||||
0000aa 4815 LDR r0,|L1.256|
|
||||
0000ac 6800 LDR r0,[r0,#0] ;210
|
||||
0000ae f0800040 EOR r0,r0,#0x40 ;210
|
||||
0000b2 4913 LDR r1,|L1.256|
|
||||
0000b4 6008 STR r0,[r1,#0] ;210
|
||||
|L1.182|
|
||||
0000b6 e01c B |L1.242|
|
||||
|L1.184|
|
||||
0000b8 2000 MOVS r0,#0 ;217
|
||||
0000ba 490f LDR r1,|L1.248|
|
||||
0000bc 7648 STRB r0,[r1,#0x19] ;217
|
||||
0000be 2080 MOVS r0,#0x80 ;218
|
||||
0000c0 490e LDR r1,|L1.252|
|
||||
0000c2 6148 STR r0,[r1,#0x14] ;218
|
||||
0000c4 480c LDR r0,|L1.248|
|
||||
0000c6 6900 LDR r0,[r0,#0x10] ;219 ; g_tMoto
|
||||
0000c8 1c40 ADDS r0,r0,#1 ;219
|
||||
0000ca 490b LDR r1,|L1.248|
|
||||
0000cc 6108 STR r0,[r1,#0x10] ;219 ; g_tMoto
|
||||
0000ce 4608 MOV r0,r1 ;220
|
||||
0000d0 e9d01008 LDRD r1,r0,[r0,#0x20] ;220
|
||||
0000d4 4a08 LDR r2,|L1.248|
|
||||
0000d6 e9d2320a LDRD r3,r2,[r2,#0x28] ;220
|
||||
0000da 4059 EORS r1,r1,r3 ;220
|
||||
0000dc 4050 EORS r0,r0,r2 ;220
|
||||
0000de 4301 ORRS r1,r1,r0 ;220
|
||||
0000e0 d105 BNE |L1.238|
|
||||
0000e2 f7fffffe BL MOTO_Stop
|
||||
0000e6 2101 MOVS r1,#1 ;223
|
||||
0000e8 4806 LDR r0,|L1.260|
|
||||
0000ea f7fffffe BL TIM_ClearITPendingBit
|
||||
|L1.238|
|
||||
0000ee e000 B |L1.242|
|
||||
|L1.240|
|
||||
0000f0 bf00 NOP ;228
|
||||
|L1.242|
|
||||
0000f2 bf00 NOP ;212
|
||||
0000f4 bf00 NOP
|
||||
0000f6 e788 B |L1.10|
|
||||
;;;231
|
||||
ENDP
|
||||
|
||||
|L1.248|
|
||||
DCD g_tMoto
|
||||
|L1.252|
|
||||
DCD 0x40011000
|
||||
|L1.256|
|
||||
DCD 0x4001080c
|
||||
|L1.260|
|
||||
DCD 0x40001000
|
||||
|
||||
AREA ||i.MOTO_Pause||, CODE, READONLY, ALIGN=2
|
||||
|
||||
MOTO_Pause PROC
|
||||
;;;148 //------------------------------------------------------------------------------
|
||||
;;;149 void MOTO_Pause(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;150 {
|
||||
;;;151 // void bsp_SetTIMforInt(TIM_TypeDef* TIMx, uint32_t _ulFreq, uint8_t _PreemptionPriority, uint8_t _SubPriority)
|
||||
;;;152 bsp_SetTIMforInt(TIM6, 0, 0, 0);
|
||||
000002 2300 MOVS r3,#0
|
||||
000004 461a MOV r2,r3
|
||||
000006 4619 MOV r1,r3
|
||||
000008 4804 LDR r0,|L2.28|
|
||||
00000a f7fffffe BL bsp_SetTIMforInt
|
||||
;;;153 g_tMoto.Running = 0;
|
||||
00000e 2000 MOVS r0,#0
|
||||
000010 4903 LDR r1,|L2.32|
|
||||
000012 7608 STRB r0,[r1,#0x18]
|
||||
;;;154 MOTO_STEP_0();
|
||||
000014 2080 MOVS r0,#0x80
|
||||
000016 4903 LDR r1,|L2.36|
|
||||
000018 6148 STR r0,[r1,#0x14]
|
||||
;;;155 // bsp_drv8880_enable_config(DISABLE);
|
||||
;;;156 }
|
||||
00001a bd10 POP {r4,pc}
|
||||
;;;157
|
||||
ENDP
|
||||
|
||||
|L2.28|
|
||||
DCD 0x40001000
|
||||
|L2.32|
|
||||
DCD g_tMoto
|
||||
|L2.36|
|
||||
DCD 0x40011000
|
||||
|
||||
AREA ||i.MOTO_RoudToStep||, CODE, READONLY, ALIGN=1
|
||||
|
||||
MOTO_RoudToStep PROC
|
||||
;;;163 //------------------------------------------------------------------------------
|
||||
;;;164 uint32_t MOTO_RoudToStep(void)
|
||||
000000 f44f6080 MOV r0,#0x400
|
||||
;;;165 {
|
||||
;;;166 uint32_t steps;
|
||||
;;;167
|
||||
;;;168 /* 28BYJ48 电机步距角度 = 5.625/64度.
|
||||
;;;169 一圈 360度;
|
||||
;;;170 step = 360 / (5.625 / 64)
|
||||
;;;171 */
|
||||
;;;172 steps = (360 * 64 * 1000 / 4) / 5625; // 4096步
|
||||
;;;173
|
||||
;;;174 return steps;
|
||||
;;;175 }
|
||||
000004 4770 BX lr
|
||||
;;;176
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.MOTO_ShangeSpeed||, CODE, READONLY, ALIGN=2
|
||||
|
||||
MOTO_ShangeSpeed PROC
|
||||
;;;101 //------------------------------------------------------------------------------
|
||||
;;;102 void MOTO_ShangeSpeed(uint32_t _speed)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;103 {
|
||||
000002 4604 MOV r4,r0
|
||||
;;;104 g_tMoto.StepFreq = _speed;
|
||||
000004 4805 LDR r0,|L4.28|
|
||||
000006 6044 STR r4,[r0,#4] ; g_tMoto
|
||||
;;;105
|
||||
;;;106 if (g_tMoto.Running == 1)
|
||||
000008 7e00 LDRB r0,[r0,#0x18] ; g_tMoto
|
||||
00000a 2801 CMP r0,#1
|
||||
00000c d105 BNE |L4.26|
|
||||
;;;107 {
|
||||
;;;108 // void bsp_SetTIMforInt(TIM_TypeDef* TIMx, uint32_t _ulFreq, uint8_t _PreemptionPriority, uint8_t _SubPriority)
|
||||
;;;109 bsp_SetTIMforInt(TIM6, _speed, 2, 2);
|
||||
00000e 2302 MOVS r3,#2
|
||||
000010 461a MOV r2,r3
|
||||
000012 4621 MOV r1,r4
|
||||
000014 4802 LDR r0,|L4.32|
|
||||
000016 f7fffffe BL bsp_SetTIMforInt
|
||||
|L4.26|
|
||||
;;;110 }
|
||||
;;;111 }
|
||||
00001a bd10 POP {r4,pc}
|
||||
;;;112
|
||||
ENDP
|
||||
|
||||
|L4.28|
|
||||
DCD g_tMoto
|
||||
|L4.32|
|
||||
DCD 0x40001000
|
||||
|
||||
AREA ||i.MOTO_Start||, CODE, READONLY, ALIGN=2
|
||||
|
||||
MOTO_Start PROC
|
||||
;;;67 //------------------------------------------------------------------------------
|
||||
;;;68 void MOTO_Start(uint32_t _speed, uint8_t _dir, int32_t _stpes)
|
||||
000000 b570 PUSH {r4-r6,lr}
|
||||
;;;69 {
|
||||
000002 4604 MOV r4,r0
|
||||
000004 460d MOV r5,r1
|
||||
000006 4616 MOV r6,r2
|
||||
;;;70 bsp_drv8880_enable_config(ENABLE);
|
||||
000008 2001 MOVS r0,#1
|
||||
00000a f7fffffe BL bsp_drv8880_enable_config
|
||||
;;;71 g_tMoto.Dir = _dir;
|
||||
00000e 480f LDR r0,|L5.76|
|
||||
000010 7005 STRB r5,[r0,#0]
|
||||
;;;72 g_tMoto.StepFreq = _speed;
|
||||
000012 6044 STR r4,[r0,#4] ; g_tMoto
|
||||
;;;73 g_tMoto.StepCount = _stpes;
|
||||
000014 6086 STR r6,[r0,#8] ; g_tMoto
|
||||
;;;74 g_tMoto.AllStep = _stpes;
|
||||
000016 60c6 STR r6,[r0,#0xc] ; g_tMoto
|
||||
;;;75 g_tMoto.CurrentStep = 0;
|
||||
000018 2000 MOVS r0,#0
|
||||
00001a 490c LDR r1,|L5.76|
|
||||
00001c 6108 STR r0,[r1,#0x10] ; g_tMoto
|
||||
;;;76 g_tMoto.Running = 1;
|
||||
00001e 2001 MOVS r0,#1
|
||||
000020 7608 STRB r0,[r1,#0x18]
|
||||
;;;77
|
||||
;;;78 // void bsp_SetTIMforInt(TIM_TypeDef* TIMx, uint32_t _ulFreq, uint8_t _PreemptionPriority, uint8_t _SubPriority)
|
||||
;;;79 // bsp_SetTIMforInt(TIM6, _speed*2, 2, 2);
|
||||
;;;80 switch (_dir)
|
||||
000022 b12d CBZ r5,|L5.48|
|
||||
000024 2d01 CMP r5,#1
|
||||
000026 d107 BNE |L5.56|
|
||||
;;;81 {
|
||||
;;;82 case 1:
|
||||
;;;83 bsp_drv8880_config_dir(DIR_CW);
|
||||
000028 2000 MOVS r0,#0
|
||||
00002a f7fffffe BL bsp_drv8880_config_dir
|
||||
;;;84 break;
|
||||
00002e e004 B |L5.58|
|
||||
|L5.48|
|
||||
;;;85 case 0:
|
||||
;;;86 bsp_drv8880_config_dir(DIR_CCW);
|
||||
000030 2001 MOVS r0,#1
|
||||
000032 f7fffffe BL bsp_drv8880_config_dir
|
||||
;;;87 break;
|
||||
000036 e000 B |L5.58|
|
||||
|L5.56|
|
||||
;;;88 default:
|
||||
;;;89 break;
|
||||
000038 bf00 NOP
|
||||
|L5.58|
|
||||
00003a bf00 NOP ;84
|
||||
;;;90 }
|
||||
;;;91 bsp_SetTIMforInt(TIM6, _speed * 2, 0, 0);
|
||||
00003c 0061 LSLS r1,r4,#1
|
||||
00003e 2300 MOVS r3,#0
|
||||
000040 461a MOV r2,r3
|
||||
000042 4803 LDR r0,|L5.80|
|
||||
000044 f7fffffe BL bsp_SetTIMforInt
|
||||
;;;92 }
|
||||
000048 bd70 POP {r4-r6,pc}
|
||||
;;;93
|
||||
ENDP
|
||||
|
||||
00004a 0000 DCW 0x0000
|
||||
|L5.76|
|
||||
DCD g_tMoto
|
||||
|L5.80|
|
||||
DCD 0x40001000
|
||||
|
||||
AREA ||i.MOTO_Stop||, CODE, READONLY, ALIGN=2
|
||||
|
||||
MOTO_Stop PROC
|
||||
;;;128 //------------------------------------------------------------------------------
|
||||
;;;129 void MOTO_Stop(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;130 {
|
||||
;;;131 // void bsp_SetTIMforInt(TIM_TypeDef* TIMx, uint32_t _ulFreq, uint8_t _PreemptionPriority, uint8_t _SubPriority)
|
||||
;;;132 bsp_SetTIMforInt(TIM6, 0, 0, 0);
|
||||
000002 2300 MOVS r3,#0
|
||||
000004 461a MOV r2,r3
|
||||
000006 4619 MOV r1,r3
|
||||
000008 4808 LDR r0,|L6.44|
|
||||
00000a f7fffffe BL bsp_SetTIMforInt
|
||||
;;;133 g_tMoto.Running = 0;
|
||||
00000e 2000 MOVS r0,#0
|
||||
000010 4907 LDR r1,|L6.48|
|
||||
000012 7608 STRB r0,[r1,#0x18]
|
||||
;;;134
|
||||
;;;135 MOTO_STEP_0();
|
||||
000014 2080 MOVS r0,#0x80
|
||||
000016 4907 LDR r1,|L6.52|
|
||||
000018 6148 STR r0,[r1,#0x14]
|
||||
;;;136 // bsp_drv8880_enable_config(DISABLE);
|
||||
;;;137 if (g_tTube.state == SEARCH)
|
||||
00001a 4807 LDR r0,|L6.56|
|
||||
00001c 7ac0 LDRB r0,[r0,#0xb] ; g_tTube
|
||||
00001e 2802 CMP r0,#2
|
||||
000020 d102 BNE |L6.40|
|
||||
;;;138 {
|
||||
;;;139 g_tTube.state = IDLE;
|
||||
000022 2000 MOVS r0,#0
|
||||
000024 4904 LDR r1,|L6.56|
|
||||
000026 72c8 STRB r0,[r1,#0xb]
|
||||
|L6.40|
|
||||
;;;140 }
|
||||
;;;141 }
|
||||
000028 bd10 POP {r4,pc}
|
||||
;;;142
|
||||
ENDP
|
||||
|
||||
00002a 0000 DCW 0x0000
|
||||
|L6.44|
|
||||
DCD 0x40001000
|
||||
|L6.48|
|
||||
DCD g_tMoto
|
||||
|L6.52|
|
||||
DCD 0x40011000
|
||||
|L6.56|
|
||||
DCD g_tTube
|
||||
|
||||
AREA ||i.MOTO_ZorePos||, CODE, READONLY, ALIGN=2
|
||||
|
||||
MOTO_ZorePos PROC
|
||||
;;;112
|
||||
;;;113 void MOTO_ZorePos(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;114 {
|
||||
;;;115 MOTO_Stop();
|
||||
000002 f7fffffe BL MOTO_Stop
|
||||
;;;116 g_tMoto.sv_pulse = 0;
|
||||
000006 2100 MOVS r1,#0
|
||||
000008 4a08 LDR r2,|L7.44|
|
||||
00000a 6291 STR r1,[r2,#0x28] ; g_tMoto
|
||||
00000c 62d1 STR r1,[r2,#0x2c] ; g_tMoto
|
||||
;;;117 g_tMoto.pv_pulse = 0;
|
||||
00000e 6211 STR r1,[r2,#0x20] ; g_tMoto
|
||||
000010 6251 STR r1,[r2,#0x24] ; g_tMoto
|
||||
;;;118 g_tMoto.prev_pv_pulse = 0;
|
||||
000012 6311 STR r1,[r2,#0x30] ; g_tMoto
|
||||
000014 6351 STR r1,[r2,#0x34] ; g_tMoto
|
||||
;;;119 GPIO_PORT_ZERO_SIG->BRR = GPIO_PIN_ZERO_SIG; // 归零时 PA6 输出低
|
||||
000016 2040 MOVS r0,#0x40
|
||||
000018 4905 LDR r1,|L7.48|
|
||||
00001a 6008 STR r0,[r1,#0]
|
||||
;;;120 BEEP_Start(1500, 5, 5, 3);
|
||||
00001c 2303 MOVS r3,#3
|
||||
00001e 2205 MOVS r2,#5
|
||||
000020 4611 MOV r1,r2
|
||||
000022 f24050dc MOV r0,#0x5dc
|
||||
000026 f7fffffe BL BEEP_Start
|
||||
;;;121 }
|
||||
00002a bd10 POP {r4,pc}
|
||||
;;;122
|
||||
ENDP
|
||||
|
||||
|L7.44|
|
||||
DCD g_tMoto
|
||||
|L7.48|
|
||||
DCD 0x40010814
|
||||
|
||||
AREA ||i.TIM6_IRQHandler||, CODE, READONLY, ALIGN=2
|
||||
|
||||
TIM6_IRQHandler PROC
|
||||
;;;238 #ifndef TIM6_ISR_MOVE_OUT /* bsp.h 中定义此行,表示本函数移到 stam32fxxx_it.c。 避免重复定义 */
|
||||
;;;239 void TIM6_IRQHandler(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;240 {
|
||||
;;;241 if (TIM_GetITStatus(TIM6, TIM_IT_Update) != RESET)
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 4805 LDR r0,|L8.28|
|
||||
000006 f7fffffe BL TIM_GetITStatus
|
||||
00000a b128 CBZ r0,|L8.24|
|
||||
;;;242 {
|
||||
;;;243 MOTO_ISR(); /* 中断服务程序 */
|
||||
00000c f7fffffe BL MOTO_ISR
|
||||
;;;244
|
||||
;;;245 TIM_ClearITPendingBit(TIM6, TIM_IT_Update); /* 清除中断标志位 */
|
||||
000010 2101 MOVS r1,#1
|
||||
000012 4802 LDR r0,|L8.28|
|
||||
000014 f7fffffe BL TIM_ClearITPendingBit
|
||||
|L8.24|
|
||||
;;;246 }
|
||||
;;;247 }
|
||||
000018 bd10 POP {r4,pc}
|
||||
;;;248 #endif
|
||||
ENDP
|
||||
|
||||
00001a 0000 DCW 0x0000
|
||||
|L8.28|
|
||||
DCD 0x40001000
|
||||
|
||||
AREA ||i.bsp_InitStepMoto||, CODE, READONLY, ALIGN=2
|
||||
|
||||
bsp_InitStepMoto PROC
|
||||
;;;37 //------------------------------------------------------------------------------
|
||||
;;;38 void bsp_InitStepMoto(void)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;39 {
|
||||
;;;40 GPIO_InitTypeDef GPIO_InitStructure;
|
||||
;;;41
|
||||
;;;42 // 初始化 PA6 为零位信号输出引脚
|
||||
;;;43 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 2004 MOVS r0,#4
|
||||
000006 f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;44 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_ZERO_SIG;
|
||||
00000a 2040 MOVS r0,#0x40
|
||||
00000c f8ad0000 STRH r0,[sp,#0]
|
||||
;;;45 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
||||
000010 2010 MOVS r0,#0x10
|
||||
000012 f88d0003 STRB r0,[sp,#3]
|
||||
;;;46 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
000016 2003 MOVS r0,#3
|
||||
000018 f88d0002 STRB r0,[sp,#2]
|
||||
;;;47 GPIO_Init(GPIO_PORT_ZERO_SIG, &GPIO_InitStructure);
|
||||
00001c 4669 MOV r1,sp
|
||||
00001e 480b LDR r0,|L9.76|
|
||||
000020 f7fffffe BL GPIO_Init
|
||||
;;;48 GPIO_PORT_ZERO_SIG->BRR = GPIO_PIN_ZERO_SIG; // 默认输出低电平
|
||||
000024 2040 MOVS r0,#0x40
|
||||
000026 4909 LDR r1,|L9.76|
|
||||
000028 3114 ADDS r1,r1,#0x14
|
||||
00002a 6008 STR r0,[r1,#0]
|
||||
;;;49
|
||||
;;;50 g_tMoto.Dir = 0;
|
||||
00002c 2000 MOVS r0,#0
|
||||
00002e 4908 LDR r1,|L9.80|
|
||||
000030 7008 STRB r0,[r1,#0]
|
||||
;;;51 g_tMoto.StepFreq = 0;
|
||||
000032 6048 STR r0,[r1,#4] ; g_tMoto
|
||||
;;;52 g_tMoto.StepCount = 0;
|
||||
000034 6088 STR r0,[r1,#8] ; g_tMoto
|
||||
;;;53 g_tMoto.Running = 0;
|
||||
000036 7608 STRB r0,[r1,#0x18]
|
||||
;;;54 g_tMoto.Pos = 0;
|
||||
000038 7648 STRB r0,[r1,#0x19]
|
||||
;;;55 g_tMoto.pv_pulse = 0;
|
||||
00003a 2100 MOVS r1,#0
|
||||
00003c 4a04 LDR r2,|L9.80|
|
||||
00003e 6211 STR r1,[r2,#0x20] ; g_tMoto
|
||||
000040 6251 STR r1,[r2,#0x24] ; g_tMoto
|
||||
;;;56 g_tMoto.sv_pulse = 0;
|
||||
000042 6291 STR r1,[r2,#0x28] ; g_tMoto
|
||||
000044 62d1 STR r1,[r2,#0x2c] ; g_tMoto
|
||||
;;;57 g_tMoto.prev_pv_pulse = 0;
|
||||
000046 6311 STR r1,[r2,#0x30] ; g_tMoto
|
||||
000048 6351 STR r1,[r2,#0x34] ; g_tMoto
|
||||
;;;58 }
|
||||
00004a bd08 POP {r3,pc}
|
||||
;;;59
|
||||
ENDP
|
||||
|
||||
|L9.76|
|
||||
DCD 0x40010800
|
||||
|L9.80|
|
||||
DCD g_tMoto
|
||||
|
||||
AREA ||.bss||, DATA, NOINIT, ALIGN=3
|
||||
|
||||
g_tMoto
|
||||
% 56
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\src\\bsp_step_moto.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___15_bsp_step_moto_c_70f53da4____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___15_bsp_step_moto_c_70f53da4____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___15_bsp_step_moto_c_70f53da4____REVSH|
|
||||
#line 128
|
||||
|__asm___15_bsp_step_moto_c_70f53da4____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
1447
Project/MDK-ARM/Flash/List/bsp_tim_pwm.txt
Normal file
1447
Project/MDK-ARM/Flash/List/bsp_tim_pwm.txt
Normal file
File diff suppressed because it is too large
Load Diff
1323
Project/MDK-ARM/Flash/List/bsp_timer.txt
Normal file
1323
Project/MDK-ARM/Flash/List/bsp_timer.txt
Normal file
File diff suppressed because it is too large
Load Diff
1587
Project/MDK-ARM/Flash/List/bsp_uart_fifo.txt
Normal file
1587
Project/MDK-ARM/Flash/List/bsp_uart_fifo.txt
Normal file
File diff suppressed because it is too large
Load Diff
555
Project/MDK-ARM/Flash/List/bsp_usart_dma.txt
Normal file
555
Project/MDK-ARM/Flash/List/bsp_usart_dma.txt
Normal file
@@ -0,0 +1,555 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp_usart_dma.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_usart_dma.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp_usart_dma.crf ..\..\User\bsp\src\bsp_usart_dma.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.USART1_IRQHandler||, CODE, READONLY, ALIGN=2
|
||||
|
||||
USART1_IRQHandler PROC
|
||||
;;;194 */
|
||||
;;;195 void DEBUG_USART_IRQHandler(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;196 {
|
||||
;;;197 uint16_t t;
|
||||
;;;198 if (USART_GetITStatus(DEBUG_USARTx, USART_IT_IDLE) == SET) // 检查中断是否发生
|
||||
000002 f2404124 MOV r1,#0x424
|
||||
000006 4817 LDR r0,|L1.100|
|
||||
000008 f7fffffe BL USART_GetITStatus
|
||||
00000c 2801 CMP r0,#1
|
||||
00000e d127 BNE |L1.96|
|
||||
;;;199 {
|
||||
;;;200 DMA_Cmd(USART_RX_DMA_CHANNEL, DISABLE); // 关闭DMA传输
|
||||
000010 2100 MOVS r1,#0
|
||||
000012 4815 LDR r0,|L1.104|
|
||||
000014 f7fffffe BL DMA_Cmd
|
||||
;;;201
|
||||
;;;202 t = DMA_GetCurrDataCounter(USART_RX_DMA_CHANNEL); // 获取剩余的数据数量
|
||||
000018 4813 LDR r0,|L1.104|
|
||||
00001a f7fffffe BL DMA_GetCurrDataCounter
|
||||
00001e 4604 MOV r4,r0
|
||||
;;;203 memset(g_RxBuf, 0, sizeof g_RxBuf);
|
||||
000020 2140 MOVS r1,#0x40
|
||||
000022 4812 LDR r0,|L1.108|
|
||||
000024 f7fffffe BL __aeabi_memclr
|
||||
;;;204 memcpy(g_RxBuf, ReceiveBuff, RECEIVEBUFF_SIZE - t);
|
||||
000028 f1c40240 RSB r2,r4,#0x40
|
||||
00002c 4910 LDR r1,|L1.112|
|
||||
00002e 480f LDR r0,|L1.108|
|
||||
000030 f7fffffe BL __aeabi_memcpy
|
||||
;;;205 memset(ReceiveBuff, 0, sizeof ReceiveBuff);
|
||||
000034 2140 MOVS r1,#0x40
|
||||
000036 480e LDR r0,|L1.112|
|
||||
000038 f7fffffe BL __aeabi_memclr
|
||||
;;;206 g_ucRxRcvNewFlag = 1;
|
||||
00003c 2001 MOVS r0,#1
|
||||
00003e 490d LDR r1,|L1.116|
|
||||
000040 7008 STRB r0,[r1,#0]
|
||||
;;;207
|
||||
;;;208 DMA_SetCurrDataCounter(USART_RX_DMA_CHANNEL, RECEIVEBUFF_SIZE); // 重新设置传输的数据数量
|
||||
000042 2140 MOVS r1,#0x40
|
||||
000044 4808 LDR r0,|L1.104|
|
||||
000046 f7fffffe BL DMA_SetCurrDataCounter
|
||||
;;;209 DMA_Cmd(USART_RX_DMA_CHANNEL, ENABLE); // 开启DMA传输
|
||||
00004a 2101 MOVS r1,#1
|
||||
00004c 4806 LDR r0,|L1.104|
|
||||
00004e f7fffffe BL DMA_Cmd
|
||||
;;;210
|
||||
;;;211 USART_ReceiveData(DEBUG_USARTx); // 读取一次数据,不然会一直进中断
|
||||
000052 4804 LDR r0,|L1.100|
|
||||
000054 f7fffffe BL USART_ReceiveData
|
||||
;;;212 USART_ClearFlag(DEBUG_USARTx, USART_FLAG_IDLE); // 清除串口空闲中断标志位
|
||||
000058 2110 MOVS r1,#0x10
|
||||
00005a 4802 LDR r0,|L1.100|
|
||||
00005c f7fffffe BL USART_ClearFlag
|
||||
|L1.96|
|
||||
;;;213 }
|
||||
;;;214 }
|
||||
000060 bd10 POP {r4,pc}
|
||||
ENDP
|
||||
|
||||
000062 0000 DCW 0x0000
|
||||
|L1.100|
|
||||
DCD 0x40013800
|
||||
|L1.104|
|
||||
DCD 0x40020058
|
||||
|L1.108|
|
||||
DCD g_RxBuf
|
||||
|L1.112|
|
||||
DCD ReceiveBuff
|
||||
|L1.116|
|
||||
DCD g_ucRxRcvNewFlag
|
||||
|
||||
AREA ||i.USART_Config||, CODE, READONLY, ALIGN=2
|
||||
|
||||
USART_Config PROC
|
||||
;;;13 */
|
||||
;;;14 void USART_Config(void)
|
||||
000000 b500 PUSH {lr}
|
||||
;;;15 {
|
||||
000002 b087 SUB sp,sp,#0x1c
|
||||
;;;16 GPIO_InitTypeDef GPIO_InitStructure;
|
||||
;;;17 USART_InitTypeDef USART_InitStructure;
|
||||
;;;18 NVIC_InitTypeDef NVIC_InitStruct;
|
||||
;;;19 // 打开串口GPIO的时钟
|
||||
;;;20 DEBUG_USART_GPIO_APBxClkCmd(DEBUG_USART_GPIO_CLK, ENABLE);
|
||||
000004 2101 MOVS r1,#1
|
||||
000006 2004 MOVS r0,#4
|
||||
000008 f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;21
|
||||
;;;22 // 打开串口外设的时钟
|
||||
;;;23 DEBUG_USART_APBxClkCmd(DEBUG_USART_CLK, ENABLE);
|
||||
00000c 2101 MOVS r1,#1
|
||||
00000e 0388 LSLS r0,r1,#14
|
||||
000010 f7fffffe BL RCC_APB2PeriphClockCmd
|
||||
;;;24
|
||||
;;;25 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
|
||||
000014 f44f60a0 MOV r0,#0x500
|
||||
000018 f7fffffe BL NVIC_PriorityGroupConfig
|
||||
;;;26 NVIC_InitStruct.NVIC_IRQChannel = DEBUG_USART_IRQ;
|
||||
00001c 2025 MOVS r0,#0x25
|
||||
00001e f88d0004 STRB r0,[sp,#4]
|
||||
;;;27 NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
|
||||
000022 2001 MOVS r0,#1
|
||||
000024 f88d0007 STRB r0,[sp,#7]
|
||||
;;;28 NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1;
|
||||
000028 f88d0005 STRB r0,[sp,#5]
|
||||
;;;29 NVIC_InitStruct.NVIC_IRQChannelSubPriority = 3;
|
||||
00002c 2003 MOVS r0,#3
|
||||
00002e f88d0006 STRB r0,[sp,#6]
|
||||
;;;30 NVIC_Init(&NVIC_InitStruct);
|
||||
000032 a801 ADD r0,sp,#4
|
||||
000034 f7fffffe BL NVIC_Init
|
||||
;;;31
|
||||
;;;32 // 将USART Tx的GPIO配置为推挽复用模式
|
||||
;;;33 GPIO_InitStructure.GPIO_Pin = DEBUG_USART_TX_GPIO_PIN;
|
||||
000038 f44f7000 MOV r0,#0x200
|
||||
00003c f8ad0018 STRH r0,[sp,#0x18]
|
||||
;;;34 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
|
||||
000040 2018 MOVS r0,#0x18
|
||||
000042 f88d001b STRB r0,[sp,#0x1b]
|
||||
;;;35 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
000046 2003 MOVS r0,#3
|
||||
000048 f88d001a STRB r0,[sp,#0x1a]
|
||||
;;;36 GPIO_Init(DEBUG_USART_TX_GPIO_PORT, &GPIO_InitStructure);
|
||||
00004c a906 ADD r1,sp,#0x18
|
||||
00004e 4816 LDR r0,|L2.168|
|
||||
000050 f7fffffe BL GPIO_Init
|
||||
;;;37
|
||||
;;;38 // 将USART Rx的GPIO配置为浮空输入模式
|
||||
;;;39 GPIO_InitStructure.GPIO_Pin = DEBUG_USART_RX_GPIO_PIN;
|
||||
000054 f44f6080 MOV r0,#0x400
|
||||
000058 f8ad0018 STRH r0,[sp,#0x18]
|
||||
;;;40 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
||||
00005c 2004 MOVS r0,#4
|
||||
00005e f88d001b STRB r0,[sp,#0x1b]
|
||||
;;;41 GPIO_Init(DEBUG_USART_RX_GPIO_PORT, &GPIO_InitStructure);
|
||||
000062 a906 ADD r1,sp,#0x18
|
||||
000064 4810 LDR r0,|L2.168|
|
||||
000066 f7fffffe BL GPIO_Init
|
||||
;;;42
|
||||
;;;43 // 配置串口的工作参数
|
||||
;;;44 // 配置波特率
|
||||
;;;45 USART_InitStructure.USART_BaudRate = DEBUG_USART_BAUDRATE;
|
||||
00006a f44f30e1 MOV r0,#0x1c200
|
||||
00006e 9002 STR r0,[sp,#8]
|
||||
;;;46 // 配置 针数据字长
|
||||
;;;47 USART_InitStructure.USART_WordLength = USART_WordLength_8b;
|
||||
000070 2000 MOVS r0,#0
|
||||
000072 f8ad000c STRH r0,[sp,#0xc]
|
||||
;;;48 // 配置停止位
|
||||
;;;49 USART_InitStructure.USART_StopBits = USART_StopBits_1;
|
||||
000076 f8ad000e STRH r0,[sp,#0xe]
|
||||
;;;50 // 配置校验位
|
||||
;;;51 USART_InitStructure.USART_Parity = USART_Parity_No;
|
||||
00007a f8ad0010 STRH r0,[sp,#0x10]
|
||||
;;;52 // 配置硬件流控制
|
||||
;;;53 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
||||
00007e f8ad0014 STRH r0,[sp,#0x14]
|
||||
;;;54 // 配置工作模式,收发一起
|
||||
;;;55 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
|
||||
000082 200c MOVS r0,#0xc
|
||||
000084 f8ad0012 STRH r0,[sp,#0x12]
|
||||
;;;56 // 完成串口的初始化配置
|
||||
;;;57 USART_Init(DEBUG_USARTx, &USART_InitStructure);
|
||||
000088 a902 ADD r1,sp,#8
|
||||
00008a 4808 LDR r0,|L2.172|
|
||||
00008c f7fffffe BL USART_Init
|
||||
;;;58 // 使能空闲中断
|
||||
;;;59 USART_ITConfig(DEBUG_USARTx, USART_IT_IDLE, ENABLE);
|
||||
000090 2201 MOVS r2,#1
|
||||
000092 f2404124 MOV r1,#0x424
|
||||
000096 4805 LDR r0,|L2.172|
|
||||
000098 f7fffffe BL USART_ITConfig
|
||||
;;;60 // 使能串口
|
||||
;;;61 USART_Cmd(DEBUG_USARTx, ENABLE);
|
||||
00009c 2101 MOVS r1,#1
|
||||
00009e 4803 LDR r0,|L2.172|
|
||||
0000a0 f7fffffe BL USART_Cmd
|
||||
;;;62 }
|
||||
0000a4 b007 ADD sp,sp,#0x1c
|
||||
0000a6 bd00 POP {pc}
|
||||
;;;63
|
||||
ENDP
|
||||
|
||||
|L2.168|
|
||||
DCD 0x40010800
|
||||
|L2.172|
|
||||
DCD 0x40013800
|
||||
|
||||
AREA ||i.USARTx_DMA_Config||, CODE, READONLY, ALIGN=2
|
||||
|
||||
USARTx_DMA_Config PROC
|
||||
;;;154 */
|
||||
;;;155 void USARTx_DMA_Config(void)
|
||||
000000 b500 PUSH {lr}
|
||||
;;;156 {
|
||||
000002 b08b SUB sp,sp,#0x2c
|
||||
;;;157 DMA_InitTypeDef DMA_InitStructure;
|
||||
;;;158 // 开启DMA时钟
|
||||
;;;159 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
|
||||
000004 2101 MOVS r1,#1
|
||||
000006 4608 MOV r0,r1
|
||||
000008 f7fffffe BL RCC_AHBPeriphClockCmd
|
||||
;;;160
|
||||
;;;161 // 设置DMA源地址:串口数据寄存器地址*/
|
||||
;;;162 DMA_InitStructure.DMA_PeripheralBaseAddr = USART_DR_ADDRESS;
|
||||
00000c 480f LDR r0,|L3.76|
|
||||
00000e 9000 STR r0,[sp,#0]
|
||||
;;;163 // 内存地址(要传输的变量的指针)
|
||||
;;;164 DMA_InitStructure.DMA_MemoryBaseAddr = (u32)ReceiveBuff;
|
||||
000010 480f LDR r0,|L3.80|
|
||||
000012 9001 STR r0,[sp,#4]
|
||||
;;;165 // 方向:从外设到内存
|
||||
;;;166 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
|
||||
000014 2000 MOVS r0,#0
|
||||
000016 9002 STR r0,[sp,#8]
|
||||
;;;167 // 传输大小
|
||||
;;;168 DMA_InitStructure.DMA_BufferSize = RECEIVEBUFF_SIZE;
|
||||
000018 2040 MOVS r0,#0x40
|
||||
00001a 9003 STR r0,[sp,#0xc]
|
||||
;;;169 // 外设地址不增
|
||||
;;;170 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
|
||||
00001c 2000 MOVS r0,#0
|
||||
00001e 9004 STR r0,[sp,#0x10]
|
||||
;;;171 // 内存地址自增
|
||||
;;;172 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
|
||||
000020 2080 MOVS r0,#0x80
|
||||
000022 9005 STR r0,[sp,#0x14]
|
||||
;;;173 // 外设数据单位
|
||||
;;;174 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
|
||||
000024 2000 MOVS r0,#0
|
||||
000026 9006 STR r0,[sp,#0x18]
|
||||
;;;175 // 内存数据单位
|
||||
;;;176 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
|
||||
000028 9007 STR r0,[sp,#0x1c]
|
||||
;;;177 // DMA模式,一次或者循环模式
|
||||
;;;178 // DMA_InitStructure.DMA_Mode = DMA_Mode_Normal ;
|
||||
;;;179 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
|
||||
00002a 2020 MOVS r0,#0x20
|
||||
00002c 9008 STR r0,[sp,#0x20]
|
||||
;;;180 // 优先级:中
|
||||
;;;181 DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;
|
||||
00002e 01c0 LSLS r0,r0,#7
|
||||
000030 9009 STR r0,[sp,#0x24]
|
||||
;;;182 // 禁止内存到内存的传输
|
||||
;;;183 DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
|
||||
000032 2000 MOVS r0,#0
|
||||
000034 900a STR r0,[sp,#0x28]
|
||||
;;;184 // 配置DMA通道
|
||||
;;;185 DMA_Init(USART_RX_DMA_CHANNEL, &DMA_InitStructure);
|
||||
000036 4669 MOV r1,sp
|
||||
000038 4806 LDR r0,|L3.84|
|
||||
00003a f7fffffe BL DMA_Init
|
||||
;;;186 // 使能DMA
|
||||
;;;187 DMA_Cmd(USART_RX_DMA_CHANNEL, ENABLE);
|
||||
00003e 2101 MOVS r1,#1
|
||||
000040 4804 LDR r0,|L3.84|
|
||||
000042 f7fffffe BL DMA_Cmd
|
||||
;;;188 }
|
||||
000046 b00b ADD sp,sp,#0x2c
|
||||
000048 bd00 POP {pc}
|
||||
;;;189
|
||||
ENDP
|
||||
|
||||
00004a 0000 DCW 0x0000
|
||||
|L3.76|
|
||||
DCD 0x40013804
|
||||
|L3.80|
|
||||
DCD ReceiveBuff
|
||||
|L3.84|
|
||||
DCD 0x40020058
|
||||
|
||||
AREA ||i.Usart_SendArray||, CODE, READONLY, ALIGN=1
|
||||
|
||||
Usart_SendArray PROC
|
||||
;;;75 /****************** 发送8位的数组 ************************/
|
||||
;;;76 void Usart_SendArray(USART_TypeDef *pUSARTx, uint8_t *array, uint16_t num)
|
||||
000000 e92d41f0 PUSH {r4-r8,lr}
|
||||
;;;77 {
|
||||
000004 4607 MOV r7,r0
|
||||
000006 460d MOV r5,r1
|
||||
000008 4616 MOV r6,r2
|
||||
;;;78 uint8_t i;
|
||||
;;;79
|
||||
;;;80 for (i = 0; i < num; i++)
|
||||
00000a 2400 MOVS r4,#0
|
||||
00000c e005 B |L4.26|
|
||||
|L4.14|
|
||||
;;;81 {
|
||||
;;;82 /* 发送一个字节数据到USART */
|
||||
;;;83 Usart_SendByte(pUSARTx, array[i]);
|
||||
00000e 5d29 LDRB r1,[r5,r4]
|
||||
000010 4638 MOV r0,r7
|
||||
000012 f7fffffe BL Usart_SendByte
|
||||
000016 1c60 ADDS r0,r4,#1 ;80
|
||||
000018 b2c4 UXTB r4,r0 ;80
|
||||
|L4.26|
|
||||
00001a 42b4 CMP r4,r6 ;80
|
||||
00001c dbf7 BLT |L4.14|
|
||||
;;;84 }
|
||||
;;;85 /* 等待发送完成 */
|
||||
;;;86 while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TC) == RESET)
|
||||
00001e bf00 NOP
|
||||
|L4.32|
|
||||
000020 2140 MOVS r1,#0x40
|
||||
000022 4638 MOV r0,r7
|
||||
000024 f7fffffe BL USART_GetFlagStatus
|
||||
000028 2800 CMP r0,#0
|
||||
00002a d0f9 BEQ |L4.32|
|
||||
;;;87 ;
|
||||
;;;88 }
|
||||
00002c e8bd81f0 POP {r4-r8,pc}
|
||||
;;;89
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.Usart_SendByte||, CODE, READONLY, ALIGN=1
|
||||
|
||||
Usart_SendByte PROC
|
||||
;;;64 /***************** 发送一个字节 **********************/
|
||||
;;;65 void Usart_SendByte(USART_TypeDef *pUSARTx, uint8_t ch)
|
||||
000000 b570 PUSH {r4-r6,lr}
|
||||
;;;66 {
|
||||
000002 4604 MOV r4,r0
|
||||
000004 460d MOV r5,r1
|
||||
;;;67 /* 发送一个字节数据到USART */
|
||||
;;;68 USART_SendData(pUSARTx, ch);
|
||||
000006 4629 MOV r1,r5
|
||||
000008 4620 MOV r0,r4
|
||||
00000a f7fffffe BL USART_SendData
|
||||
;;;69
|
||||
;;;70 /* 等待发送数据寄存器为空 */
|
||||
;;;71 while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET)
|
||||
00000e bf00 NOP
|
||||
|L5.16|
|
||||
000010 2180 MOVS r1,#0x80
|
||||
000012 4620 MOV r0,r4
|
||||
000014 f7fffffe BL USART_GetFlagStatus
|
||||
000018 2800 CMP r0,#0
|
||||
00001a d0f9 BEQ |L5.16|
|
||||
;;;72 ;
|
||||
;;;73 }
|
||||
00001c bd70 POP {r4-r6,pc}
|
||||
;;;74
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.Usart_SendHalfWord||, CODE, READONLY, ALIGN=1
|
||||
|
||||
Usart_SendHalfWord PROC
|
||||
;;;106 /***************** 发送一个16位数 **********************/
|
||||
;;;107 void Usart_SendHalfWord(USART_TypeDef *pUSARTx, uint16_t ch)
|
||||
000000 e92d41f0 PUSH {r4-r8,lr}
|
||||
;;;108 {
|
||||
000004 4605 MOV r5,r0
|
||||
000006 460c MOV r4,r1
|
||||
;;;109 uint8_t temp_h, temp_l;
|
||||
;;;110
|
||||
;;;111 /* 取出高八位 */
|
||||
;;;112 temp_h = (ch & 0XFF00) >> 8;
|
||||
000008 0a26 LSRS r6,r4,#8
|
||||
;;;113 /* 取出低八位 */
|
||||
;;;114 temp_l = ch & 0XFF;
|
||||
00000a b2e7 UXTB r7,r4
|
||||
;;;115
|
||||
;;;116 /* 发送高八位 */
|
||||
;;;117 USART_SendData(pUSARTx, temp_h);
|
||||
00000c 4631 MOV r1,r6
|
||||
00000e 4628 MOV r0,r5
|
||||
000010 f7fffffe BL USART_SendData
|
||||
;;;118 while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET)
|
||||
000014 bf00 NOP
|
||||
|L6.22|
|
||||
000016 2180 MOVS r1,#0x80
|
||||
000018 4628 MOV r0,r5
|
||||
00001a f7fffffe BL USART_GetFlagStatus
|
||||
00001e 2800 CMP r0,#0
|
||||
000020 d0f9 BEQ |L6.22|
|
||||
;;;119 ;
|
||||
;;;120
|
||||
;;;121 /* 发送低八位 */
|
||||
;;;122 USART_SendData(pUSARTx, temp_l);
|
||||
000022 4639 MOV r1,r7
|
||||
000024 4628 MOV r0,r5
|
||||
000026 f7fffffe BL USART_SendData
|
||||
;;;123 while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET)
|
||||
00002a bf00 NOP
|
||||
|L6.44|
|
||||
00002c 2180 MOVS r1,#0x80
|
||||
00002e 4628 MOV r0,r5
|
||||
000030 f7fffffe BL USART_GetFlagStatus
|
||||
000034 2800 CMP r0,#0
|
||||
000036 d0f9 BEQ |L6.44|
|
||||
;;;124 ;
|
||||
;;;125 }
|
||||
000038 e8bd81f0 POP {r4-r8,pc}
|
||||
;;;126
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.Usart_SendString||, CODE, READONLY, ALIGN=1
|
||||
|
||||
Usart_SendString PROC
|
||||
;;;90 /***************** 发送字符串 **********************/
|
||||
;;;91 void Usart_SendString(USART_TypeDef *pUSARTx, char *str)
|
||||
000000 b570 PUSH {r4-r6,lr}
|
||||
;;;92 {
|
||||
000002 4606 MOV r6,r0
|
||||
000004 460c MOV r4,r1
|
||||
;;;93 unsigned int k = 0;
|
||||
000006 2500 MOVS r5,#0
|
||||
;;;94 do
|
||||
000008 bf00 NOP
|
||||
|L7.10|
|
||||
;;;95 {
|
||||
;;;96 Usart_SendByte(pUSARTx, *(str + k));
|
||||
00000a 5d61 LDRB r1,[r4,r5]
|
||||
00000c 4630 MOV r0,r6
|
||||
00000e f7fffffe BL Usart_SendByte
|
||||
;;;97 k++;
|
||||
000012 1c6d ADDS r5,r5,#1
|
||||
;;;98 } while (*(str + k) != '\0');
|
||||
000014 5d60 LDRB r0,[r4,r5]
|
||||
000016 2800 CMP r0,#0
|
||||
000018 d1f7 BNE |L7.10|
|
||||
;;;99
|
||||
;;;100 /* 等待发送完成 */
|
||||
;;;101 while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TC) == RESET)
|
||||
00001a bf00 NOP
|
||||
|L7.28|
|
||||
00001c 2140 MOVS r1,#0x40
|
||||
00001e 4630 MOV r0,r6
|
||||
000020 f7fffffe BL USART_GetFlagStatus
|
||||
000024 2800 CMP r0,#0
|
||||
000026 d0f9 BEQ |L7.28|
|
||||
;;;102 {
|
||||
;;;103 }
|
||||
;;;104 }
|
||||
000028 bd70 POP {r4-r6,pc}
|
||||
;;;105
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.fgetc||, CODE, READONLY, ALIGN=2
|
||||
|
||||
fgetc PROC
|
||||
;;;140 /// 重定向c库函数scanf到串口,重写向后可使用scanf、getchar等函数
|
||||
;;;141 int fgetc(FILE *f)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;142 {
|
||||
000002 4604 MOV r4,r0
|
||||
;;;143 /* 等待串口输入数据 */
|
||||
;;;144 while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_RXNE) == RESET)
|
||||
000004 bf00 NOP
|
||||
|L8.6|
|
||||
000006 2120 MOVS r1,#0x20
|
||||
000008 4804 LDR r0,|L8.28|
|
||||
00000a f7fffffe BL USART_GetFlagStatus
|
||||
00000e 2800 CMP r0,#0
|
||||
000010 d0f9 BEQ |L8.6|
|
||||
;;;145 ;
|
||||
;;;146
|
||||
;;;147 return (int)USART_ReceiveData(DEBUG_USARTx);
|
||||
000012 4802 LDR r0,|L8.28|
|
||||
000014 f7fffffe BL USART_ReceiveData
|
||||
;;;148 }
|
||||
000018 bd10 POP {r4,pc}
|
||||
;;;149
|
||||
ENDP
|
||||
|
||||
00001a 0000 DCW 0x0000
|
||||
|L8.28|
|
||||
DCD 0x40013800
|
||||
|
||||
AREA ||i.fputc||, CODE, READONLY, ALIGN=2
|
||||
|
||||
fputc PROC
|
||||
;;;127 /// 重定向c库函数printf到串口,重定向后可使用printf函数
|
||||
;;;128 int fputc(int ch, FILE *f)
|
||||
000000 b570 PUSH {r4-r6,lr}
|
||||
;;;129 {
|
||||
000002 4604 MOV r4,r0
|
||||
000004 460d MOV r5,r1
|
||||
;;;130 /* 发送一个字节数据到串口 */
|
||||
;;;131 USART_SendData(DEBUG_USARTx, (uint8_t)ch);
|
||||
000006 b2e1 UXTB r1,r4
|
||||
000008 4805 LDR r0,|L9.32|
|
||||
00000a f7fffffe BL USART_SendData
|
||||
;;;132
|
||||
;;;133 /* 等待发送完毕 */
|
||||
;;;134 while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_TXE) == RESET)
|
||||
00000e bf00 NOP
|
||||
|L9.16|
|
||||
000010 2180 MOVS r1,#0x80
|
||||
000012 4803 LDR r0,|L9.32|
|
||||
000014 f7fffffe BL USART_GetFlagStatus
|
||||
000018 2800 CMP r0,#0
|
||||
00001a d0f9 BEQ |L9.16|
|
||||
;;;135 ;
|
||||
;;;136
|
||||
;;;137 return (ch);
|
||||
00001c 4620 MOV r0,r4
|
||||
;;;138 }
|
||||
00001e bd70 POP {r4-r6,pc}
|
||||
;;;139
|
||||
ENDP
|
||||
|
||||
|L9.32|
|
||||
DCD 0x40013800
|
||||
|
||||
AREA ||.bss||, DATA, NOINIT, ALIGN=0
|
||||
|
||||
ReceiveBuff
|
||||
% 64
|
||||
g_RxBuf
|
||||
% 64
|
||||
|
||||
AREA ||.data||, DATA, ALIGN=0
|
||||
|
||||
g_ucRxRcvNewFlag
|
||||
000000 00 DCB 0x00
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\src\\bsp_usart_dma.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___15_bsp_usart_dma_c_7598bab3____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___15_bsp_usart_dma_c_7598bab3____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___15_bsp_usart_dma_c_7598bab3____REVSH|
|
||||
#line 128
|
||||
|__asm___15_bsp_usart_dma_c_7598bab3____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
640
Project/MDK-ARM/Flash/List/demo_i2c_eeprom.txt
Normal file
640
Project/MDK-ARM/Flash/List/demo_i2c_eeprom.txt
Normal file
@@ -0,0 +1,640 @@
|
||||
; generated by Component: ARM Compiler 5.05 update 1 (build 106) Tool: ArmCC [4d0efa]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\demo_i2c_eeprom.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\demo_i2c_eeprom.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -IC:\Keil_v5\ARM\RV31\INC -IC:\Keil_v5\ARM\CMSIS\Include -IC:\Keil_v5\ARM\Inc\ST\STM32F10x -D__MICROLIB -D__UVISION_VERSION=514 -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\demo_i2c_eeprom.crf ..\..\User\app\src\demo_i2c_eeprom.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.DemoEEPROM||, CODE, READONLY, ALIGN=2
|
||||
|
||||
REQUIRE _printf_percent
|
||||
REQUIRE _printf_d
|
||||
REQUIRE _printf_s
|
||||
REQUIRE _printf_int_dec
|
||||
REQUIRE _printf_str
|
||||
DemoEEPROM PROC
|
||||
;;;36 */
|
||||
;;;37 void DemoEEPROM(void)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;38 {
|
||||
;;;39 uint8_t cmd;
|
||||
;;;40
|
||||
;;;41 if (ee_CheckOk() == 0)
|
||||
000002 f7fffffe BL ee_CheckOk
|
||||
000006 b920 CBNZ r0,|L1.18|
|
||||
;;;42 {
|
||||
;;;43 /* 没有检测到EEPROM */
|
||||
;;;44 printf("没有检测到串行EEPROM!\r\n");
|
||||
000008 a01c ADR r0,|L1.124|
|
||||
00000a f7fffffe BL __2printf
|
||||
;;;45
|
||||
;;;46 while (1); /* 停机 */
|
||||
00000e bf00 NOP
|
||||
|L1.16|
|
||||
000010 e7fe B |L1.16|
|
||||
|L1.18|
|
||||
;;;47 }
|
||||
;;;48
|
||||
;;;49 printf("已经检测到串行EEPROM : \r\n");
|
||||
000012 a020 ADR r0,|L1.148|
|
||||
000014 f7fffffe BL __2printf
|
||||
;;;50 printf("型号: %s, 容量 = %d 字节, 页面大小 = %d\r\n", EE_MODEL_NAME, EE_SIZE, EE_PAGE_SIZE);
|
||||
000018 2340 MOVS r3,#0x40
|
||||
00001a 021a LSLS r2,r3,#8
|
||||
00001c a124 ADR r1,|L1.176|
|
||||
00001e a027 ADR r0,|L1.188|
|
||||
000020 f7fffffe BL __2printf
|
||||
;;;51
|
||||
;;;52 ee_DispMenu(); /* 打印命令提示 */
|
||||
000024 f7fffffe BL ee_DispMenu
|
||||
;;;53 while(1)
|
||||
000028 e026 B |L1.120|
|
||||
|L1.42|
|
||||
;;;54 {
|
||||
;;;55 bsp_Idle(); /* 这个函数在bsp.c文件。用户可以修改这个函数实现CPU休眠和喂狗 */
|
||||
00002a f7fffffe BL bsp_Idle
|
||||
;;;56
|
||||
;;;57 //cmd = getchar(); /* 从串口读入一个字符 (阻塞方式) */
|
||||
;;;58 if (comGetChar(COM1, &cmd)) /* 从串口读入一个字符(非阻塞方式) */
|
||||
00002e 4669 MOV r1,sp
|
||||
000030 2000 MOVS r0,#0
|
||||
000032 f7fffffe BL comGetChar
|
||||
000036 2800 CMP r0,#0
|
||||
000038 d01e BEQ |L1.120|
|
||||
;;;59 {
|
||||
;;;60 switch (cmd)
|
||||
00003a f89d0000 LDRB r0,[sp,#0]
|
||||
00003e 2831 CMP r0,#0x31
|
||||
000040 d004 BEQ |L1.76|
|
||||
000042 2832 CMP r0,#0x32
|
||||
000044 d008 BEQ |L1.88|
|
||||
000046 2833 CMP r0,#0x33
|
||||
000048 d112 BNE |L1.112|
|
||||
00004a e00b B |L1.100|
|
||||
|L1.76|
|
||||
;;;61 {
|
||||
;;;62 case '1':
|
||||
;;;63 printf("\r\n【1 - 读 EEPROM 测试】\r\n");
|
||||
00004c a026 ADR r0,|L1.232|
|
||||
00004e f7fffffe BL __2printf
|
||||
;;;64 ee_ReadTest(); /* 读EEPROM数据,并打印出来数据内容 */
|
||||
000052 f7fffffe BL ee_ReadTest
|
||||
;;;65 break;
|
||||
000056 e00e B |L1.118|
|
||||
|L1.88|
|
||||
;;;66
|
||||
;;;67 case '2':
|
||||
;;;68 printf("\r\n【2 - 写 EEPROM 测试】\r\n");
|
||||
000058 a02a ADR r0,|L1.260|
|
||||
00005a f7fffffe BL __2printf
|
||||
;;;69 ee_WriteTest(); /* 写EEPROM数据,并打印写入速度 */
|
||||
00005e f7fffffe BL ee_WriteTest
|
||||
;;;70 break;
|
||||
000062 e008 B |L1.118|
|
||||
|L1.100|
|
||||
;;;71
|
||||
;;;72 case '3':
|
||||
;;;73 printf("\r\n【3 - 擦除 EEPROM】\r\n");
|
||||
000064 a02e ADR r0,|L1.288|
|
||||
000066 f7fffffe BL __2printf
|
||||
;;;74 ee_Erase(); /* 擦差EEPROM数据,实际上就是写入全0xFF */
|
||||
00006a f7fffffe BL ee_Erase
|
||||
;;;75 break;
|
||||
00006e e002 B |L1.118|
|
||||
|L1.112|
|
||||
;;;76
|
||||
;;;77 default:
|
||||
;;;78 ee_DispMenu(); /* 无效命令,重新打印命令提示 */
|
||||
000070 f7fffffe BL ee_DispMenu
|
||||
;;;79 break;
|
||||
000074 bf00 NOP
|
||||
|L1.118|
|
||||
000076 bf00 NOP ;65
|
||||
|L1.120|
|
||||
000078 e7d7 B |L1.42|
|
||||
;;;80
|
||||
;;;81 }
|
||||
;;;82 }
|
||||
;;;83 }
|
||||
;;;84 }
|
||||
;;;85
|
||||
ENDP
|
||||
|
||||
00007a 0000 DCW 0x0000
|
||||
|L1.124|
|
||||
00007c c3bbd3d0 DCB 195,187,211,208,188,236,178,226,181,189,180,174,208,208,"E"
|
||||
000080 bcecb2e2
|
||||
000084 b5bdb4ae
|
||||
000088 d0d045
|
||||
00008b 4550524f DCB "EPROM!\r\n",0
|
||||
00008f 4d210d0a
|
||||
000093 00
|
||||
|L1.148|
|
||||
000094 d2d1bead DCB 210,209,190,173,188,236,178,226,181,189,180,174,208,208,"E"
|
||||
000098 bcecb2e2
|
||||
00009c b5bdb4ae
|
||||
0000a0 d0d045
|
||||
0000a3 4550524f DCB "EPROM : \r\n",0
|
||||
0000a7 4d203a20
|
||||
0000ab 0d0a00
|
||||
0000ae 00 DCB 0
|
||||
0000af 00 DCB 0
|
||||
|L1.176|
|
||||
0000b0 41543234 DCB "AT24C128",0
|
||||
0000b4 43313238
|
||||
0000b8 00
|
||||
0000b9 00 DCB 0
|
||||
0000ba 00 DCB 0
|
||||
0000bb 00 DCB 0
|
||||
|L1.188|
|
||||
0000bc d0cdbac5 DCB 208,205,186,197,": %s, ",200,221,193,191," = %d ",215,214
|
||||
0000c0 3a202573
|
||||
0000c4 2c20c8dd
|
||||
0000c8 c1bf203d
|
||||
0000cc 20256420
|
||||
0000d0 d7d6
|
||||
0000d2 bdda2c20 DCB 189,218,", ",210,179,195,230,180,243,208,161," = %d\r\n",0
|
||||
0000d6 d2b3c3e6
|
||||
0000da b4f3d0a1
|
||||
0000de 203d2025
|
||||
0000e2 640d0a00
|
||||
0000e6 00 DCB 0
|
||||
0000e7 00 DCB 0
|
||||
|L1.232|
|
||||
0000e8 0d0aa1be DCB "\r\n",161,190,"1 - ",182,193," EEPROM ",178,226,202,212
|
||||
0000ec 31202d20
|
||||
0000f0 b6c12045
|
||||
0000f4 4550524f
|
||||
0000f8 4d20b2e2
|
||||
0000fc cad4
|
||||
0000fe a1bf0d0a DCB 161,191,"\r\n",0
|
||||
000102 00
|
||||
000103 00 DCB 0
|
||||
|L1.260|
|
||||
000104 0d0aa1be DCB "\r\n",161,190,"2 - ",208,180," EEPROM ",178,226,202,212
|
||||
000108 32202d20
|
||||
00010c d0b42045
|
||||
000110 4550524f
|
||||
000114 4d20b2e2
|
||||
000118 cad4
|
||||
00011a a1bf0d0a DCB 161,191,"\r\n",0
|
||||
00011e 00
|
||||
00011f 00 DCB 0
|
||||
|L1.288|
|
||||
000120 0d0aa1be DCB "\r\n",161,190,"3 - ",178,193,179,253," EEPROM",161,191,"\r"
|
||||
000124 33202d20
|
||||
000128 b2c1b3fd
|
||||
00012c 20454550
|
||||
000130 524f4da1
|
||||
000134 bf0d
|
||||
000136 0a00 DCB "\n",0
|
||||
|
||||
AREA ||i.ee_DispMenu||, CODE, READONLY, ALIGN=2
|
||||
|
||||
REQUIRE _printf_percent
|
||||
REQUIRE _printf_d
|
||||
REQUIRE _printf_int_dec
|
||||
ee_DispMenu PROC
|
||||
;;;204 */
|
||||
;;;205 static void ee_DispMenu(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;206 {
|
||||
;;;207 printf("\r\n------------------------------------------------\r\n");
|
||||
000002 a00b ADR r0,|L2.48|
|
||||
000004 f7fffffe BL __2printf
|
||||
;;;208 printf("请选择操作命令:\r\n");
|
||||
000008 a017 ADR r0,|L2.104|
|
||||
00000a f7fffffe BL __2printf
|
||||
;;;209 printf("1 - 读EEPROM (%d 字节)\r\n", EE_SIZE);
|
||||
00000e f44f4180 MOV r1,#0x4000
|
||||
000012 a01a ADR r0,|L2.124|
|
||||
000014 f7fffffe BL __2printf
|
||||
;;;210 printf("2 - 写EEPROM (%d 字节,0x00-0xFF)\r\n", EE_SIZE);
|
||||
000018 f44f4180 MOV r1,#0x4000
|
||||
00001c a01e ADR r0,|L2.152|
|
||||
00001e f7fffffe BL __2printf
|
||||
;;;211 printf("3 - 擦除EEPROM\r\n");
|
||||
000022 a026 ADR r0,|L2.188|
|
||||
000024 f7fffffe BL __2printf
|
||||
;;;212 printf("4 - 显示命令提示\r\n");
|
||||
000028 a029 ADR r0,|L2.208|
|
||||
00002a f7fffffe BL __2printf
|
||||
;;;213 }
|
||||
00002e bd10 POP {r4,pc}
|
||||
;;;214
|
||||
ENDP
|
||||
|
||||
|L2.48|
|
||||
000030 0d0a2d2d DCB "\r\n------------------------------------------------\r\n"
|
||||
000034 2d2d2d2d
|
||||
000038 2d2d2d2d
|
||||
00003c 2d2d2d2d
|
||||
000040 2d2d2d2d
|
||||
000044 2d2d2d2d
|
||||
000048 2d2d2d2d
|
||||
00004c 2d2d2d2d
|
||||
000050 2d2d2d2d
|
||||
000054 2d2d2d2d
|
||||
000058 2d2d2d2d
|
||||
00005c 2d2d2d2d
|
||||
000060 2d2d0d0a
|
||||
000064 00 DCB 0
|
||||
000065 00 DCB 0
|
||||
000066 00 DCB 0
|
||||
000067 00 DCB 0
|
||||
|L2.104|
|
||||
000068 c7ebd1a1 DCB 199,235,209,161,212,241,178,217,215,247,195,252,193,238,":"
|
||||
00006c d4f1b2d9
|
||||
000070 d7f7c3fc
|
||||
000074 c1ee3a
|
||||
000077 0d0a00 DCB "\r\n",0
|
||||
00007a 00 DCB 0
|
||||
00007b 00 DCB 0
|
||||
|L2.124|
|
||||
00007c 31202d20 DCB "1 - ",182,193,"EEPROM (%d ",215,214,189,218,")\r\n",0
|
||||
000080 b6c14545
|
||||
000084 50524f4d
|
||||
000088 20282564
|
||||
00008c 20d7d6bd
|
||||
000090 da290d0a
|
||||
000094 00
|
||||
000095 00 DCB 0
|
||||
000096 00 DCB 0
|
||||
000097 00 DCB 0
|
||||
|L2.152|
|
||||
000098 32202d20 DCB "2 - ",208,180,"EEPROM (%d ",215,214,189,218,",0x00-0xFF"
|
||||
00009c d0b44545
|
||||
0000a0 50524f4d
|
||||
0000a4 20282564
|
||||
0000a8 20d7d6bd
|
||||
0000ac da2c3078
|
||||
0000b0 30302d30
|
||||
0000b4 784646
|
||||
0000b7 290d0a00 DCB ")\r\n",0
|
||||
0000bb 00 DCB 0
|
||||
|L2.188|
|
||||
0000bc 33202d20 DCB "3 - ",178,193,179,253,"EEPROM\r\n",0
|
||||
0000c0 b2c1b3fd
|
||||
0000c4 45455052
|
||||
0000c8 4f4d0d0a
|
||||
0000cc 00
|
||||
0000cd 00 DCB 0
|
||||
0000ce 00 DCB 0
|
||||
0000cf 00 DCB 0
|
||||
|L2.208|
|
||||
0000d0 34202d20 DCB "4 - ",207,212,202,190,195,252,193,238,204,225,202,190,"\r"
|
||||
0000d4 cfd4cabe
|
||||
0000d8 c3fcc1ee
|
||||
0000dc cce1cabe
|
||||
0000e0 0d
|
||||
0000e1 0a00 DCB "\n",0
|
||||
0000e3 00 DCB 0
|
||||
|
||||
AREA ||i.ee_Erase||, CODE, READONLY, ALIGN=2
|
||||
|
||||
ee_Erase PROC
|
||||
;;;174 */
|
||||
;;;175 static void ee_Erase(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;176 {
|
||||
;;;177 uint16_t i;
|
||||
;;;178
|
||||
;;;179 /* 填充缓冲区 */
|
||||
;;;180 for (i = 0; i < EE_SIZE; i++)
|
||||
000002 2400 MOVS r4,#0
|
||||
000004 e004 B |L3.16|
|
||||
|L3.6|
|
||||
;;;181 {
|
||||
;;;182 buf[i] = 0xFF;
|
||||
000006 20ff MOVS r0,#0xff
|
||||
000008 490b LDR r1,|L3.56|
|
||||
00000a 5508 STRB r0,[r1,r4]
|
||||
00000c 1c60 ADDS r0,r4,#1 ;180
|
||||
00000e b284 UXTH r4,r0 ;180
|
||||
|L3.16|
|
||||
000010 f5b44f80 CMP r4,#0x4000 ;180
|
||||
000014 dbf7 BLT |L3.6|
|
||||
;;;183 }
|
||||
;;;184
|
||||
;;;185 /* 写EEPROM, 起始地址 = 0,数据长度为 256 */
|
||||
;;;186 if (ee_WriteBytes(buf, 0, EE_SIZE) == 0)
|
||||
000016 f44f4280 MOV r2,#0x4000
|
||||
00001a 2100 MOVS r1,#0
|
||||
00001c 4806 LDR r0,|L3.56|
|
||||
00001e f7fffffe BL ee_WriteBytes
|
||||
000022 b918 CBNZ r0,|L3.44|
|
||||
;;;187 {
|
||||
;;;188 printf("擦除eeprom出错!\r\n");
|
||||
000024 a005 ADR r0,|L3.60|
|
||||
000026 f7fffffe BL __2printf
|
||||
|L3.42|
|
||||
;;;189 return;
|
||||
;;;190 }
|
||||
;;;191 else
|
||||
;;;192 {
|
||||
;;;193 printf("擦除eeprom成功!\r\n");
|
||||
;;;194 }
|
||||
;;;195 }
|
||||
00002a bd10 POP {r4,pc}
|
||||
|L3.44|
|
||||
00002c a008 ADR r0,|L3.80|
|
||||
00002e f7fffffe BL __2printf
|
||||
000032 bf00 NOP
|
||||
000034 e7f9 B |L3.42|
|
||||
;;;196
|
||||
ENDP
|
||||
|
||||
000036 0000 DCW 0x0000
|
||||
|L3.56|
|
||||
DCD buf
|
||||
|L3.60|
|
||||
00003c b2c1b3fd DCB 178,193,179,253,"eeprom",179,246,180,237,163,161,"\r\n",0
|
||||
000040 65657072
|
||||
000044 6f6db3f6
|
||||
000048 b4eda3a1
|
||||
00004c 0d0a00
|
||||
00004f 00 DCB 0
|
||||
|L3.80|
|
||||
000050 b2c1b3fd DCB 178,193,179,253,"eeprom",179,201,185,166,163,161,"\r\n",0
|
||||
000054 65657072
|
||||
000058 6f6db3c9
|
||||
00005c b9a6a3a1
|
||||
000060 0d0a00
|
||||
000063 00 DCB 0
|
||||
|
||||
AREA ||i.ee_ReadTest||, CODE, READONLY, ALIGN=2
|
||||
|
||||
REQUIRE _printf_pre_padding
|
||||
REQUIRE _printf_percent
|
||||
REQUIRE _printf_flags
|
||||
REQUIRE _printf_widthprec
|
||||
REQUIRE _printf_x
|
||||
REQUIRE _printf_longlong_hex
|
||||
REQUIRE _printf_d
|
||||
REQUIRE _printf_int_dec
|
||||
ee_ReadTest PROC
|
||||
;;;93 */
|
||||
;;;94 static void ee_ReadTest(void)
|
||||
000000 e92d41f0 PUSH {r4-r8,lr}
|
||||
;;;95 {
|
||||
;;;96 uint16_t i;
|
||||
;;;97 int32_t iTime1, iTime2;
|
||||
;;;98
|
||||
;;;99 /* 读EEPROM, 起始地址 = 0, 数据长度为 256 */
|
||||
;;;100 iTime1 = bsp_GetRunTime(); /* 记下开始时间 */
|
||||
000004 f7fffffe BL bsp_GetRunTime
|
||||
000008 4606 MOV r6,r0
|
||||
;;;101 if (ee_ReadBytes((uint8_t *)buf, 0, EE_SIZE) == 0)
|
||||
00000a f44f4280 MOV r2,#0x4000
|
||||
00000e 2100 MOVS r1,#0
|
||||
000010 481a LDR r0,|L4.124|
|
||||
000012 f7fffffe BL ee_ReadBytes
|
||||
000016 b920 CBNZ r0,|L4.34|
|
||||
;;;102 {
|
||||
;;;103 printf("读eeprom出错!\r\n");
|
||||
000018 a019 ADR r0,|L4.128|
|
||||
00001a f7fffffe BL __2printf
|
||||
|L4.30|
|
||||
;;;104 return;
|
||||
;;;105 }
|
||||
;;;106 else
|
||||
;;;107 {
|
||||
;;;108 iTime2 = bsp_GetRunTime(); /* 记下结束时间 */
|
||||
;;;109 printf("读eeprom成功,数据如下:\r\n");
|
||||
;;;110 }
|
||||
;;;111
|
||||
;;;112 /* 打印数据 */
|
||||
;;;113 for (i = 0; i < EE_SIZE; i++)
|
||||
;;;114 {
|
||||
;;;115 printf(" %02X", buf[i]);
|
||||
;;;116
|
||||
;;;117 if ((i & 31) == 31)
|
||||
;;;118 {
|
||||
;;;119 printf("\r\n"); /* 每行显示16字节数据 */
|
||||
;;;120 }
|
||||
;;;121 else if ((i & 31) == 15)
|
||||
;;;122 {
|
||||
;;;123 printf(" - ");
|
||||
;;;124 }
|
||||
;;;125 }
|
||||
;;;126
|
||||
;;;127 /* 打印读速度 */
|
||||
;;;128 printf("读耗时: %dms, 读速度: %dB/s\r\n", iTime2 - iTime1, (EE_SIZE * 1000) / (iTime2 - iTime1));
|
||||
;;;129 }
|
||||
00001e e8bd81f0 POP {r4-r8,pc}
|
||||
|L4.34|
|
||||
000022 f7fffffe BL bsp_GetRunTime
|
||||
000026 4605 MOV r5,r0 ;108
|
||||
000028 a01a ADR r0,|L4.148|
|
||||
00002a f7fffffe BL __2printf
|
||||
00002e 2400 MOVS r4,#0 ;113
|
||||
000030 e015 B |L4.94|
|
||||
|L4.50|
|
||||
000032 4812 LDR r0,|L4.124|
|
||||
000034 5d01 LDRB r1,[r0,r4] ;115
|
||||
000036 a01e ADR r0,|L4.176|
|
||||
000038 f7fffffe BL __2printf
|
||||
00003c f004001f AND r0,r4,#0x1f ;117
|
||||
000040 281f CMP r0,#0x1f ;117
|
||||
000042 d103 BNE |L4.76|
|
||||
000044 a019 ADR r0,|L4.172|
|
||||
000046 f7fffffe BL __2printf
|
||||
00004a e006 B |L4.90|
|
||||
|L4.76|
|
||||
00004c f004001f AND r0,r4,#0x1f ;121
|
||||
000050 280f CMP r0,#0xf ;121
|
||||
000052 d102 BNE |L4.90|
|
||||
000054 a018 ADR r0,|L4.184|
|
||||
000056 f7fffffe BL __2printf
|
||||
|L4.90|
|
||||
00005a 1c60 ADDS r0,r4,#1 ;113
|
||||
00005c b284 UXTH r4,r0 ;113
|
||||
|L4.94|
|
||||
00005e f5b44f80 CMP r4,#0x4000 ;113
|
||||
000062 dbe6 BLT |L4.50|
|
||||
000064 1ba8 SUBS r0,r5,r6 ;128
|
||||
000066 f44f017a MOV r1,#0xfa0000 ;128
|
||||
00006a fb91f7f0 SDIV r7,r1,r0 ;128
|
||||
00006e 1ba9 SUBS r1,r5,r6 ;128
|
||||
000070 463a MOV r2,r7 ;128
|
||||
000072 a012 ADR r0,|L4.188|
|
||||
000074 f7fffffe BL __2printf
|
||||
000078 bf00 NOP
|
||||
00007a e7d0 B |L4.30|
|
||||
;;;130 /*
|
||||
ENDP
|
||||
|
||||
|L4.124|
|
||||
DCD buf
|
||||
|L4.128|
|
||||
000080 b6c16565 DCB 182,193,"eeprom",179,246,180,237,163,161,"\r\n",0
|
||||
000084 70726f6d
|
||||
000088 b3f6b4ed
|
||||
00008c a3a10d0a
|
||||
000090 00
|
||||
000091 00 DCB 0
|
||||
000092 00 DCB 0
|
||||
000093 00 DCB 0
|
||||
|L4.148|
|
||||
000094 b6c16565 DCB 182,193,"eeprom",179,201,185,166,163,172,202,253,190,221
|
||||
000098 70726f6d
|
||||
00009c b3c9b9a6
|
||||
0000a0 a3accafd
|
||||
0000a4 bedd
|
||||
0000a6 c8e7cfc2 DCB 200,231,207,194,163,186
|
||||
0000aa a3ba
|
||||
|L4.172|
|
||||
0000ac 0d0a00 DCB "\r\n",0
|
||||
0000af 00 DCB 0
|
||||
|L4.176|
|
||||
0000b0 20253032 DCB " %02X",0
|
||||
0000b4 5800
|
||||
0000b6 00 DCB 0
|
||||
0000b7 00 DCB 0
|
||||
|L4.184|
|
||||
0000b8 202d2000 DCB " - ",0
|
||||
|L4.188|
|
||||
0000bc b6c1bac4 DCB 182,193,186,196,202,177,": %dms, ",182,193,203,217,182,200
|
||||
0000c0 cab13a20
|
||||
0000c4 25646d73
|
||||
0000c8 2c20b6c1
|
||||
0000cc cbd9b6c8
|
||||
0000d0 3a202564 DCB ": %dB/s\r\n",0
|
||||
0000d4 422f730d
|
||||
0000d8 0a00
|
||||
0000da 00 DCB 0
|
||||
0000db 00 DCB 0
|
||||
|
||||
AREA ||i.ee_WriteTest||, CODE, READONLY, ALIGN=2
|
||||
|
||||
REQUIRE _printf_percent
|
||||
REQUIRE _printf_d
|
||||
REQUIRE _printf_int_dec
|
||||
ee_WriteTest PROC
|
||||
;;;137 */
|
||||
;;;138 static void ee_WriteTest(void)
|
||||
000000 e92d41f0 PUSH {r4-r8,lr}
|
||||
;;;139 {
|
||||
;;;140 uint16_t i;
|
||||
;;;141 int32_t iTime1, iTime2;
|
||||
;;;142
|
||||
;;;143 /* 填充测试缓冲区 */
|
||||
;;;144 for (i = 0; i < EE_SIZE; i++)
|
||||
000004 2400 MOVS r4,#0
|
||||
000006 e003 B |L5.16|
|
||||
|L5.8|
|
||||
;;;145 {
|
||||
;;;146 buf[i] = i;
|
||||
000008 4913 LDR r1,|L5.88|
|
||||
00000a 550c STRB r4,[r1,r4]
|
||||
00000c 1c60 ADDS r0,r4,#1 ;144
|
||||
00000e b284 UXTH r4,r0 ;144
|
||||
|L5.16|
|
||||
000010 f5b44f80 CMP r4,#0x4000 ;144
|
||||
000014 dbf8 BLT |L5.8|
|
||||
;;;147 }
|
||||
;;;148
|
||||
;;;149 /* 写EEPROM, 起始地址 = 0,数据长度为 256 */
|
||||
;;;150 iTime1 = bsp_GetRunTime(); /* 记下开始时间 */
|
||||
000016 f7fffffe BL bsp_GetRunTime
|
||||
00001a 4605 MOV r5,r0
|
||||
;;;151 if (ee_WriteBytes(buf, 0, EE_SIZE) == 0)
|
||||
00001c f44f4280 MOV r2,#0x4000
|
||||
000020 2100 MOVS r1,#0
|
||||
000022 480d LDR r0,|L5.88|
|
||||
000024 f7fffffe BL ee_WriteBytes
|
||||
000028 b920 CBNZ r0,|L5.52|
|
||||
;;;152 {
|
||||
;;;153 printf("写eeprom出错!\r\n");
|
||||
00002a a00c ADR r0,|L5.92|
|
||||
00002c f7fffffe BL __2printf
|
||||
|L5.48|
|
||||
;;;154 return;
|
||||
;;;155 }
|
||||
;;;156 else
|
||||
;;;157 {
|
||||
;;;158 iTime2 = bsp_GetRunTime(); /* 记下结束时间 */
|
||||
;;;159 printf("写eeprom成功!\r\n");
|
||||
;;;160 }
|
||||
;;;161
|
||||
;;;162
|
||||
;;;163 /* 打印读速度 */
|
||||
;;;164 printf("写耗时: %dms, 写速度: %dB/s\r\n", iTime2 - iTime1, (EE_SIZE * 1000) / (iTime2 - iTime1));
|
||||
;;;165 }
|
||||
000030 e8bd81f0 POP {r4-r8,pc}
|
||||
|L5.52|
|
||||
000034 f7fffffe BL bsp_GetRunTime
|
||||
000038 4606 MOV r6,r0 ;158
|
||||
00003a a00d ADR r0,|L5.112|
|
||||
00003c f7fffffe BL __2printf
|
||||
000040 1b70 SUBS r0,r6,r5 ;164
|
||||
000042 f44f017a MOV r1,#0xfa0000 ;164
|
||||
000046 fb91f7f0 SDIV r7,r1,r0 ;164
|
||||
00004a 1b71 SUBS r1,r6,r5 ;164
|
||||
00004c 463a MOV r2,r7 ;164
|
||||
00004e a00d ADR r0,|L5.132|
|
||||
000050 f7fffffe BL __2printf
|
||||
000054 bf00 NOP
|
||||
000056 e7eb B |L5.48|
|
||||
;;;166
|
||||
ENDP
|
||||
|
||||
|L5.88|
|
||||
DCD buf
|
||||
|L5.92|
|
||||
00005c d0b46565 DCB 208,180,"eeprom",179,246,180,237,163,161,"\r\n",0
|
||||
000060 70726f6d
|
||||
000064 b3f6b4ed
|
||||
000068 a3a10d0a
|
||||
00006c 00
|
||||
00006d 00 DCB 0
|
||||
00006e 00 DCB 0
|
||||
00006f 00 DCB 0
|
||||
|L5.112|
|
||||
000070 d0b46565 DCB 208,180,"eeprom",179,201,185,166,163,161,"\r\n",0
|
||||
000074 70726f6d
|
||||
000078 b3c9b9a6
|
||||
00007c a3a10d0a
|
||||
000080 00
|
||||
000081 00 DCB 0
|
||||
000082 00 DCB 0
|
||||
000083 00 DCB 0
|
||||
|L5.132|
|
||||
000084 d0b4bac4 DCB 208,180,186,196,202,177,": %dms, ",208,180,203,217,182,200
|
||||
000088 cab13a20
|
||||
00008c 25646d73
|
||||
000090 2c20d0b4
|
||||
000094 cbd9b6c8
|
||||
000098 3a202564 DCB ": %dB/s\r\n",0
|
||||
00009c 422f730d
|
||||
0000a0 0a00
|
||||
0000a2 00 DCB 0
|
||||
0000a3 00 DCB 0
|
||||
|
||||
AREA ||.bss||, DATA, NOINIT, ALIGN=0
|
||||
|
||||
buf
|
||||
% 16384
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\app\\src\\demo_i2c_eeprom.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___17_demo_i2c_eeprom_c_4000555c____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___17_demo_i2c_eeprom_c_4000555c____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___17_demo_i2c_eeprom_c_4000555c____REVSH|
|
||||
#line 128
|
||||
|__asm___17_demo_i2c_eeprom_c_4000555c____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
1673
Project/MDK-ARM/Flash/List/main.txt
Normal file
1673
Project/MDK-ARM/Flash/List/main.txt
Normal file
File diff suppressed because it is too large
Load Diff
249
Project/MDK-ARM/Flash/List/misc.txt
Normal file
249
Project/MDK-ARM/Flash/List/misc.txt
Normal file
@@ -0,0 +1,249 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\misc.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\misc.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\misc.crf ..\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.NVIC_Init||, CODE, READONLY, ALIGN=2
|
||||
|
||||
NVIC_Init PROC
|
||||
;;;117 */
|
||||
;;;118 void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
|
||||
000000 b570 PUSH {r4-r6,lr}
|
||||
;;;119 {
|
||||
;;;120 uint32_t tmppriority = 0x00, tmppre = 0x00, tmpsub = 0x0F;
|
||||
000002 2100 MOVS r1,#0
|
||||
000004 2300 MOVS r3,#0
|
||||
000006 220f MOVS r2,#0xf
|
||||
;;;121
|
||||
;;;122 /* Check the parameters */
|
||||
;;;123 assert_param(IS_FUNCTIONAL_STATE(NVIC_InitStruct->NVIC_IRQChannelCmd));
|
||||
;;;124 assert_param(IS_NVIC_PREEMPTION_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority));
|
||||
;;;125 assert_param(IS_NVIC_SUB_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelSubPriority));
|
||||
;;;126
|
||||
;;;127 if (NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE)
|
||||
000008 78c4 LDRB r4,[r0,#3]
|
||||
00000a b304 CBZ r4,|L1.78|
|
||||
;;;128 {
|
||||
;;;129 /* Compute the Corresponding IRQ Priority --------------------------------*/
|
||||
;;;130 tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700))>> 0x08;
|
||||
00000c 4c15 LDR r4,|L1.100|
|
||||
00000e 6824 LDR r4,[r4,#0]
|
||||
000010 f40464e0 AND r4,r4,#0x700
|
||||
000014 f5c464e0 RSB r4,r4,#0x700
|
||||
000018 0a21 LSRS r1,r4,#8
|
||||
;;;131 tmppre = (0x4 - tmppriority);
|
||||
00001a f1c10304 RSB r3,r1,#4
|
||||
;;;132 tmpsub = tmpsub >> tmppriority;
|
||||
00001e 40ca LSRS r2,r2,r1
|
||||
;;;133
|
||||
;;;134 tmppriority = (uint32_t)NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;
|
||||
000020 7844 LDRB r4,[r0,#1]
|
||||
000022 fa04f103 LSL r1,r4,r3
|
||||
;;;135 tmppriority |= NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub;
|
||||
000026 7884 LDRB r4,[r0,#2]
|
||||
000028 4014 ANDS r4,r4,r2
|
||||
00002a 4321 ORRS r1,r1,r4
|
||||
;;;136 tmppriority = tmppriority << 0x04;
|
||||
00002c 0109 LSLS r1,r1,#4
|
||||
;;;137
|
||||
;;;138 NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;
|
||||
00002e 4c0e LDR r4,|L1.104|
|
||||
000030 7806 LDRB r6,[r0,#0]
|
||||
000032 55a1 STRB r1,[r4,r6]
|
||||
;;;139
|
||||
;;;140 /* Enable the Selected IRQ Channels --------------------------------------*/
|
||||
;;;141 NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
|
||||
000034 7804 LDRB r4,[r0,#0]
|
||||
000036 f004051f AND r5,r4,#0x1f
|
||||
00003a 2401 MOVS r4,#1
|
||||
00003c 40ac LSLS r4,r4,r5
|
||||
00003e 7805 LDRB r5,[r0,#0]
|
||||
000040 116d ASRS r5,r5,#5
|
||||
000042 00ad LSLS r5,r5,#2
|
||||
000044 f10525e0 ADD r5,r5,#0xe000e000
|
||||
000048 f8c54100 STR r4,[r5,#0x100]
|
||||
00004c e009 B |L1.98|
|
||||
|L1.78|
|
||||
;;;142 (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
|
||||
;;;143 }
|
||||
;;;144 else
|
||||
;;;145 {
|
||||
;;;146 /* Disable the Selected IRQ Channels -------------------------------------*/
|
||||
;;;147 NVIC->ICER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
|
||||
00004e 7804 LDRB r4,[r0,#0]
|
||||
000050 f004051f AND r5,r4,#0x1f
|
||||
000054 2401 MOVS r4,#1
|
||||
000056 40ac LSLS r4,r4,r5
|
||||
000058 4d04 LDR r5,|L1.108|
|
||||
00005a 7806 LDRB r6,[r0,#0]
|
||||
00005c 1176 ASRS r6,r6,#5
|
||||
00005e f8454026 STR r4,[r5,r6,LSL #2]
|
||||
|L1.98|
|
||||
;;;148 (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
|
||||
;;;149 }
|
||||
;;;150 }
|
||||
000062 bd70 POP {r4-r6,pc}
|
||||
;;;151
|
||||
ENDP
|
||||
|
||||
|L1.100|
|
||||
DCD 0xe000ed0c
|
||||
|L1.104|
|
||||
DCD 0xe000e400
|
||||
|L1.108|
|
||||
DCD 0xe000e180
|
||||
|
||||
AREA ||i.NVIC_PriorityGroupConfig||, CODE, READONLY, ALIGN=2
|
||||
|
||||
NVIC_PriorityGroupConfig PROC
|
||||
;;;101 */
|
||||
;;;102 void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)
|
||||
000000 4902 LDR r1,|L2.12|
|
||||
;;;103 {
|
||||
;;;104 /* Check the parameters */
|
||||
;;;105 assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup));
|
||||
;;;106
|
||||
;;;107 /* Set the PRIGROUP[10:8] bits according to NVIC_PriorityGroup value */
|
||||
;;;108 SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PriorityGroup;
|
||||
000002 4301 ORRS r1,r1,r0
|
||||
000004 4a02 LDR r2,|L2.16|
|
||||
000006 6011 STR r1,[r2,#0]
|
||||
;;;109 }
|
||||
000008 4770 BX lr
|
||||
;;;110
|
||||
ENDP
|
||||
|
||||
00000a 0000 DCW 0x0000
|
||||
|L2.12|
|
||||
DCD 0x05fa0000
|
||||
|L2.16|
|
||||
DCD 0xe000ed0c
|
||||
|
||||
AREA ||i.NVIC_SetVectorTable||, CODE, READONLY, ALIGN=2
|
||||
|
||||
NVIC_SetVectorTable PROC
|
||||
;;;161 */
|
||||
;;;162 void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset)
|
||||
000000 4a02 LDR r2,|L3.12|
|
||||
;;;163 {
|
||||
;;;164 /* Check the parameters */
|
||||
;;;165 assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));
|
||||
;;;166 assert_param(IS_NVIC_OFFSET(Offset));
|
||||
;;;167
|
||||
;;;168 SCB->VTOR = NVIC_VectTab | (Offset & (uint32_t)0x1FFFFF80);
|
||||
000002 400a ANDS r2,r2,r1
|
||||
000004 4302 ORRS r2,r2,r0
|
||||
000006 4b02 LDR r3,|L3.16|
|
||||
000008 601a STR r2,[r3,#0]
|
||||
;;;169 }
|
||||
00000a 4770 BX lr
|
||||
;;;170
|
||||
ENDP
|
||||
|
||||
|L3.12|
|
||||
DCD 0x1fffff80
|
||||
|L3.16|
|
||||
DCD 0xe000ed08
|
||||
|
||||
AREA ||i.NVIC_SystemLPConfig||, CODE, READONLY, ALIGN=2
|
||||
|
||||
NVIC_SystemLPConfig PROC
|
||||
;;;180 */
|
||||
;;;181 void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState)
|
||||
000000 b129 CBZ r1,|L4.14|
|
||||
;;;182 {
|
||||
;;;183 /* Check the parameters */
|
||||
;;;184 assert_param(IS_NVIC_LP(LowPowerMode));
|
||||
;;;185 assert_param(IS_FUNCTIONAL_STATE(NewState));
|
||||
;;;186
|
||||
;;;187 if (NewState != DISABLE)
|
||||
;;;188 {
|
||||
;;;189 SCB->SCR |= LowPowerMode;
|
||||
000002 4a06 LDR r2,|L4.28|
|
||||
000004 6812 LDR r2,[r2,#0]
|
||||
000006 4302 ORRS r2,r2,r0
|
||||
000008 4b04 LDR r3,|L4.28|
|
||||
00000a 601a STR r2,[r3,#0]
|
||||
00000c e004 B |L4.24|
|
||||
|L4.14|
|
||||
;;;190 }
|
||||
;;;191 else
|
||||
;;;192 {
|
||||
;;;193 SCB->SCR &= (uint32_t)(~(uint32_t)LowPowerMode);
|
||||
00000e 4a03 LDR r2,|L4.28|
|
||||
000010 6812 LDR r2,[r2,#0]
|
||||
000012 4382 BICS r2,r2,r0
|
||||
000014 4b01 LDR r3,|L4.28|
|
||||
000016 601a STR r2,[r3,#0]
|
||||
|L4.24|
|
||||
;;;194 }
|
||||
;;;195 }
|
||||
000018 4770 BX lr
|
||||
;;;196
|
||||
ENDP
|
||||
|
||||
00001a 0000 DCW 0x0000
|
||||
|L4.28|
|
||||
DCD 0xe000ed10
|
||||
|
||||
AREA ||i.SysTick_CLKSourceConfig||, CODE, READONLY, ALIGN=1
|
||||
|
||||
SysTick_CLKSourceConfig PROC
|
||||
;;;204 */
|
||||
;;;205 void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)
|
||||
000000 2804 CMP r0,#4
|
||||
;;;206 {
|
||||
;;;207 /* Check the parameters */
|
||||
;;;208 assert_param(IS_SYSTICK_CLK_SOURCE(SysTick_CLKSource));
|
||||
;;;209 if (SysTick_CLKSource == SysTick_CLKSource_HCLK)
|
||||
000002 d108 BNE |L5.22|
|
||||
;;;210 {
|
||||
;;;211 SysTick->CTRL |= SysTick_CLKSource_HCLK;
|
||||
000004 f04f21e0 MOV r1,#0xe000e000
|
||||
000008 6909 LDR r1,[r1,#0x10]
|
||||
00000a f0410104 ORR r1,r1,#4
|
||||
00000e f04f22e0 MOV r2,#0xe000e000
|
||||
000012 6111 STR r1,[r2,#0x10]
|
||||
000014 e007 B |L5.38|
|
||||
|L5.22|
|
||||
;;;212 }
|
||||
;;;213 else
|
||||
;;;214 {
|
||||
;;;215 SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8;
|
||||
000016 f04f21e0 MOV r1,#0xe000e000
|
||||
00001a 6909 LDR r1,[r1,#0x10]
|
||||
00001c f0210104 BIC r1,r1,#4
|
||||
000020 f04f22e0 MOV r2,#0xe000e000
|
||||
000024 6111 STR r1,[r2,#0x10]
|
||||
|L5.38|
|
||||
;;;216 }
|
||||
;;;217 }
|
||||
000026 4770 BX lr
|
||||
;;;218
|
||||
ENDP
|
||||
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\misc.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___6_misc_c_d0fc1254____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___6_misc_c_d0fc1254____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___6_misc_c_d0fc1254____REVSH|
|
||||
#line 128
|
||||
|__asm___6_misc_c_d0fc1254____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
1535
Project/MDK-ARM/Flash/List/stm32f10x_adc.txt
Normal file
1535
Project/MDK-ARM/Flash/List/stm32f10x_adc.txt
Normal file
File diff suppressed because it is too large
Load Diff
29
Project/MDK-ARM/Flash/List/stm32f10x_assert.txt
Normal file
29
Project/MDK-ARM/Flash/List/stm32f10x_assert.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\stm32f10x_assert.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\stm32f10x_assert.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\stm32f10x_assert.crf ..\..\User\bsp\stm32f10x_assert.c]
|
||||
THUMB
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\stm32f10x_assert.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___18_stm32f10x_assert_c____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___18_stm32f10x_assert_c____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___18_stm32f10x_assert_c____REVSH|
|
||||
#line 128
|
||||
|__asm___18_stm32f10x_assert_c____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
522
Project/MDK-ARM/Flash/List/stm32f10x_dac.txt
Normal file
522
Project/MDK-ARM/Flash/List/stm32f10x_dac.txt
Normal file
@@ -0,0 +1,522 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\stm32f10x_dac.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\stm32f10x_dac.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\stm32f10x_dac.crf ..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.DAC_Cmd||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DAC_Cmd PROC
|
||||
;;;178 */
|
||||
;;;179 void DAC_Cmd(uint32_t DAC_Channel, FunctionalState NewState)
|
||||
000000 b139 CBZ r1,|L1.18|
|
||||
;;;180 {
|
||||
;;;181 /* Check the parameters */
|
||||
;;;182 assert_param(IS_DAC_CHANNEL(DAC_Channel));
|
||||
;;;183 assert_param(IS_FUNCTIONAL_STATE(NewState));
|
||||
;;;184 if (NewState != DISABLE)
|
||||
;;;185 {
|
||||
;;;186 /* Enable the selected DAC channel */
|
||||
;;;187 DAC->CR |= (DAC_CR_EN1 << DAC_Channel);
|
||||
000002 4a08 LDR r2,|L1.36|
|
||||
000004 6812 LDR r2,[r2,#0]
|
||||
000006 2301 MOVS r3,#1
|
||||
000008 4083 LSLS r3,r3,r0
|
||||
00000a 431a ORRS r2,r2,r3
|
||||
00000c 4b05 LDR r3,|L1.36|
|
||||
00000e 601a STR r2,[r3,#0]
|
||||
000010 e006 B |L1.32|
|
||||
|L1.18|
|
||||
;;;188 }
|
||||
;;;189 else
|
||||
;;;190 {
|
||||
;;;191 /* Disable the selected DAC channel */
|
||||
;;;192 DAC->CR &= ~(DAC_CR_EN1 << DAC_Channel);
|
||||
000012 4a04 LDR r2,|L1.36|
|
||||
000014 6812 LDR r2,[r2,#0]
|
||||
000016 2301 MOVS r3,#1
|
||||
000018 4083 LSLS r3,r3,r0
|
||||
00001a 439a BICS r2,r2,r3
|
||||
00001c 4b01 LDR r3,|L1.36|
|
||||
00001e 601a STR r2,[r3,#0]
|
||||
|L1.32|
|
||||
;;;193 }
|
||||
;;;194 }
|
||||
000020 4770 BX lr
|
||||
;;;195 #if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL)
|
||||
ENDP
|
||||
|
||||
000022 0000 DCW 0x0000
|
||||
|L1.36|
|
||||
DCD 0x40007400
|
||||
|
||||
AREA ||i.DAC_DMACmd||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DAC_DMACmd PROC
|
||||
;;;238 */
|
||||
;;;239 void DAC_DMACmd(uint32_t DAC_Channel, FunctionalState NewState)
|
||||
000000 b141 CBZ r1,|L2.20|
|
||||
;;;240 {
|
||||
;;;241 /* Check the parameters */
|
||||
;;;242 assert_param(IS_DAC_CHANNEL(DAC_Channel));
|
||||
;;;243 assert_param(IS_FUNCTIONAL_STATE(NewState));
|
||||
;;;244 if (NewState != DISABLE)
|
||||
;;;245 {
|
||||
;;;246 /* Enable the selected DAC channel DMA request */
|
||||
;;;247 DAC->CR |= (DAC_CR_DMAEN1 << DAC_Channel);
|
||||
000002 4a09 LDR r2,|L2.40|
|
||||
000004 6812 LDR r2,[r2,#0]
|
||||
000006 f44f5380 MOV r3,#0x1000
|
||||
00000a 4083 LSLS r3,r3,r0
|
||||
00000c 431a ORRS r2,r2,r3
|
||||
00000e 4b06 LDR r3,|L2.40|
|
||||
000010 601a STR r2,[r3,#0]
|
||||
000012 e007 B |L2.36|
|
||||
|L2.20|
|
||||
;;;248 }
|
||||
;;;249 else
|
||||
;;;250 {
|
||||
;;;251 /* Disable the selected DAC channel DMA request */
|
||||
;;;252 DAC->CR &= ~(DAC_CR_DMAEN1 << DAC_Channel);
|
||||
000014 4a04 LDR r2,|L2.40|
|
||||
000016 6812 LDR r2,[r2,#0]
|
||||
000018 f44f5380 MOV r3,#0x1000
|
||||
00001c 4083 LSLS r3,r3,r0
|
||||
00001e 439a BICS r2,r2,r3
|
||||
000020 4b01 LDR r3,|L2.40|
|
||||
000022 601a STR r2,[r3,#0]
|
||||
|L2.36|
|
||||
;;;253 }
|
||||
;;;254 }
|
||||
000024 4770 BX lr
|
||||
;;;255
|
||||
ENDP
|
||||
|
||||
000026 0000 DCW 0x0000
|
||||
|L2.40|
|
||||
DCD 0x40007400
|
||||
|
||||
AREA ||i.DAC_DeInit||, CODE, READONLY, ALIGN=1
|
||||
|
||||
DAC_DeInit PROC
|
||||
;;;103 */
|
||||
;;;104 void DAC_DeInit(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;105 {
|
||||
;;;106 /* Enable DAC reset state */
|
||||
;;;107 RCC_APB1PeriphResetCmd(RCC_APB1Periph_DAC, ENABLE);
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 0748 LSLS r0,r1,#29
|
||||
000006 f7fffffe BL RCC_APB1PeriphResetCmd
|
||||
;;;108 /* Release DAC from reset state */
|
||||
;;;109 RCC_APB1PeriphResetCmd(RCC_APB1Periph_DAC, DISABLE);
|
||||
00000a 2100 MOVS r1,#0
|
||||
00000c f04f5000 MOV r0,#0x20000000
|
||||
000010 f7fffffe BL RCC_APB1PeriphResetCmd
|
||||
;;;110 }
|
||||
000014 bd10 POP {r4,pc}
|
||||
;;;111
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.DAC_DualSoftwareTriggerCmd||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DAC_DualSoftwareTriggerCmd PROC
|
||||
;;;289 */
|
||||
;;;290 void DAC_DualSoftwareTriggerCmd(FunctionalState NewState)
|
||||
000000 b130 CBZ r0,|L4.16|
|
||||
;;;291 {
|
||||
;;;292 /* Check the parameters */
|
||||
;;;293 assert_param(IS_FUNCTIONAL_STATE(NewState));
|
||||
;;;294 if (NewState != DISABLE)
|
||||
;;;295 {
|
||||
;;;296 /* Enable software trigger for both DAC channels */
|
||||
;;;297 DAC->SWTRIGR |= DUAL_SWTRIG_SET ;
|
||||
000002 4907 LDR r1,|L4.32|
|
||||
000004 6809 LDR r1,[r1,#0]
|
||||
000006 f0410103 ORR r1,r1,#3
|
||||
00000a 4a05 LDR r2,|L4.32|
|
||||
00000c 6011 STR r1,[r2,#0]
|
||||
00000e e005 B |L4.28|
|
||||
|L4.16|
|
||||
;;;298 }
|
||||
;;;299 else
|
||||
;;;300 {
|
||||
;;;301 /* Disable software trigger for both DAC channels */
|
||||
;;;302 DAC->SWTRIGR &= DUAL_SWTRIG_RESET;
|
||||
000010 4903 LDR r1,|L4.32|
|
||||
000012 6809 LDR r1,[r1,#0]
|
||||
000014 f0210103 BIC r1,r1,#3
|
||||
000018 4a01 LDR r2,|L4.32|
|
||||
00001a 6011 STR r1,[r2,#0]
|
||||
|L4.28|
|
||||
;;;303 }
|
||||
;;;304 }
|
||||
00001c 4770 BX lr
|
||||
;;;305
|
||||
ENDP
|
||||
|
||||
00001e 0000 DCW 0x0000
|
||||
|L4.32|
|
||||
DCD 0x40007404
|
||||
|
||||
AREA ||i.DAC_GetDataOutputValue||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DAC_GetDataOutputValue PROC
|
||||
;;;435 */
|
||||
;;;436 uint16_t DAC_GetDataOutputValue(uint32_t DAC_Channel)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;437 {
|
||||
000002 4601 MOV r1,r0
|
||||
;;;438 __IO uint32_t tmp = 0;
|
||||
000004 2000 MOVS r0,#0
|
||||
000006 9000 STR r0,[sp,#0]
|
||||
;;;439
|
||||
;;;440 /* Check the parameters */
|
||||
;;;441 assert_param(IS_DAC_CHANNEL(DAC_Channel));
|
||||
;;;442
|
||||
;;;443 tmp = (uint32_t) DAC_BASE ;
|
||||
000008 4805 LDR r0,|L5.32|
|
||||
00000a 9000 STR r0,[sp,#0]
|
||||
;;;444 tmp += DOR_OFFSET + ((uint32_t)DAC_Channel >> 2);
|
||||
00000c 202c MOVS r0,#0x2c
|
||||
00000e eb000091 ADD r0,r0,r1,LSR #2
|
||||
000012 9a00 LDR r2,[sp,#0]
|
||||
000014 4410 ADD r0,r0,r2
|
||||
000016 9000 STR r0,[sp,#0]
|
||||
;;;445
|
||||
;;;446 /* Returns the DAC channel data output register value */
|
||||
;;;447 return (uint16_t) (*(__IO uint32_t*) tmp);
|
||||
000018 9800 LDR r0,[sp,#0]
|
||||
00001a 6800 LDR r0,[r0,#0]
|
||||
00001c b280 UXTH r0,r0
|
||||
;;;448 }
|
||||
00001e bd08 POP {r3,pc}
|
||||
;;;449
|
||||
ENDP
|
||||
|
||||
|L5.32|
|
||||
DCD 0x40007400
|
||||
|
||||
AREA ||i.DAC_Init||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DAC_Init PROC
|
||||
;;;122 */
|
||||
;;;123 void DAC_Init(uint32_t DAC_Channel, DAC_InitTypeDef* DAC_InitStruct)
|
||||
000000 b530 PUSH {r4,r5,lr}
|
||||
;;;124 {
|
||||
;;;125 uint32_t tmpreg1 = 0, tmpreg2 = 0;
|
||||
000002 2200 MOVS r2,#0
|
||||
000004 2300 MOVS r3,#0
|
||||
;;;126 /* Check the DAC parameters */
|
||||
;;;127 assert_param(IS_DAC_TRIGGER(DAC_InitStruct->DAC_Trigger));
|
||||
;;;128 assert_param(IS_DAC_GENERATE_WAVE(DAC_InitStruct->DAC_WaveGeneration));
|
||||
;;;129 assert_param(IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(DAC_InitStruct->DAC_LFSRUnmask_TriangleAmplitude));
|
||||
;;;130 assert_param(IS_DAC_OUTPUT_BUFFER_STATE(DAC_InitStruct->DAC_OutputBuffer));
|
||||
;;;131 /*---------------------------- DAC CR Configuration --------------------------*/
|
||||
;;;132 /* Get the DAC CR value */
|
||||
;;;133 tmpreg1 = DAC->CR;
|
||||
000006 4c0a LDR r4,|L6.48|
|
||||
000008 6822 LDR r2,[r4,#0]
|
||||
;;;134 /* Clear BOFFx, TENx, TSELx, WAVEx and MAMPx bits */
|
||||
;;;135 tmpreg1 &= ~(CR_CLEAR_MASK << DAC_Channel);
|
||||
00000a f64074fe MOV r4,#0xffe
|
||||
00000e 4084 LSLS r4,r4,r0
|
||||
000010 43a2 BICS r2,r2,r4
|
||||
;;;136 /* Configure for the selected DAC channel: buffer output, trigger, wave generation,
|
||||
;;;137 mask/amplitude for wave generation */
|
||||
;;;138 /* Set TSELx and TENx bits according to DAC_Trigger value */
|
||||
;;;139 /* Set WAVEx bits according to DAC_WaveGeneration value */
|
||||
;;;140 /* Set MAMPx bits according to DAC_LFSRUnmask_TriangleAmplitude value */
|
||||
;;;141 /* Set BOFFx bit according to DAC_OutputBuffer value */
|
||||
;;;142 tmpreg2 = (DAC_InitStruct->DAC_Trigger | DAC_InitStruct->DAC_WaveGeneration |
|
||||
000012 e9d14500 LDRD r4,r5,[r1,#0]
|
||||
000016 432c ORRS r4,r4,r5
|
||||
000018 688d LDR r5,[r1,#8]
|
||||
00001a 432c ORRS r4,r4,r5
|
||||
00001c 68cd LDR r5,[r1,#0xc]
|
||||
00001e ea440305 ORR r3,r4,r5
|
||||
;;;143 DAC_InitStruct->DAC_LFSRUnmask_TriangleAmplitude | DAC_InitStruct->DAC_OutputBuffer);
|
||||
;;;144 /* Calculate CR register value depending on DAC_Channel */
|
||||
;;;145 tmpreg1 |= tmpreg2 << DAC_Channel;
|
||||
000022 fa03f400 LSL r4,r3,r0
|
||||
000026 4322 ORRS r2,r2,r4
|
||||
;;;146 /* Write to DAC CR */
|
||||
;;;147 DAC->CR = tmpreg1;
|
||||
000028 4c01 LDR r4,|L6.48|
|
||||
00002a 6022 STR r2,[r4,#0]
|
||||
;;;148 }
|
||||
00002c bd30 POP {r4,r5,pc}
|
||||
;;;149
|
||||
ENDP
|
||||
|
||||
00002e 0000 DCW 0x0000
|
||||
|L6.48|
|
||||
DCD 0x40007400
|
||||
|
||||
AREA ||i.DAC_SetChannel1Data||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DAC_SetChannel1Data PROC
|
||||
;;;347 */
|
||||
;;;348 void DAC_SetChannel1Data(uint32_t DAC_Align, uint16_t Data)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;349 {
|
||||
;;;350 __IO uint32_t tmp = 0;
|
||||
000002 2200 MOVS r2,#0
|
||||
000004 9200 STR r2,[sp,#0]
|
||||
;;;351
|
||||
;;;352 /* Check the parameters */
|
||||
;;;353 assert_param(IS_DAC_ALIGN(DAC_Align));
|
||||
;;;354 assert_param(IS_DAC_DATA(Data));
|
||||
;;;355
|
||||
;;;356 tmp = (uint32_t)DAC_BASE;
|
||||
000006 4a05 LDR r2,|L7.28|
|
||||
000008 9200 STR r2,[sp,#0]
|
||||
;;;357 tmp += DHR12R1_OFFSET + DAC_Align;
|
||||
00000a f1000208 ADD r2,r0,#8
|
||||
00000e 9b00 LDR r3,[sp,#0]
|
||||
000010 441a ADD r2,r2,r3
|
||||
000012 9200 STR r2,[sp,#0]
|
||||
;;;358
|
||||
;;;359 /* Set the DAC channel1 selected data holding register */
|
||||
;;;360 *(__IO uint32_t *) tmp = Data;
|
||||
000014 9a00 LDR r2,[sp,#0]
|
||||
000016 6011 STR r1,[r2,#0]
|
||||
;;;361 }
|
||||
000018 bd08 POP {r3,pc}
|
||||
;;;362
|
||||
ENDP
|
||||
|
||||
00001a 0000 DCW 0x0000
|
||||
|L7.28|
|
||||
DCD 0x40007400
|
||||
|
||||
AREA ||i.DAC_SetChannel2Data||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DAC_SetChannel2Data PROC
|
||||
;;;372 */
|
||||
;;;373 void DAC_SetChannel2Data(uint32_t DAC_Align, uint16_t Data)
|
||||
000000 b508 PUSH {r3,lr}
|
||||
;;;374 {
|
||||
;;;375 __IO uint32_t tmp = 0;
|
||||
000002 2200 MOVS r2,#0
|
||||
000004 9200 STR r2,[sp,#0]
|
||||
;;;376
|
||||
;;;377 /* Check the parameters */
|
||||
;;;378 assert_param(IS_DAC_ALIGN(DAC_Align));
|
||||
;;;379 assert_param(IS_DAC_DATA(Data));
|
||||
;;;380
|
||||
;;;381 tmp = (uint32_t)DAC_BASE;
|
||||
000006 4a05 LDR r2,|L8.28|
|
||||
000008 9200 STR r2,[sp,#0]
|
||||
;;;382 tmp += DHR12R2_OFFSET + DAC_Align;
|
||||
00000a f1000214 ADD r2,r0,#0x14
|
||||
00000e 9b00 LDR r3,[sp,#0]
|
||||
000010 441a ADD r2,r2,r3
|
||||
000012 9200 STR r2,[sp,#0]
|
||||
;;;383
|
||||
;;;384 /* Set the DAC channel2 selected data holding register */
|
||||
;;;385 *(__IO uint32_t *)tmp = Data;
|
||||
000014 9a00 LDR r2,[sp,#0]
|
||||
000016 6011 STR r1,[r2,#0]
|
||||
;;;386 }
|
||||
000018 bd08 POP {r3,pc}
|
||||
;;;387
|
||||
ENDP
|
||||
|
||||
00001a 0000 DCW 0x0000
|
||||
|L8.28|
|
||||
DCD 0x40007400
|
||||
|
||||
AREA ||i.DAC_SetDualChannelData||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DAC_SetDualChannelData PROC
|
||||
;;;401 */
|
||||
;;;402 void DAC_SetDualChannelData(uint32_t DAC_Align, uint16_t Data2, uint16_t Data1)
|
||||
000000 b530 PUSH {r4,r5,lr}
|
||||
;;;403 {
|
||||
;;;404 uint32_t data = 0, tmp = 0;
|
||||
000002 2400 MOVS r4,#0
|
||||
000004 2300 MOVS r3,#0
|
||||
;;;405
|
||||
;;;406 /* Check the parameters */
|
||||
;;;407 assert_param(IS_DAC_ALIGN(DAC_Align));
|
||||
;;;408 assert_param(IS_DAC_DATA(Data1));
|
||||
;;;409 assert_param(IS_DAC_DATA(Data2));
|
||||
;;;410
|
||||
;;;411 /* Calculate and set dual DAC data holding register value */
|
||||
;;;412 if (DAC_Align == DAC_Align_8b_R)
|
||||
000006 2808 CMP r0,#8
|
||||
000008 d102 BNE |L9.16|
|
||||
;;;413 {
|
||||
;;;414 data = ((uint32_t)Data2 << 8) | Data1;
|
||||
00000a ea422401 ORR r4,r2,r1,LSL #8
|
||||
00000e e001 B |L9.20|
|
||||
|L9.16|
|
||||
;;;415 }
|
||||
;;;416 else
|
||||
;;;417 {
|
||||
;;;418 data = ((uint32_t)Data2 << 16) | Data1;
|
||||
000010 ea424401 ORR r4,r2,r1,LSL #16
|
||||
|L9.20|
|
||||
;;;419 }
|
||||
;;;420
|
||||
;;;421 tmp = (uint32_t)DAC_BASE;
|
||||
000014 4b02 LDR r3,|L9.32|
|
||||
;;;422 tmp += DHR12RD_OFFSET + DAC_Align;
|
||||
000016 f1000520 ADD r5,r0,#0x20
|
||||
00001a 442b ADD r3,r3,r5
|
||||
;;;423
|
||||
;;;424 /* Set the dual DAC selected data holding register */
|
||||
;;;425 *(__IO uint32_t *)tmp = data;
|
||||
00001c 601c STR r4,[r3,#0]
|
||||
;;;426 }
|
||||
00001e bd30 POP {r4,r5,pc}
|
||||
;;;427
|
||||
ENDP
|
||||
|
||||
|L9.32|
|
||||
DCD 0x40007400
|
||||
|
||||
AREA ||i.DAC_SoftwareTriggerCmd||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DAC_SoftwareTriggerCmd PROC
|
||||
;;;265 */
|
||||
;;;266 void DAC_SoftwareTriggerCmd(uint32_t DAC_Channel, FunctionalState NewState)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;267 {
|
||||
;;;268 /* Check the parameters */
|
||||
;;;269 assert_param(IS_DAC_CHANNEL(DAC_Channel));
|
||||
;;;270 assert_param(IS_FUNCTIONAL_STATE(NewState));
|
||||
;;;271 if (NewState != DISABLE)
|
||||
000002 b141 CBZ r1,|L10.22|
|
||||
;;;272 {
|
||||
;;;273 /* Enable software trigger for the selected DAC channel */
|
||||
;;;274 DAC->SWTRIGR |= (uint32_t)DAC_SWTRIGR_SWTRIG1 << (DAC_Channel >> 4);
|
||||
000004 4a08 LDR r2,|L10.40|
|
||||
000006 6812 LDR r2,[r2,#0]
|
||||
000008 0904 LSRS r4,r0,#4
|
||||
00000a 2301 MOVS r3,#1
|
||||
00000c 40a3 LSLS r3,r3,r4
|
||||
00000e 431a ORRS r2,r2,r3
|
||||
000010 4b05 LDR r3,|L10.40|
|
||||
000012 601a STR r2,[r3,#0]
|
||||
000014 e007 B |L10.38|
|
||||
|L10.22|
|
||||
;;;275 }
|
||||
;;;276 else
|
||||
;;;277 {
|
||||
;;;278 /* Disable software trigger for the selected DAC channel */
|
||||
;;;279 DAC->SWTRIGR &= ~((uint32_t)DAC_SWTRIGR_SWTRIG1 << (DAC_Channel >> 4));
|
||||
000016 4a04 LDR r2,|L10.40|
|
||||
000018 6812 LDR r2,[r2,#0]
|
||||
00001a 0904 LSRS r4,r0,#4
|
||||
00001c 2301 MOVS r3,#1
|
||||
00001e 40a3 LSLS r3,r3,r4
|
||||
000020 439a BICS r2,r2,r3
|
||||
000022 4b01 LDR r3,|L10.40|
|
||||
000024 601a STR r2,[r3,#0]
|
||||
|L10.38|
|
||||
;;;280 }
|
||||
;;;281 }
|
||||
000026 bd10 POP {r4,pc}
|
||||
;;;282
|
||||
ENDP
|
||||
|
||||
|L10.40|
|
||||
DCD 0x40007404
|
||||
|
||||
AREA ||i.DAC_StructInit||, CODE, READONLY, ALIGN=1
|
||||
|
||||
DAC_StructInit PROC
|
||||
;;;155 */
|
||||
;;;156 void DAC_StructInit(DAC_InitTypeDef* DAC_InitStruct)
|
||||
000000 2100 MOVS r1,#0
|
||||
;;;157 {
|
||||
;;;158 /*--------------- Reset DAC init structure parameters values -----------------*/
|
||||
;;;159 /* Initialize the DAC_Trigger member */
|
||||
;;;160 DAC_InitStruct->DAC_Trigger = DAC_Trigger_None;
|
||||
000002 6001 STR r1,[r0,#0]
|
||||
;;;161 /* Initialize the DAC_WaveGeneration member */
|
||||
;;;162 DAC_InitStruct->DAC_WaveGeneration = DAC_WaveGeneration_None;
|
||||
000004 6041 STR r1,[r0,#4]
|
||||
;;;163 /* Initialize the DAC_LFSRUnmask_TriangleAmplitude member */
|
||||
;;;164 DAC_InitStruct->DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bit0;
|
||||
000006 6081 STR r1,[r0,#8]
|
||||
;;;165 /* Initialize the DAC_OutputBuffer member */
|
||||
;;;166 DAC_InitStruct->DAC_OutputBuffer = DAC_OutputBuffer_Enable;
|
||||
000008 60c1 STR r1,[r0,#0xc]
|
||||
;;;167 }
|
||||
00000a 4770 BX lr
|
||||
;;;168
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.DAC_WaveGenerationCmd||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DAC_WaveGenerationCmd PROC
|
||||
;;;319 */
|
||||
;;;320 void DAC_WaveGenerationCmd(uint32_t DAC_Channel, uint32_t DAC_Wave, FunctionalState NewState)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;321 {
|
||||
;;;322 /* Check the parameters */
|
||||
;;;323 assert_param(IS_DAC_CHANNEL(DAC_Channel));
|
||||
;;;324 assert_param(IS_DAC_WAVE(DAC_Wave));
|
||||
;;;325 assert_param(IS_FUNCTIONAL_STATE(NewState));
|
||||
;;;326 if (NewState != DISABLE)
|
||||
000002 b13a CBZ r2,|L12.20|
|
||||
;;;327 {
|
||||
;;;328 /* Enable the selected wave generation for the selected DAC channel */
|
||||
;;;329 DAC->CR |= DAC_Wave << DAC_Channel;
|
||||
000004 4b07 LDR r3,|L12.36|
|
||||
000006 681b LDR r3,[r3,#0]
|
||||
000008 fa01f400 LSL r4,r1,r0
|
||||
00000c 4323 ORRS r3,r3,r4
|
||||
00000e 4c05 LDR r4,|L12.36|
|
||||
000010 6023 STR r3,[r4,#0]
|
||||
000012 e006 B |L12.34|
|
||||
|L12.20|
|
||||
;;;330 }
|
||||
;;;331 else
|
||||
;;;332 {
|
||||
;;;333 /* Disable the selected wave generation for the selected DAC channel */
|
||||
;;;334 DAC->CR &= ~(DAC_Wave << DAC_Channel);
|
||||
000014 4b03 LDR r3,|L12.36|
|
||||
000016 681b LDR r3,[r3,#0]
|
||||
000018 fa01f400 LSL r4,r1,r0
|
||||
00001c 43a3 BICS r3,r3,r4
|
||||
00001e 4c01 LDR r4,|L12.36|
|
||||
000020 6023 STR r3,[r4,#0]
|
||||
|L12.34|
|
||||
;;;335 }
|
||||
;;;336 }
|
||||
000022 bd10 POP {r4,pc}
|
||||
;;;337
|
||||
ENDP
|
||||
|
||||
|L12.36|
|
||||
DCD 0x40007400
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_dac.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___15_stm32f10x_dac_c_4da4a0a9____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___15_stm32f10x_dac_c_4da4a0a9____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___15_stm32f10x_dac_c_4da4a0a9____REVSH|
|
||||
#line 128
|
||||
|__asm___15_stm32f10x_dac_c_4da4a0a9____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
744
Project/MDK-ARM/Flash/List/stm32f10x_dma.txt
Normal file
744
Project/MDK-ARM/Flash/List/stm32f10x_dma.txt
Normal file
@@ -0,0 +1,744 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\stm32f10x_dma.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\stm32f10x_dma.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\stm32f10x_dma.crf ..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.DMA_ClearFlag||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DMA_ClearFlag PROC
|
||||
;;;528 */
|
||||
;;;529 void DMA_ClearFlag(uint32_t DMAy_FLAG)
|
||||
000000 f0005180 AND r1,r0,#0x10000000
|
||||
;;;530 {
|
||||
;;;531 /* Check the parameters */
|
||||
;;;532 assert_param(IS_DMA_CLEAR_FLAG(DMAy_FLAG));
|
||||
;;;533
|
||||
;;;534 /* Calculate the used DMAy */
|
||||
;;;535 if ((DMAy_FLAG & FLAG_Mask) != (uint32_t)RESET)
|
||||
000004 b111 CBZ r1,|L1.12|
|
||||
;;;536 {
|
||||
;;;537 /* Clear the selected DMAy flags */
|
||||
;;;538 DMA2->IFCR = DMAy_FLAG;
|
||||
000006 4903 LDR r1,|L1.20|
|
||||
000008 6008 STR r0,[r1,#0]
|
||||
00000a e001 B |L1.16|
|
||||
|L1.12|
|
||||
;;;539 }
|
||||
;;;540 else
|
||||
;;;541 {
|
||||
;;;542 /* Clear the selected DMAy flags */
|
||||
;;;543 DMA1->IFCR = DMAy_FLAG;
|
||||
00000c 4902 LDR r1,|L1.24|
|
||||
00000e 6048 STR r0,[r1,#4]
|
||||
|L1.16|
|
||||
;;;544 }
|
||||
;;;545 }
|
||||
000010 4770 BX lr
|
||||
;;;546
|
||||
ENDP
|
||||
|
||||
000012 0000 DCW 0x0000
|
||||
|L1.20|
|
||||
DCD 0x40020404
|
||||
|L1.24|
|
||||
DCD 0x40020000
|
||||
|
||||
AREA ||i.DMA_ClearITPendingBit||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DMA_ClearITPendingBit PROC
|
||||
;;;689 */
|
||||
;;;690 void DMA_ClearITPendingBit(uint32_t DMAy_IT)
|
||||
000000 f0005180 AND r1,r0,#0x10000000
|
||||
;;;691 {
|
||||
;;;692 /* Check the parameters */
|
||||
;;;693 assert_param(IS_DMA_CLEAR_IT(DMAy_IT));
|
||||
;;;694
|
||||
;;;695 /* Calculate the used DMAy */
|
||||
;;;696 if ((DMAy_IT & FLAG_Mask) != (uint32_t)RESET)
|
||||
000004 b111 CBZ r1,|L2.12|
|
||||
;;;697 {
|
||||
;;;698 /* Clear the selected DMAy interrupt pending bits */
|
||||
;;;699 DMA2->IFCR = DMAy_IT;
|
||||
000006 4903 LDR r1,|L2.20|
|
||||
000008 6008 STR r0,[r1,#0]
|
||||
00000a e001 B |L2.16|
|
||||
|L2.12|
|
||||
;;;700 }
|
||||
;;;701 else
|
||||
;;;702 {
|
||||
;;;703 /* Clear the selected DMAy interrupt pending bits */
|
||||
;;;704 DMA1->IFCR = DMAy_IT;
|
||||
00000c 4902 LDR r1,|L2.24|
|
||||
00000e 6048 STR r0,[r1,#4]
|
||||
|L2.16|
|
||||
;;;705 }
|
||||
;;;706 }
|
||||
000010 4770 BX lr
|
||||
;;;707
|
||||
ENDP
|
||||
|
||||
000012 0000 DCW 0x0000
|
||||
|L2.20|
|
||||
DCD 0x40020404
|
||||
|L2.24|
|
||||
DCD 0x40020000
|
||||
|
||||
AREA ||i.DMA_Cmd||, CODE, READONLY, ALIGN=1
|
||||
|
||||
DMA_Cmd PROC
|
||||
;;;299 */
|
||||
;;;300 void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState)
|
||||
000000 b121 CBZ r1,|L3.12|
|
||||
;;;301 {
|
||||
;;;302 /* Check the parameters */
|
||||
;;;303 assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx));
|
||||
;;;304 assert_param(IS_FUNCTIONAL_STATE(NewState));
|
||||
;;;305
|
||||
;;;306 if (NewState != DISABLE)
|
||||
;;;307 {
|
||||
;;;308 /* Enable the selected DMAy Channelx */
|
||||
;;;309 DMAy_Channelx->CCR |= DMA_CCR1_EN;
|
||||
000002 6802 LDR r2,[r0,#0]
|
||||
000004 f0420201 ORR r2,r2,#1
|
||||
000008 6002 STR r2,[r0,#0]
|
||||
00000a e004 B |L3.22|
|
||||
|L3.12|
|
||||
;;;310 }
|
||||
;;;311 else
|
||||
;;;312 {
|
||||
;;;313 /* Disable the selected DMAy Channelx */
|
||||
;;;314 DMAy_Channelx->CCR &= (uint16_t)(~DMA_CCR1_EN);
|
||||
00000c 6802 LDR r2,[r0,#0]
|
||||
00000e f64f73fe MOV r3,#0xfffe
|
||||
000012 401a ANDS r2,r2,r3
|
||||
000014 6002 STR r2,[r0,#0]
|
||||
|L3.22|
|
||||
;;;315 }
|
||||
;;;316 }
|
||||
000016 4770 BX lr
|
||||
;;;317
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.DMA_DeInit||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DMA_DeInit PROC
|
||||
;;;113 */
|
||||
;;;114 void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx)
|
||||
000000 6801 LDR r1,[r0,#0]
|
||||
;;;115 {
|
||||
;;;116 /* Check the parameters */
|
||||
;;;117 assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx));
|
||||
;;;118
|
||||
;;;119 /* Disable the selected DMAy Channelx */
|
||||
;;;120 DMAy_Channelx->CCR &= (uint16_t)(~DMA_CCR1_EN);
|
||||
000002 f64f72fe MOV r2,#0xfffe
|
||||
000006 4011 ANDS r1,r1,r2
|
||||
000008 6001 STR r1,[r0,#0]
|
||||
;;;121
|
||||
;;;122 /* Reset DMAy Channelx control register */
|
||||
;;;123 DMAy_Channelx->CCR = 0;
|
||||
00000a 2100 MOVS r1,#0
|
||||
00000c 6001 STR r1,[r0,#0]
|
||||
;;;124
|
||||
;;;125 /* Reset DMAy Channelx remaining bytes register */
|
||||
;;;126 DMAy_Channelx->CNDTR = 0;
|
||||
00000e 6041 STR r1,[r0,#4]
|
||||
;;;127
|
||||
;;;128 /* Reset DMAy Channelx peripheral address register */
|
||||
;;;129 DMAy_Channelx->CPAR = 0;
|
||||
000010 6081 STR r1,[r0,#8]
|
||||
;;;130
|
||||
;;;131 /* Reset DMAy Channelx memory address register */
|
||||
;;;132 DMAy_Channelx->CMAR = 0;
|
||||
000012 60c1 STR r1,[r0,#0xc]
|
||||
;;;133
|
||||
;;;134 if (DMAy_Channelx == DMA1_Channel1)
|
||||
000014 494b LDR r1,|L4.324|
|
||||
000016 4288 CMP r0,r1
|
||||
000018 d108 BNE |L4.44|
|
||||
;;;135 {
|
||||
;;;136 /* Reset interrupt pending bits for DMA1 Channel1 */
|
||||
;;;137 DMA1->IFCR |= DMA1_Channel1_IT_Mask;
|
||||
00001a 494a LDR r1,|L4.324|
|
||||
00001c 3908 SUBS r1,r1,#8
|
||||
00001e 6849 LDR r1,[r1,#4]
|
||||
000020 f041010f ORR r1,r1,#0xf
|
||||
000024 4a47 LDR r2,|L4.324|
|
||||
000026 3a08 SUBS r2,r2,#8
|
||||
000028 6051 STR r1,[r2,#4]
|
||||
00002a e08a B |L4.322|
|
||||
|L4.44|
|
||||
;;;138 }
|
||||
;;;139 else if (DMAy_Channelx == DMA1_Channel2)
|
||||
00002c 4945 LDR r1,|L4.324|
|
||||
00002e 3114 ADDS r1,r1,#0x14
|
||||
000030 4288 CMP r0,r1
|
||||
000032 d108 BNE |L4.70|
|
||||
;;;140 {
|
||||
;;;141 /* Reset interrupt pending bits for DMA1 Channel2 */
|
||||
;;;142 DMA1->IFCR |= DMA1_Channel2_IT_Mask;
|
||||
000034 4943 LDR r1,|L4.324|
|
||||
000036 3908 SUBS r1,r1,#8
|
||||
000038 6849 LDR r1,[r1,#4]
|
||||
00003a f04101f0 ORR r1,r1,#0xf0
|
||||
00003e 4a41 LDR r2,|L4.324|
|
||||
000040 3a08 SUBS r2,r2,#8
|
||||
000042 6051 STR r1,[r2,#4]
|
||||
000044 e07d B |L4.322|
|
||||
|L4.70|
|
||||
;;;143 }
|
||||
;;;144 else if (DMAy_Channelx == DMA1_Channel3)
|
||||
000046 493f LDR r1,|L4.324|
|
||||
000048 3128 ADDS r1,r1,#0x28
|
||||
00004a 4288 CMP r0,r1
|
||||
00004c d108 BNE |L4.96|
|
||||
;;;145 {
|
||||
;;;146 /* Reset interrupt pending bits for DMA1 Channel3 */
|
||||
;;;147 DMA1->IFCR |= DMA1_Channel3_IT_Mask;
|
||||
00004e 493d LDR r1,|L4.324|
|
||||
000050 3908 SUBS r1,r1,#8
|
||||
000052 6849 LDR r1,[r1,#4]
|
||||
000054 f4416170 ORR r1,r1,#0xf00
|
||||
000058 4a3a LDR r2,|L4.324|
|
||||
00005a 3a08 SUBS r2,r2,#8
|
||||
00005c 6051 STR r1,[r2,#4]
|
||||
00005e e070 B |L4.322|
|
||||
|L4.96|
|
||||
;;;148 }
|
||||
;;;149 else if (DMAy_Channelx == DMA1_Channel4)
|
||||
000060 4938 LDR r1,|L4.324|
|
||||
000062 313c ADDS r1,r1,#0x3c
|
||||
000064 4288 CMP r0,r1
|
||||
000066 d108 BNE |L4.122|
|
||||
;;;150 {
|
||||
;;;151 /* Reset interrupt pending bits for DMA1 Channel4 */
|
||||
;;;152 DMA1->IFCR |= DMA1_Channel4_IT_Mask;
|
||||
000068 4936 LDR r1,|L4.324|
|
||||
00006a 3908 SUBS r1,r1,#8
|
||||
00006c 6849 LDR r1,[r1,#4]
|
||||
00006e f4414170 ORR r1,r1,#0xf000
|
||||
000072 4a34 LDR r2,|L4.324|
|
||||
000074 3a08 SUBS r2,r2,#8
|
||||
000076 6051 STR r1,[r2,#4]
|
||||
000078 e063 B |L4.322|
|
||||
|L4.122|
|
||||
;;;153 }
|
||||
;;;154 else if (DMAy_Channelx == DMA1_Channel5)
|
||||
00007a 4932 LDR r1,|L4.324|
|
||||
00007c 3150 ADDS r1,r1,#0x50
|
||||
00007e 4288 CMP r0,r1
|
||||
000080 d108 BNE |L4.148|
|
||||
;;;155 {
|
||||
;;;156 /* Reset interrupt pending bits for DMA1 Channel5 */
|
||||
;;;157 DMA1->IFCR |= DMA1_Channel5_IT_Mask;
|
||||
000082 4930 LDR r1,|L4.324|
|
||||
000084 3908 SUBS r1,r1,#8
|
||||
000086 6849 LDR r1,[r1,#4]
|
||||
000088 f4412170 ORR r1,r1,#0xf0000
|
||||
00008c 4a2d LDR r2,|L4.324|
|
||||
00008e 3a08 SUBS r2,r2,#8
|
||||
000090 6051 STR r1,[r2,#4]
|
||||
000092 e056 B |L4.322|
|
||||
|L4.148|
|
||||
;;;158 }
|
||||
;;;159 else if (DMAy_Channelx == DMA1_Channel6)
|
||||
000094 492b LDR r1,|L4.324|
|
||||
000096 3164 ADDS r1,r1,#0x64
|
||||
000098 4288 CMP r0,r1
|
||||
00009a d108 BNE |L4.174|
|
||||
;;;160 {
|
||||
;;;161 /* Reset interrupt pending bits for DMA1 Channel6 */
|
||||
;;;162 DMA1->IFCR |= DMA1_Channel6_IT_Mask;
|
||||
00009c 4929 LDR r1,|L4.324|
|
||||
00009e 3908 SUBS r1,r1,#8
|
||||
0000a0 6849 LDR r1,[r1,#4]
|
||||
0000a2 f4410170 ORR r1,r1,#0xf00000
|
||||
0000a6 4a27 LDR r2,|L4.324|
|
||||
0000a8 3a08 SUBS r2,r2,#8
|
||||
0000aa 6051 STR r1,[r2,#4]
|
||||
0000ac e049 B |L4.322|
|
||||
|L4.174|
|
||||
;;;163 }
|
||||
;;;164 else if (DMAy_Channelx == DMA1_Channel7)
|
||||
0000ae 4925 LDR r1,|L4.324|
|
||||
0000b0 3178 ADDS r1,r1,#0x78
|
||||
0000b2 4288 CMP r0,r1
|
||||
0000b4 d108 BNE |L4.200|
|
||||
;;;165 {
|
||||
;;;166 /* Reset interrupt pending bits for DMA1 Channel7 */
|
||||
;;;167 DMA1->IFCR |= DMA1_Channel7_IT_Mask;
|
||||
0000b6 4923 LDR r1,|L4.324|
|
||||
0000b8 3908 SUBS r1,r1,#8
|
||||
0000ba 6849 LDR r1,[r1,#4]
|
||||
0000bc f0416170 ORR r1,r1,#0xf000000
|
||||
0000c0 4a20 LDR r2,|L4.324|
|
||||
0000c2 3a08 SUBS r2,r2,#8
|
||||
0000c4 6051 STR r1,[r2,#4]
|
||||
0000c6 e03c B |L4.322|
|
||||
|L4.200|
|
||||
;;;168 }
|
||||
;;;169 else if (DMAy_Channelx == DMA2_Channel1)
|
||||
0000c8 491f LDR r1,|L4.328|
|
||||
0000ca 4288 CMP r0,r1
|
||||
0000cc d106 BNE |L4.220|
|
||||
;;;170 {
|
||||
;;;171 /* Reset interrupt pending bits for DMA2 Channel1 */
|
||||
;;;172 DMA2->IFCR |= DMA2_Channel1_IT_Mask;
|
||||
0000ce 1f01 SUBS r1,r0,#4
|
||||
0000d0 6809 LDR r1,[r1,#0]
|
||||
0000d2 f041010f ORR r1,r1,#0xf
|
||||
0000d6 1f02 SUBS r2,r0,#4
|
||||
0000d8 6011 STR r1,[r2,#0]
|
||||
0000da e032 B |L4.322|
|
||||
|L4.220|
|
||||
;;;173 }
|
||||
;;;174 else if (DMAy_Channelx == DMA2_Channel2)
|
||||
0000dc 491a LDR r1,|L4.328|
|
||||
0000de 3114 ADDS r1,r1,#0x14
|
||||
0000e0 4288 CMP r0,r1
|
||||
0000e2 d108 BNE |L4.246|
|
||||
;;;175 {
|
||||
;;;176 /* Reset interrupt pending bits for DMA2 Channel2 */
|
||||
;;;177 DMA2->IFCR |= DMA2_Channel2_IT_Mask;
|
||||
0000e4 4918 LDR r1,|L4.328|
|
||||
0000e6 1f09 SUBS r1,r1,#4
|
||||
0000e8 6809 LDR r1,[r1,#0]
|
||||
0000ea f04101f0 ORR r1,r1,#0xf0
|
||||
0000ee 4a16 LDR r2,|L4.328|
|
||||
0000f0 1f12 SUBS r2,r2,#4
|
||||
0000f2 6011 STR r1,[r2,#0]
|
||||
0000f4 e025 B |L4.322|
|
||||
|L4.246|
|
||||
;;;178 }
|
||||
;;;179 else if (DMAy_Channelx == DMA2_Channel3)
|
||||
0000f6 4914 LDR r1,|L4.328|
|
||||
0000f8 3128 ADDS r1,r1,#0x28
|
||||
0000fa 4288 CMP r0,r1
|
||||
0000fc d108 BNE |L4.272|
|
||||
;;;180 {
|
||||
;;;181 /* Reset interrupt pending bits for DMA2 Channel3 */
|
||||
;;;182 DMA2->IFCR |= DMA2_Channel3_IT_Mask;
|
||||
0000fe 4912 LDR r1,|L4.328|
|
||||
000100 1f09 SUBS r1,r1,#4
|
||||
000102 6809 LDR r1,[r1,#0]
|
||||
000104 f4416170 ORR r1,r1,#0xf00
|
||||
000108 4a0f LDR r2,|L4.328|
|
||||
00010a 1f12 SUBS r2,r2,#4
|
||||
00010c 6011 STR r1,[r2,#0]
|
||||
00010e e018 B |L4.322|
|
||||
|L4.272|
|
||||
;;;183 }
|
||||
;;;184 else if (DMAy_Channelx == DMA2_Channel4)
|
||||
000110 490d LDR r1,|L4.328|
|
||||
000112 313c ADDS r1,r1,#0x3c
|
||||
000114 4288 CMP r0,r1
|
||||
000116 d108 BNE |L4.298|
|
||||
;;;185 {
|
||||
;;;186 /* Reset interrupt pending bits for DMA2 Channel4 */
|
||||
;;;187 DMA2->IFCR |= DMA2_Channel4_IT_Mask;
|
||||
000118 490b LDR r1,|L4.328|
|
||||
00011a 1f09 SUBS r1,r1,#4
|
||||
00011c 6809 LDR r1,[r1,#0]
|
||||
00011e f4414170 ORR r1,r1,#0xf000
|
||||
000122 4a09 LDR r2,|L4.328|
|
||||
000124 1f12 SUBS r2,r2,#4
|
||||
000126 6011 STR r1,[r2,#0]
|
||||
000128 e00b B |L4.322|
|
||||
|L4.298|
|
||||
;;;188 }
|
||||
;;;189 else
|
||||
;;;190 {
|
||||
;;;191 if (DMAy_Channelx == DMA2_Channel5)
|
||||
00012a 4907 LDR r1,|L4.328|
|
||||
00012c 3150 ADDS r1,r1,#0x50
|
||||
00012e 4288 CMP r0,r1
|
||||
000130 d107 BNE |L4.322|
|
||||
;;;192 {
|
||||
;;;193 /* Reset interrupt pending bits for DMA2 Channel5 */
|
||||
;;;194 DMA2->IFCR |= DMA2_Channel5_IT_Mask;
|
||||
000132 4905 LDR r1,|L4.328|
|
||||
000134 1f09 SUBS r1,r1,#4
|
||||
000136 6809 LDR r1,[r1,#0]
|
||||
000138 f4412170 ORR r1,r1,#0xf0000
|
||||
00013c 4a02 LDR r2,|L4.328|
|
||||
00013e 1f12 SUBS r2,r2,#4
|
||||
000140 6011 STR r1,[r2,#0]
|
||||
|L4.322|
|
||||
;;;195 }
|
||||
;;;196 }
|
||||
;;;197 }
|
||||
000142 4770 BX lr
|
||||
;;;198
|
||||
ENDP
|
||||
|
||||
|L4.324|
|
||||
DCD 0x40020008
|
||||
|L4.328|
|
||||
DCD 0x40020408
|
||||
|
||||
AREA ||i.DMA_GetCurrDataCounter||, CODE, READONLY, ALIGN=1
|
||||
|
||||
DMA_GetCurrDataCounter PROC
|
||||
;;;376 */
|
||||
;;;377 uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx)
|
||||
000000 4601 MOV r1,r0
|
||||
;;;378 {
|
||||
;;;379 /* Check the parameters */
|
||||
;;;380 assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx));
|
||||
;;;381 /* Return the number of remaining data units for DMAy Channelx */
|
||||
;;;382 return ((uint16_t)(DMAy_Channelx->CNDTR));
|
||||
000002 6848 LDR r0,[r1,#4]
|
||||
000004 b280 UXTH r0,r0
|
||||
;;;383 }
|
||||
000006 4770 BX lr
|
||||
;;;384
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.DMA_GetFlagStatus||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DMA_GetFlagStatus PROC
|
||||
;;;438 */
|
||||
;;;439 FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG)
|
||||
000000 4601 MOV r1,r0
|
||||
;;;440 {
|
||||
;;;441 FlagStatus bitstatus = RESET;
|
||||
000002 2000 MOVS r0,#0
|
||||
;;;442 uint32_t tmpreg = 0;
|
||||
000004 2200 MOVS r2,#0
|
||||
;;;443
|
||||
;;;444 /* Check the parameters */
|
||||
;;;445 assert_param(IS_DMA_GET_FLAG(DMAy_FLAG));
|
||||
;;;446
|
||||
;;;447 /* Calculate the used DMAy */
|
||||
;;;448 if ((DMAy_FLAG & FLAG_Mask) != (uint32_t)RESET)
|
||||
000006 f0015380 AND r3,r1,#0x10000000
|
||||
00000a b113 CBZ r3,|L6.18|
|
||||
;;;449 {
|
||||
;;;450 /* Get DMA2 ISR register value */
|
||||
;;;451 tmpreg = DMA2->ISR ;
|
||||
00000c 4b05 LDR r3,|L6.36|
|
||||
00000e 681a LDR r2,[r3,#0]
|
||||
000010 e001 B |L6.22|
|
||||
|L6.18|
|
||||
;;;452 }
|
||||
;;;453 else
|
||||
;;;454 {
|
||||
;;;455 /* Get DMA1 ISR register value */
|
||||
;;;456 tmpreg = DMA1->ISR ;
|
||||
000012 4b05 LDR r3,|L6.40|
|
||||
000014 681a LDR r2,[r3,#0]
|
||||
|L6.22|
|
||||
;;;457 }
|
||||
;;;458
|
||||
;;;459 /* Check the status of the specified DMAy flag */
|
||||
;;;460 if ((tmpreg & DMAy_FLAG) != (uint32_t)RESET)
|
||||
000016 ea020301 AND r3,r2,r1
|
||||
00001a b10b CBZ r3,|L6.32|
|
||||
;;;461 {
|
||||
;;;462 /* DMAy_FLAG is set */
|
||||
;;;463 bitstatus = SET;
|
||||
00001c 2001 MOVS r0,#1
|
||||
00001e e000 B |L6.34|
|
||||
|L6.32|
|
||||
;;;464 }
|
||||
;;;465 else
|
||||
;;;466 {
|
||||
;;;467 /* DMAy_FLAG is reset */
|
||||
;;;468 bitstatus = RESET;
|
||||
000020 2000 MOVS r0,#0
|
||||
|L6.34|
|
||||
;;;469 }
|
||||
;;;470
|
||||
;;;471 /* Return the DMAy_FLAG status */
|
||||
;;;472 return bitstatus;
|
||||
;;;473 }
|
||||
000022 4770 BX lr
|
||||
;;;474
|
||||
ENDP
|
||||
|
||||
|L6.36|
|
||||
DCD 0x40020400
|
||||
|L6.40|
|
||||
DCD 0x40020000
|
||||
|
||||
AREA ||i.DMA_GetITStatus||, CODE, READONLY, ALIGN=2
|
||||
|
||||
DMA_GetITStatus PROC
|
||||
;;;600 */
|
||||
;;;601 ITStatus DMA_GetITStatus(uint32_t DMAy_IT)
|
||||
000000 4601 MOV r1,r0
|
||||
;;;602 {
|
||||
;;;603 ITStatus bitstatus = RESET;
|
||||
000002 2000 MOVS r0,#0
|
||||
;;;604 uint32_t tmpreg = 0;
|
||||
000004 2200 MOVS r2,#0
|
||||
;;;605
|
||||
;;;606 /* Check the parameters */
|
||||
;;;607 assert_param(IS_DMA_GET_IT(DMAy_IT));
|
||||
;;;608
|
||||
;;;609 /* Calculate the used DMA */
|
||||
;;;610 if ((DMAy_IT & FLAG_Mask) != (uint32_t)RESET)
|
||||
000006 f0015380 AND r3,r1,#0x10000000
|
||||
00000a b113 CBZ r3,|L7.18|
|
||||
;;;611 {
|
||||
;;;612 /* Get DMA2 ISR register value */
|
||||
;;;613 tmpreg = DMA2->ISR;
|
||||
00000c 4b05 LDR r3,|L7.36|
|
||||
00000e 681a LDR r2,[r3,#0]
|
||||
000010 e001 B |L7.22|
|
||||
|L7.18|
|
||||
;;;614 }
|
||||
;;;615 else
|
||||
;;;616 {
|
||||
;;;617 /* Get DMA1 ISR register value */
|
||||
;;;618 tmpreg = DMA1->ISR;
|
||||
000012 4b05 LDR r3,|L7.40|
|
||||
000014 681a LDR r2,[r3,#0]
|
||||
|L7.22|
|
||||
;;;619 }
|
||||
;;;620
|
||||
;;;621 /* Check the status of the specified DMAy interrupt */
|
||||
;;;622 if ((tmpreg & DMAy_IT) != (uint32_t)RESET)
|
||||
000016 ea020301 AND r3,r2,r1
|
||||
00001a b10b CBZ r3,|L7.32|
|
||||
;;;623 {
|
||||
;;;624 /* DMAy_IT is set */
|
||||
;;;625 bitstatus = SET;
|
||||
00001c 2001 MOVS r0,#1
|
||||
00001e e000 B |L7.34|
|
||||
|L7.32|
|
||||
;;;626 }
|
||||
;;;627 else
|
||||
;;;628 {
|
||||
;;;629 /* DMAy_IT is reset */
|
||||
;;;630 bitstatus = RESET;
|
||||
000020 2000 MOVS r0,#0
|
||||
|L7.34|
|
||||
;;;631 }
|
||||
;;;632 /* Return the DMA_IT status */
|
||||
;;;633 return bitstatus;
|
||||
;;;634 }
|
||||
000022 4770 BX lr
|
||||
;;;635
|
||||
ENDP
|
||||
|
||||
|L7.36|
|
||||
DCD 0x40020400
|
||||
|L7.40|
|
||||
DCD 0x40020000
|
||||
|
||||
AREA ||i.DMA_ITConfig||, CODE, READONLY, ALIGN=1
|
||||
|
||||
DMA_ITConfig PROC
|
||||
;;;331 */
|
||||
;;;332 void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState)
|
||||
000000 b11a CBZ r2,|L8.10|
|
||||
;;;333 {
|
||||
;;;334 /* Check the parameters */
|
||||
;;;335 assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx));
|
||||
;;;336 assert_param(IS_DMA_CONFIG_IT(DMA_IT));
|
||||
;;;337 assert_param(IS_FUNCTIONAL_STATE(NewState));
|
||||
;;;338 if (NewState != DISABLE)
|
||||
;;;339 {
|
||||
;;;340 /* Enable the selected DMA interrupts */
|
||||
;;;341 DMAy_Channelx->CCR |= DMA_IT;
|
||||
000002 6803 LDR r3,[r0,#0]
|
||||
000004 430b ORRS r3,r3,r1
|
||||
000006 6003 STR r3,[r0,#0]
|
||||
000008 e002 B |L8.16|
|
||||
|L8.10|
|
||||
;;;342 }
|
||||
;;;343 else
|
||||
;;;344 {
|
||||
;;;345 /* Disable the selected DMA interrupts */
|
||||
;;;346 DMAy_Channelx->CCR &= ~DMA_IT;
|
||||
00000a 6803 LDR r3,[r0,#0]
|
||||
00000c 438b BICS r3,r3,r1
|
||||
00000e 6003 STR r3,[r0,#0]
|
||||
|L8.16|
|
||||
;;;347 }
|
||||
;;;348 }
|
||||
000010 4770 BX lr
|
||||
;;;349
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.DMA_Init||, CODE, READONLY, ALIGN=1
|
||||
|
||||
DMA_Init PROC
|
||||
;;;207 */
|
||||
;;;208 void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;209 {
|
||||
;;;210 uint32_t tmpreg = 0;
|
||||
000002 2200 MOVS r2,#0
|
||||
;;;211
|
||||
;;;212 /* Check the parameters */
|
||||
;;;213 assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx));
|
||||
;;;214 assert_param(IS_DMA_DIR(DMA_InitStruct->DMA_DIR));
|
||||
;;;215 assert_param(IS_DMA_BUFFER_SIZE(DMA_InitStruct->DMA_BufferSize));
|
||||
;;;216 assert_param(IS_DMA_PERIPHERAL_INC_STATE(DMA_InitStruct->DMA_PeripheralInc));
|
||||
;;;217 assert_param(IS_DMA_MEMORY_INC_STATE(DMA_InitStruct->DMA_MemoryInc));
|
||||
;;;218 assert_param(IS_DMA_PERIPHERAL_DATA_SIZE(DMA_InitStruct->DMA_PeripheralDataSize));
|
||||
;;;219 assert_param(IS_DMA_MEMORY_DATA_SIZE(DMA_InitStruct->DMA_MemoryDataSize));
|
||||
;;;220 assert_param(IS_DMA_MODE(DMA_InitStruct->DMA_Mode));
|
||||
;;;221 assert_param(IS_DMA_PRIORITY(DMA_InitStruct->DMA_Priority));
|
||||
;;;222 assert_param(IS_DMA_M2M_STATE(DMA_InitStruct->DMA_M2M));
|
||||
;;;223
|
||||
;;;224 /*--------------------------- DMAy Channelx CCR Configuration -----------------*/
|
||||
;;;225 /* Get the DMAy_Channelx CCR value */
|
||||
;;;226 tmpreg = DMAy_Channelx->CCR;
|
||||
000004 6802 LDR r2,[r0,#0]
|
||||
;;;227 /* Clear MEM2MEM, PL, MSIZE, PSIZE, MINC, PINC, CIRC and DIR bits */
|
||||
;;;228 tmpreg &= CCR_CLEAR_Mask;
|
||||
000006 f64773f0 MOV r3,#0x7ff0
|
||||
00000a 439a BICS r2,r2,r3
|
||||
;;;229 /* Configure DMAy Channelx: data transfer, data size, priority level and mode */
|
||||
;;;230 /* Set DIR bit according to DMA_DIR value */
|
||||
;;;231 /* Set CIRC bit according to DMA_Mode value */
|
||||
;;;232 /* Set PINC bit according to DMA_PeripheralInc value */
|
||||
;;;233 /* Set MINC bit according to DMA_MemoryInc value */
|
||||
;;;234 /* Set PSIZE bits according to DMA_PeripheralDataSize value */
|
||||
;;;235 /* Set MSIZE bits according to DMA_MemoryDataSize value */
|
||||
;;;236 /* Set PL bits according to DMA_Priority value */
|
||||
;;;237 /* Set the MEM2MEM bit according to DMA_M2M value */
|
||||
;;;238 tmpreg |= DMA_InitStruct->DMA_DIR | DMA_InitStruct->DMA_Mode |
|
||||
00000c 6a0c LDR r4,[r1,#0x20]
|
||||
00000e 688b LDR r3,[r1,#8]
|
||||
000010 4323 ORRS r3,r3,r4
|
||||
000012 690c LDR r4,[r1,#0x10]
|
||||
000014 4323 ORRS r3,r3,r4
|
||||
000016 694c LDR r4,[r1,#0x14]
|
||||
000018 4323 ORRS r3,r3,r4
|
||||
00001a 698c LDR r4,[r1,#0x18]
|
||||
00001c 4323 ORRS r3,r3,r4
|
||||
00001e 69cc LDR r4,[r1,#0x1c]
|
||||
000020 4323 ORRS r3,r3,r4
|
||||
000022 6a4c LDR r4,[r1,#0x24]
|
||||
000024 4323 ORRS r3,r3,r4
|
||||
000026 6a8c LDR r4,[r1,#0x28]
|
||||
000028 4323 ORRS r3,r3,r4
|
||||
00002a 431a ORRS r2,r2,r3
|
||||
;;;239 DMA_InitStruct->DMA_PeripheralInc | DMA_InitStruct->DMA_MemoryInc |
|
||||
;;;240 DMA_InitStruct->DMA_PeripheralDataSize | DMA_InitStruct->DMA_MemoryDataSize |
|
||||
;;;241 DMA_InitStruct->DMA_Priority | DMA_InitStruct->DMA_M2M;
|
||||
;;;242
|
||||
;;;243 /* Write to DMAy Channelx CCR */
|
||||
;;;244 DMAy_Channelx->CCR = tmpreg;
|
||||
00002c 6002 STR r2,[r0,#0]
|
||||
;;;245
|
||||
;;;246 /*--------------------------- DMAy Channelx CNDTR Configuration ---------------*/
|
||||
;;;247 /* Write to DMAy Channelx CNDTR */
|
||||
;;;248 DMAy_Channelx->CNDTR = DMA_InitStruct->DMA_BufferSize;
|
||||
00002e 68cb LDR r3,[r1,#0xc]
|
||||
000030 6043 STR r3,[r0,#4]
|
||||
;;;249
|
||||
;;;250 /*--------------------------- DMAy Channelx CPAR Configuration ----------------*/
|
||||
;;;251 /* Write to DMAy Channelx CPAR */
|
||||
;;;252 DMAy_Channelx->CPAR = DMA_InitStruct->DMA_PeripheralBaseAddr;
|
||||
000032 680b LDR r3,[r1,#0]
|
||||
000034 6083 STR r3,[r0,#8]
|
||||
;;;253
|
||||
;;;254 /*--------------------------- DMAy Channelx CMAR Configuration ----------------*/
|
||||
;;;255 /* Write to DMAy Channelx CMAR */
|
||||
;;;256 DMAy_Channelx->CMAR = DMA_InitStruct->DMA_MemoryBaseAddr;
|
||||
000036 684b LDR r3,[r1,#4]
|
||||
000038 60c3 STR r3,[r0,#0xc]
|
||||
;;;257 }
|
||||
00003a bd10 POP {r4,pc}
|
||||
;;;258
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.DMA_SetCurrDataCounter||, CODE, READONLY, ALIGN=1
|
||||
|
||||
DMA_SetCurrDataCounter PROC
|
||||
;;;358 */
|
||||
;;;359 void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber)
|
||||
000000 6041 STR r1,[r0,#4]
|
||||
;;;360 {
|
||||
;;;361 /* Check the parameters */
|
||||
;;;362 assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx));
|
||||
;;;363
|
||||
;;;364 /*--------------------------- DMAy Channelx CNDTR Configuration ---------------*/
|
||||
;;;365 /* Write to DMAy Channelx CNDTR */
|
||||
;;;366 DMAy_Channelx->CNDTR = DataNumber;
|
||||
;;;367 }
|
||||
000002 4770 BX lr
|
||||
;;;368
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.DMA_StructInit||, CODE, READONLY, ALIGN=1
|
||||
|
||||
DMA_StructInit PROC
|
||||
;;;264 */
|
||||
;;;265 void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct)
|
||||
000000 2100 MOVS r1,#0
|
||||
;;;266 {
|
||||
;;;267 /*-------------- Reset DMA init structure parameters values ------------------*/
|
||||
;;;268 /* Initialize the DMA_PeripheralBaseAddr member */
|
||||
;;;269 DMA_InitStruct->DMA_PeripheralBaseAddr = 0;
|
||||
000002 6001 STR r1,[r0,#0]
|
||||
;;;270 /* Initialize the DMA_MemoryBaseAddr member */
|
||||
;;;271 DMA_InitStruct->DMA_MemoryBaseAddr = 0;
|
||||
000004 6041 STR r1,[r0,#4]
|
||||
;;;272 /* Initialize the DMA_DIR member */
|
||||
;;;273 DMA_InitStruct->DMA_DIR = DMA_DIR_PeripheralSRC;
|
||||
000006 6081 STR r1,[r0,#8]
|
||||
;;;274 /* Initialize the DMA_BufferSize member */
|
||||
;;;275 DMA_InitStruct->DMA_BufferSize = 0;
|
||||
000008 60c1 STR r1,[r0,#0xc]
|
||||
;;;276 /* Initialize the DMA_PeripheralInc member */
|
||||
;;;277 DMA_InitStruct->DMA_PeripheralInc = DMA_PeripheralInc_Disable;
|
||||
00000a 6101 STR r1,[r0,#0x10]
|
||||
;;;278 /* Initialize the DMA_MemoryInc member */
|
||||
;;;279 DMA_InitStruct->DMA_MemoryInc = DMA_MemoryInc_Disable;
|
||||
00000c 6141 STR r1,[r0,#0x14]
|
||||
;;;280 /* Initialize the DMA_PeripheralDataSize member */
|
||||
;;;281 DMA_InitStruct->DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
|
||||
00000e 6181 STR r1,[r0,#0x18]
|
||||
;;;282 /* Initialize the DMA_MemoryDataSize member */
|
||||
;;;283 DMA_InitStruct->DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
|
||||
000010 61c1 STR r1,[r0,#0x1c]
|
||||
;;;284 /* Initialize the DMA_Mode member */
|
||||
;;;285 DMA_InitStruct->DMA_Mode = DMA_Mode_Normal;
|
||||
000012 6201 STR r1,[r0,#0x20]
|
||||
;;;286 /* Initialize the DMA_Priority member */
|
||||
;;;287 DMA_InitStruct->DMA_Priority = DMA_Priority_Low;
|
||||
000014 6241 STR r1,[r0,#0x24]
|
||||
;;;288 /* Initialize the DMA_M2M member */
|
||||
;;;289 DMA_InitStruct->DMA_M2M = DMA_M2M_Disable;
|
||||
000016 6281 STR r1,[r0,#0x28]
|
||||
;;;290 }
|
||||
000018 4770 BX lr
|
||||
;;;291
|
||||
ENDP
|
||||
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_dma.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___15_stm32f10x_dma_c_e9b554c0____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___15_stm32f10x_dma_c_e9b554c0____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___15_stm32f10x_dma_c_e9b554c0____REVSH|
|
||||
#line 128
|
||||
|__asm___15_stm32f10x_dma_c_e9b554c0____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
887
Project/MDK-ARM/Flash/List/stm32f10x_gpio.txt
Normal file
887
Project/MDK-ARM/Flash/List/stm32f10x_gpio.txt
Normal file
@@ -0,0 +1,887 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\stm32f10x_gpio.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\stm32f10x_gpio.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\stm32f10x_gpio.crf ..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.GPIO_AFIODeInit||, CODE, READONLY, ALIGN=1
|
||||
|
||||
GPIO_AFIODeInit PROC
|
||||
;;;162 */
|
||||
;;;163 void GPIO_AFIODeInit(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;164 {
|
||||
;;;165 RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, ENABLE);
|
||||
000002 2101 MOVS r1,#1
|
||||
000004 4608 MOV r0,r1
|
||||
000006 f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
;;;166 RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, DISABLE);
|
||||
00000a 2100 MOVS r1,#0
|
||||
00000c 2001 MOVS r0,#1
|
||||
00000e f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
;;;167 }
|
||||
000012 bd10 POP {r4,pc}
|
||||
;;;168
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.GPIO_DeInit||, CODE, READONLY, ALIGN=2
|
||||
|
||||
GPIO_DeInit PROC
|
||||
;;;111 */
|
||||
;;;112 void GPIO_DeInit(GPIO_TypeDef *GPIOx)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;113 {
|
||||
000002 4604 MOV r4,r0
|
||||
;;;114 /* Check the parameters */
|
||||
;;;115 assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
|
||||
;;;116
|
||||
;;;117 if (GPIOx == GPIOA)
|
||||
000004 4829 LDR r0,|L2.172|
|
||||
000006 4284 CMP r4,r0
|
||||
000008 d108 BNE |L2.28|
|
||||
;;;118 {
|
||||
;;;119 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, ENABLE);
|
||||
00000a 2101 MOVS r1,#1
|
||||
00000c 2004 MOVS r0,#4
|
||||
00000e f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
;;;120 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, DISABLE);
|
||||
000012 2100 MOVS r1,#0
|
||||
000014 2004 MOVS r0,#4
|
||||
000016 f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
00001a e046 B |L2.170|
|
||||
|L2.28|
|
||||
;;;121 }
|
||||
;;;122 else if (GPIOx == GPIOB)
|
||||
00001c 4824 LDR r0,|L2.176|
|
||||
00001e 4284 CMP r4,r0
|
||||
000020 d108 BNE |L2.52|
|
||||
;;;123 {
|
||||
;;;124 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, ENABLE);
|
||||
000022 2101 MOVS r1,#1
|
||||
000024 2008 MOVS r0,#8
|
||||
000026 f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
;;;125 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, DISABLE);
|
||||
00002a 2100 MOVS r1,#0
|
||||
00002c 2008 MOVS r0,#8
|
||||
00002e f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
000032 e03a B |L2.170|
|
||||
|L2.52|
|
||||
;;;126 }
|
||||
;;;127 else if (GPIOx == GPIOC)
|
||||
000034 481f LDR r0,|L2.180|
|
||||
000036 4284 CMP r4,r0
|
||||
000038 d108 BNE |L2.76|
|
||||
;;;128 {
|
||||
;;;129 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, ENABLE);
|
||||
00003a 2101 MOVS r1,#1
|
||||
00003c 2010 MOVS r0,#0x10
|
||||
00003e f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
;;;130 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, DISABLE);
|
||||
000042 2100 MOVS r1,#0
|
||||
000044 2010 MOVS r0,#0x10
|
||||
000046 f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
00004a e02e B |L2.170|
|
||||
|L2.76|
|
||||
;;;131 }
|
||||
;;;132 else if (GPIOx == GPIOD)
|
||||
00004c 481a LDR r0,|L2.184|
|
||||
00004e 4284 CMP r4,r0
|
||||
000050 d108 BNE |L2.100|
|
||||
;;;133 {
|
||||
;;;134 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, ENABLE);
|
||||
000052 2101 MOVS r1,#1
|
||||
000054 2020 MOVS r0,#0x20
|
||||
000056 f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
;;;135 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, DISABLE);
|
||||
00005a 2100 MOVS r1,#0
|
||||
00005c 2020 MOVS r0,#0x20
|
||||
00005e f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
000062 e022 B |L2.170|
|
||||
|L2.100|
|
||||
;;;136 }
|
||||
;;;137 else if (GPIOx == GPIOE)
|
||||
000064 4815 LDR r0,|L2.188|
|
||||
000066 4284 CMP r4,r0
|
||||
000068 d108 BNE |L2.124|
|
||||
;;;138 {
|
||||
;;;139 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOE, ENABLE);
|
||||
00006a 2101 MOVS r1,#1
|
||||
00006c 2040 MOVS r0,#0x40
|
||||
00006e f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
;;;140 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOE, DISABLE);
|
||||
000072 2100 MOVS r1,#0
|
||||
000074 2040 MOVS r0,#0x40
|
||||
000076 f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
00007a e016 B |L2.170|
|
||||
|L2.124|
|
||||
;;;141 }
|
||||
;;;142 else if (GPIOx == GPIOF)
|
||||
00007c 4810 LDR r0,|L2.192|
|
||||
00007e 4284 CMP r4,r0
|
||||
000080 d108 BNE |L2.148|
|
||||
;;;143 {
|
||||
;;;144 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOF, ENABLE);
|
||||
000082 2101 MOVS r1,#1
|
||||
000084 2080 MOVS r0,#0x80
|
||||
000086 f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
;;;145 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOF, DISABLE);
|
||||
00008a 2100 MOVS r1,#0
|
||||
00008c 2080 MOVS r0,#0x80
|
||||
00008e f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
000092 e00a B |L2.170|
|
||||
|L2.148|
|
||||
;;;146 }
|
||||
;;;147 else
|
||||
;;;148 {
|
||||
;;;149 if (GPIOx == GPIOG)
|
||||
000094 480b LDR r0,|L2.196|
|
||||
000096 4284 CMP r4,r0
|
||||
000098 d107 BNE |L2.170|
|
||||
;;;150 {
|
||||
;;;151 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOG, ENABLE);
|
||||
00009a 2101 MOVS r1,#1
|
||||
00009c 1580 ASRS r0,r0,#22
|
||||
00009e f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
;;;152 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOG, DISABLE);
|
||||
0000a2 2100 MOVS r1,#0
|
||||
0000a4 15a0 ASRS r0,r4,#22
|
||||
0000a6 f7fffffe BL RCC_APB2PeriphResetCmd
|
||||
|L2.170|
|
||||
;;;153 }
|
||||
;;;154 }
|
||||
;;;155 }
|
||||
0000aa bd10 POP {r4,pc}
|
||||
;;;156
|
||||
ENDP
|
||||
|
||||
|L2.172|
|
||||
DCD 0x40010800
|
||||
|L2.176|
|
||||
DCD 0x40010c00
|
||||
|L2.180|
|
||||
DCD 0x40011000
|
||||
|L2.184|
|
||||
DCD 0x40011400
|
||||
|L2.188|
|
||||
DCD 0x40011800
|
||||
|L2.192|
|
||||
DCD 0x40011c00
|
||||
|L2.196|
|
||||
DCD 0x40012000
|
||||
|
||||
AREA ||i.GPIO_ETH_MediaInterfaceConfig||, CODE, READONLY, ALIGN=2
|
||||
|
||||
GPIO_ETH_MediaInterfaceConfig PROC
|
||||
;;;633 */
|
||||
;;;634 void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface)
|
||||
000000 4901 LDR r1,|L3.8|
|
||||
;;;635 {
|
||||
;;;636 assert_param(IS_GPIO_ETH_MEDIA_INTERFACE(GPIO_ETH_MediaInterface));
|
||||
;;;637
|
||||
;;;638 /* Configure MII_RMII selection bit */
|
||||
;;;639 *(__IO uint32_t *)MAPR_MII_RMII_SEL_BB = GPIO_ETH_MediaInterface;
|
||||
000002 6008 STR r0,[r1,#0]
|
||||
;;;640 }
|
||||
000004 4770 BX lr
|
||||
;;;641
|
||||
ENDP
|
||||
|
||||
000006 0000 DCW 0x0000
|
||||
|L3.8|
|
||||
DCD 0x422000dc
|
||||
|
||||
AREA ||i.GPIO_EXTILineConfig||, CODE, READONLY, ALIGN=2
|
||||
|
||||
GPIO_EXTILineConfig PROC
|
||||
;;;612 */
|
||||
;;;613 void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
|
||||
000000 b530 PUSH {r4,r5,lr}
|
||||
;;;614 {
|
||||
;;;615 uint32_t tmp = 0x00;
|
||||
000002 2200 MOVS r2,#0
|
||||
;;;616 /* Check the parameters */
|
||||
;;;617 assert_param(IS_GPIO_EXTI_PORT_SOURCE(GPIO_PortSource));
|
||||
;;;618 assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
|
||||
;;;619
|
||||
;;;620 tmp = ((uint32_t)0x0F) << (0x04 * (GPIO_PinSource & (uint8_t)0x03));
|
||||
000004 078b LSLS r3,r1,#30
|
||||
000006 0f1c LSRS r4,r3,#28
|
||||
000008 230f MOVS r3,#0xf
|
||||
00000a fa03f204 LSL r2,r3,r4
|
||||
;;;621 AFIO->EXTICR[GPIO_PinSource >> 0x02] &= ~tmp;
|
||||
00000e 4b0b LDR r3,|L4.60|
|
||||
000010 108c ASRS r4,r1,#2
|
||||
000012 f8533024 LDR r3,[r3,r4,LSL #2]
|
||||
000016 4393 BICS r3,r3,r2
|
||||
000018 4c08 LDR r4,|L4.60|
|
||||
00001a 108d ASRS r5,r1,#2
|
||||
00001c f8443025 STR r3,[r4,r5,LSL #2]
|
||||
;;;622 AFIO->EXTICR[GPIO_PinSource >> 0x02] |= (((uint32_t)GPIO_PortSource) << (0x04 * (GPIO_PinSource & (uint8_t)0x03)));
|
||||
000020 4623 MOV r3,r4
|
||||
000022 108c ASRS r4,r1,#2
|
||||
000024 f8533024 LDR r3,[r3,r4,LSL #2]
|
||||
000028 078c LSLS r4,r1,#30
|
||||
00002a 0f24 LSRS r4,r4,#28
|
||||
00002c fa00f404 LSL r4,r0,r4
|
||||
000030 4323 ORRS r3,r3,r4
|
||||
000032 4c02 LDR r4,|L4.60|
|
||||
000034 108d ASRS r5,r1,#2
|
||||
000036 f8443025 STR r3,[r4,r5,LSL #2]
|
||||
;;;623 }
|
||||
00003a bd30 POP {r4,r5,pc}
|
||||
;;;624
|
||||
ENDP
|
||||
|
||||
|L4.60|
|
||||
DCD 0x40010008
|
||||
|
||||
AREA ||i.GPIO_EventOutputCmd||, CODE, READONLY, ALIGN=2
|
||||
|
||||
GPIO_EventOutputCmd PROC
|
||||
;;;486 */
|
||||
;;;487 void GPIO_EventOutputCmd(FunctionalState NewState)
|
||||
000000 4901 LDR r1,|L5.8|
|
||||
;;;488 {
|
||||
;;;489 /* Check the parameters */
|
||||
;;;490 assert_param(IS_FUNCTIONAL_STATE(NewState));
|
||||
;;;491
|
||||
;;;492 *(__IO uint32_t *)EVCR_EVOE_BB = (uint32_t)NewState;
|
||||
000002 61c8 STR r0,[r1,#0x1c]
|
||||
;;;493 }
|
||||
000004 4770 BX lr
|
||||
;;;494
|
||||
ENDP
|
||||
|
||||
000006 0000 DCW 0x0000
|
||||
|L5.8|
|
||||
DCD 0x42200000
|
||||
|
||||
AREA ||i.GPIO_EventOutputConfig||, CODE, READONLY, ALIGN=2
|
||||
|
||||
GPIO_EventOutputConfig PROC
|
||||
;;;465 */
|
||||
;;;466 void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
|
||||
000000 4602 MOV r2,r0
|
||||
;;;467 {
|
||||
;;;468 uint32_t tmpreg = 0x00;
|
||||
000002 2000 MOVS r0,#0
|
||||
;;;469 /* Check the parameters */
|
||||
;;;470 assert_param(IS_GPIO_EVENTOUT_PORT_SOURCE(GPIO_PortSource));
|
||||
;;;471 assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
|
||||
;;;472
|
||||
;;;473 tmpreg = AFIO->EVCR;
|
||||
000004 4b05 LDR r3,|L6.28|
|
||||
000006 6818 LDR r0,[r3,#0]
|
||||
;;;474 /* Clear the PORT[6:4] and PIN[3:0] bits */
|
||||
;;;475 tmpreg &= EVCR_PORTPINCONFIG_MASK;
|
||||
000008 f64f7380 MOV r3,#0xff80
|
||||
00000c 4018 ANDS r0,r0,r3
|
||||
;;;476 tmpreg |= (uint32_t)GPIO_PortSource << 0x04;
|
||||
00000e ea401002 ORR r0,r0,r2,LSL #4
|
||||
;;;477 tmpreg |= GPIO_PinSource;
|
||||
000012 4308 ORRS r0,r0,r1
|
||||
;;;478 AFIO->EVCR = tmpreg;
|
||||
000014 4b01 LDR r3,|L6.28|
|
||||
000016 6018 STR r0,[r3,#0]
|
||||
;;;479 }
|
||||
000018 4770 BX lr
|
||||
;;;480
|
||||
ENDP
|
||||
|
||||
00001a 0000 DCW 0x0000
|
||||
|L6.28|
|
||||
DCD 0x40010000
|
||||
|
||||
AREA ||i.GPIO_Init||, CODE, READONLY, ALIGN=1
|
||||
|
||||
GPIO_Init PROC
|
||||
;;;176 */
|
||||
;;;177 void GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct)
|
||||
000000 e92d41f0 PUSH {r4-r8,lr}
|
||||
;;;178 {
|
||||
000004 4602 MOV r2,r0
|
||||
;;;179 uint32_t currentmode = 0x00, currentpin = 0x00, pinpos = 0x00, pos = 0x00;
|
||||
000006 2500 MOVS r5,#0
|
||||
000008 2600 MOVS r6,#0
|
||||
00000a 2000 MOVS r0,#0
|
||||
00000c 2300 MOVS r3,#0
|
||||
;;;180 uint32_t tmpreg = 0x00, pinmask = 0x00;
|
||||
00000e 2400 MOVS r4,#0
|
||||
000010 2700 MOVS r7,#0
|
||||
;;;181 /* Check the parameters */
|
||||
;;;182 assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
|
||||
;;;183 assert_param(IS_GPIO_MODE(GPIO_InitStruct->GPIO_Mode));
|
||||
;;;184 assert_param(IS_GPIO_PIN(GPIO_InitStruct->GPIO_Pin));
|
||||
;;;185
|
||||
;;;186 /*---------------------------- GPIO Mode Configuration -----------------------*/
|
||||
;;;187 currentmode = ((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x0F);
|
||||
000012 f891c003 LDRB r12,[r1,#3]
|
||||
000016 f00c050f AND r5,r12,#0xf
|
||||
;;;188 if ((((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x10)) != 0x00)
|
||||
00001a f891c003 LDRB r12,[r1,#3]
|
||||
00001e f00c0c10 AND r12,r12,#0x10
|
||||
000022 f1bc0f00 CMP r12,#0
|
||||
000026 d003 BEQ |L7.48|
|
||||
;;;189 {
|
||||
;;;190 /* Check the parameters */
|
||||
;;;191 assert_param(IS_GPIO_SPEED(GPIO_InitStruct->GPIO_Speed));
|
||||
;;;192 /* Output mode */
|
||||
;;;193 currentmode |= (uint32_t)GPIO_InitStruct->GPIO_Speed;
|
||||
000028 f891c002 LDRB r12,[r1,#2]
|
||||
00002c ea4c0505 ORR r5,r12,r5
|
||||
|L7.48|
|
||||
;;;194 }
|
||||
;;;195 /*---------------------------- GPIO CRL Configuration ------------------------*/
|
||||
;;;196 /* Configure the eight low port pins */
|
||||
;;;197 if (((uint32_t)GPIO_InitStruct->GPIO_Pin & ((uint32_t)0x00FF)) != 0x00)
|
||||
000030 f891c000 LDRB r12,[r1,#0]
|
||||
000034 f1bc0f00 CMP r12,#0
|
||||
000038 d031 BEQ |L7.158|
|
||||
;;;198 {
|
||||
;;;199 tmpreg = GPIOx->CRL;
|
||||
00003a 6814 LDR r4,[r2,#0]
|
||||
;;;200 for (pinpos = 0x00; pinpos < 0x08; pinpos++)
|
||||
00003c 2000 MOVS r0,#0
|
||||
00003e e02b B |L7.152|
|
||||
|L7.64|
|
||||
;;;201 {
|
||||
;;;202 pos = ((uint32_t)0x01) << pinpos;
|
||||
000040 f04f0c01 MOV r12,#1
|
||||
000044 fa0cf300 LSL r3,r12,r0
|
||||
;;;203 /* Get the port pins position */
|
||||
;;;204 currentpin = (GPIO_InitStruct->GPIO_Pin) & pos;
|
||||
000048 f8b1c000 LDRH r12,[r1,#0]
|
||||
00004c ea0c0603 AND r6,r12,r3
|
||||
;;;205 if (currentpin == pos)
|
||||
000050 429e CMP r6,r3
|
||||
000052 d120 BNE |L7.150|
|
||||
;;;206 {
|
||||
;;;207 pos = pinpos << 2;
|
||||
000054 0083 LSLS r3,r0,#2
|
||||
;;;208 /* Clear the corresponding low control register bits */
|
||||
;;;209 pinmask = ((uint32_t)0x0F) << pos;
|
||||
000056 f04f0c0f MOV r12,#0xf
|
||||
00005a fa0cf703 LSL r7,r12,r3
|
||||
;;;210 tmpreg &= ~pinmask;
|
||||
00005e 43bc BICS r4,r4,r7
|
||||
;;;211 /* Write the mode configuration in the corresponding bits */
|
||||
;;;212 tmpreg |= (currentmode << pos);
|
||||
000060 fa05fc03 LSL r12,r5,r3
|
||||
000064 ea4c0404 ORR r4,r12,r4
|
||||
;;;213 /* Reset the corresponding ODR bit */
|
||||
;;;214 if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD)
|
||||
000068 f891c003 LDRB r12,[r1,#3]
|
||||
00006c f1bc0f28 CMP r12,#0x28
|
||||
000070 d106 BNE |L7.128|
|
||||
;;;215 {
|
||||
;;;216 GPIOx->BRR = (((uint32_t)0x01) << pinpos);
|
||||
000072 f04f0c01 MOV r12,#1
|
||||
000076 fa0cfc00 LSL r12,r12,r0
|
||||
00007a f8c2c014 STR r12,[r2,#0x14]
|
||||
00007e e00a B |L7.150|
|
||||
|L7.128|
|
||||
;;;217 }
|
||||
;;;218 else
|
||||
;;;219 {
|
||||
;;;220 /* Set the corresponding ODR bit */
|
||||
;;;221 if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU)
|
||||
000080 f891c003 LDRB r12,[r1,#3]
|
||||
000084 f1bc0f48 CMP r12,#0x48
|
||||
000088 d105 BNE |L7.150|
|
||||
;;;222 {
|
||||
;;;223 GPIOx->BSRR = (((uint32_t)0x01) << pinpos);
|
||||
00008a f04f0c01 MOV r12,#1
|
||||
00008e fa0cfc00 LSL r12,r12,r0
|
||||
000092 f8c2c010 STR r12,[r2,#0x10]
|
||||
|L7.150|
|
||||
000096 1c40 ADDS r0,r0,#1 ;200
|
||||
|L7.152|
|
||||
000098 2808 CMP r0,#8 ;200
|
||||
00009a d3d1 BCC |L7.64|
|
||||
;;;224 }
|
||||
;;;225 }
|
||||
;;;226 }
|
||||
;;;227 }
|
||||
;;;228 GPIOx->CRL = tmpreg;
|
||||
00009c 6014 STR r4,[r2,#0]
|
||||
|L7.158|
|
||||
;;;229 }
|
||||
;;;230 /*---------------------------- GPIO CRH Configuration ------------------------*/
|
||||
;;;231 /* Configure the eight high port pins */
|
||||
;;;232 if (GPIO_InitStruct->GPIO_Pin > 0x00FF)
|
||||
00009e f8b1c000 LDRH r12,[r1,#0]
|
||||
0000a2 f1bc0fff CMP r12,#0xff
|
||||
0000a6 dd34 BLE |L7.274|
|
||||
;;;233 {
|
||||
;;;234 tmpreg = GPIOx->CRH;
|
||||
0000a8 6854 LDR r4,[r2,#4]
|
||||
;;;235 for (pinpos = 0x00; pinpos < 0x08; pinpos++)
|
||||
0000aa 2000 MOVS r0,#0
|
||||
0000ac e02e B |L7.268|
|
||||
|L7.174|
|
||||
;;;236 {
|
||||
;;;237 pos = (((uint32_t)0x01) << (pinpos + 0x08));
|
||||
0000ae f1000c08 ADD r12,r0,#8
|
||||
0000b2 f04f0801 MOV r8,#1
|
||||
0000b6 fa08f30c LSL r3,r8,r12
|
||||
;;;238 /* Get the port pins position */
|
||||
;;;239 currentpin = ((GPIO_InitStruct->GPIO_Pin) & pos);
|
||||
0000ba f8b1c000 LDRH r12,[r1,#0]
|
||||
0000be ea0c0603 AND r6,r12,r3
|
||||
;;;240 if (currentpin == pos)
|
||||
0000c2 429e CMP r6,r3
|
||||
0000c4 d121 BNE |L7.266|
|
||||
;;;241 {
|
||||
;;;242 pos = pinpos << 2;
|
||||
0000c6 0083 LSLS r3,r0,#2
|
||||
;;;243 /* Clear the corresponding high control register bits */
|
||||
;;;244 pinmask = ((uint32_t)0x0F) << pos;
|
||||
0000c8 f04f0c0f MOV r12,#0xf
|
||||
0000cc fa0cf703 LSL r7,r12,r3
|
||||
;;;245 tmpreg &= ~pinmask;
|
||||
0000d0 43bc BICS r4,r4,r7
|
||||
;;;246 /* Write the mode configuration in the corresponding bits */
|
||||
;;;247 tmpreg |= (currentmode << pos);
|
||||
0000d2 fa05fc03 LSL r12,r5,r3
|
||||
0000d6 ea4c0404 ORR r4,r12,r4
|
||||
;;;248 /* Reset the corresponding ODR bit */
|
||||
;;;249 if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD)
|
||||
0000da f891c003 LDRB r12,[r1,#3]
|
||||
0000de f1bc0f28 CMP r12,#0x28
|
||||
0000e2 d105 BNE |L7.240|
|
||||
;;;250 {
|
||||
;;;251 GPIOx->BRR = (((uint32_t)0x01) << (pinpos + 0x08));
|
||||
0000e4 f1000c08 ADD r12,r0,#8
|
||||
0000e8 fa08f80c LSL r8,r8,r12
|
||||
0000ec f8c28014 STR r8,[r2,#0x14]
|
||||
|L7.240|
|
||||
;;;252 }
|
||||
;;;253 /* Set the corresponding ODR bit */
|
||||
;;;254 if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU)
|
||||
0000f0 f891c003 LDRB r12,[r1,#3]
|
||||
0000f4 f1bc0f48 CMP r12,#0x48
|
||||
0000f8 d107 BNE |L7.266|
|
||||
;;;255 {
|
||||
;;;256 GPIOx->BSRR = (((uint32_t)0x01) << (pinpos + 0x08));
|
||||
0000fa f1000c08 ADD r12,r0,#8
|
||||
0000fe f04f0801 MOV r8,#1
|
||||
000102 fa08f80c LSL r8,r8,r12
|
||||
000106 f8c28010 STR r8,[r2,#0x10]
|
||||
|L7.266|
|
||||
00010a 1c40 ADDS r0,r0,#1 ;235
|
||||
|L7.268|
|
||||
00010c 2808 CMP r0,#8 ;235
|
||||
00010e d3ce BCC |L7.174|
|
||||
;;;257 }
|
||||
;;;258 }
|
||||
;;;259 }
|
||||
;;;260 GPIOx->CRH = tmpreg;
|
||||
000110 6054 STR r4,[r2,#4]
|
||||
|L7.274|
|
||||
;;;261 }
|
||||
;;;262 }
|
||||
000112 e8bd81f0 POP {r4-r8,pc}
|
||||
;;;263
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.GPIO_PinLockConfig||, CODE, READONLY, ALIGN=1
|
||||
|
||||
GPIO_PinLockConfig PROC
|
||||
;;;435 */
|
||||
;;;436 void GPIO_PinLockConfig(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
|
||||
000000 f44f3280 MOV r2,#0x10000
|
||||
;;;437 {
|
||||
;;;438 uint32_t tmp = 0x00010000;
|
||||
;;;439
|
||||
;;;440 /* Check the parameters */
|
||||
;;;441 assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
|
||||
;;;442 assert_param(IS_GPIO_PIN(GPIO_Pin));
|
||||
;;;443
|
||||
;;;444 tmp |= GPIO_Pin;
|
||||
000004 430a ORRS r2,r2,r1
|
||||
;;;445 /* Set LCKK bit */
|
||||
;;;446 GPIOx->LCKR = tmp;
|
||||
000006 6182 STR r2,[r0,#0x18]
|
||||
;;;447 /* Reset LCKK bit */
|
||||
;;;448 GPIOx->LCKR = GPIO_Pin;
|
||||
000008 6181 STR r1,[r0,#0x18]
|
||||
;;;449 /* Set LCKK bit */
|
||||
;;;450 GPIOx->LCKR = tmp;
|
||||
00000a 6182 STR r2,[r0,#0x18]
|
||||
;;;451 /* Read LCKK bit*/
|
||||
;;;452 tmp = GPIOx->LCKR;
|
||||
00000c 6982 LDR r2,[r0,#0x18]
|
||||
;;;453 /* Read LCKK bit*/
|
||||
;;;454 tmp = GPIOx->LCKR;
|
||||
00000e 6982 LDR r2,[r0,#0x18]
|
||||
;;;455 }
|
||||
000010 4770 BX lr
|
||||
;;;456
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.GPIO_PinRemapConfig||, CODE, READONLY, ALIGN=2
|
||||
|
||||
GPIO_PinRemapConfig PROC
|
||||
;;;552 */
|
||||
;;;553 void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState)
|
||||
000000 b5f0 PUSH {r4-r7,lr}
|
||||
;;;554 {
|
||||
000002 460a MOV r2,r1
|
||||
;;;555 uint32_t tmp = 0x00, tmp1 = 0x00, tmpreg = 0x00, tmpmask = 0x00;
|
||||
000004 2300 MOVS r3,#0
|
||||
000006 2400 MOVS r4,#0
|
||||
000008 2100 MOVS r1,#0
|
||||
00000a 2500 MOVS r5,#0
|
||||
;;;556
|
||||
;;;557 /* Check the parameters */
|
||||
;;;558 assert_param(IS_GPIO_REMAP(GPIO_Remap));
|
||||
;;;559 assert_param(IS_FUNCTIONAL_STATE(NewState));
|
||||
;;;560
|
||||
;;;561 if ((GPIO_Remap & 0x80000000) == 0x80000000)
|
||||
00000c f0004600 AND r6,r0,#0x80000000
|
||||
000010 f1b64f00 CMP r6,#0x80000000
|
||||
000014 d102 BNE |L9.28|
|
||||
;;;562 {
|
||||
;;;563 tmpreg = AFIO->MAPR2;
|
||||
000016 4e1d LDR r6,|L9.140|
|
||||
000018 69f1 LDR r1,[r6,#0x1c]
|
||||
00001a e001 B |L9.32|
|
||||
|L9.28|
|
||||
;;;564 }
|
||||
;;;565 else
|
||||
;;;566 {
|
||||
;;;567 tmpreg = AFIO->MAPR;
|
||||
00001c 4e1b LDR r6,|L9.140|
|
||||
00001e 6871 LDR r1,[r6,#4]
|
||||
|L9.32|
|
||||
;;;568 }
|
||||
;;;569
|
||||
;;;570 tmpmask = (GPIO_Remap & DBGAFR_POSITION_MASK) >> 0x10;
|
||||
000020 f3c04503 UBFX r5,r0,#16,#4
|
||||
;;;571 tmp = GPIO_Remap & LSB_MASK;
|
||||
000024 b283 UXTH r3,r0
|
||||
;;;572
|
||||
;;;573 if ((GPIO_Remap & (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK)) == (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK))
|
||||
000026 f4001640 AND r6,r0,#0x300000
|
||||
00002a f5b61f40 CMP r6,#0x300000
|
||||
00002e d108 BNE |L9.66|
|
||||
;;;574 {
|
||||
;;;575 tmpreg &= DBGAFR_SWJCFG_MASK;
|
||||
000030 f0216170 BIC r1,r1,#0xf000000
|
||||
;;;576 AFIO->MAPR &= DBGAFR_SWJCFG_MASK;
|
||||
000034 4e15 LDR r6,|L9.140|
|
||||
000036 6876 LDR r6,[r6,#4]
|
||||
000038 f0266670 BIC r6,r6,#0xf000000
|
||||
00003c 4f13 LDR r7,|L9.140|
|
||||
00003e 607e STR r6,[r7,#4]
|
||||
000040 e012 B |L9.104|
|
||||
|L9.66|
|
||||
;;;577 }
|
||||
;;;578 else if ((GPIO_Remap & DBGAFR_NUMBITS_MASK) == DBGAFR_NUMBITS_MASK)
|
||||
000042 f4001680 AND r6,r0,#0x100000
|
||||
000046 f5b61f80 CMP r6,#0x100000
|
||||
00004a d106 BNE |L9.90|
|
||||
;;;579 {
|
||||
;;;580 tmp1 = ((uint32_t)0x03) << tmpmask;
|
||||
00004c 2603 MOVS r6,#3
|
||||
00004e fa06f405 LSL r4,r6,r5
|
||||
;;;581 tmpreg &= ~tmp1;
|
||||
000052 43a1 BICS r1,r1,r4
|
||||
;;;582 tmpreg |= ~DBGAFR_SWJCFG_MASK;
|
||||
000054 f0416170 ORR r1,r1,#0xf000000
|
||||
000058 e006 B |L9.104|
|
||||
|L9.90|
|
||||
;;;583 }
|
||||
;;;584 else
|
||||
;;;585 {
|
||||
;;;586 tmpreg &= ~(tmp << ((GPIO_Remap >> 0x15) * 0x10));
|
||||
00005a 0d46 LSRS r6,r0,#21
|
||||
00005c 0136 LSLS r6,r6,#4
|
||||
00005e fa03f606 LSL r6,r3,r6
|
||||
000062 43b1 BICS r1,r1,r6
|
||||
;;;587 tmpreg |= ~DBGAFR_SWJCFG_MASK;
|
||||
000064 f0416170 ORR r1,r1,#0xf000000
|
||||
|L9.104|
|
||||
;;;588 }
|
||||
;;;589
|
||||
;;;590 if (NewState != DISABLE)
|
||||
000068 b122 CBZ r2,|L9.116|
|
||||
;;;591 {
|
||||
;;;592 tmpreg |= (tmp << ((GPIO_Remap >> 0x15) * 0x10));
|
||||
00006a 0d46 LSRS r6,r0,#21
|
||||
00006c 0136 LSLS r6,r6,#4
|
||||
00006e fa03f606 LSL r6,r3,r6
|
||||
000072 4331 ORRS r1,r1,r6
|
||||
|L9.116|
|
||||
;;;593 }
|
||||
;;;594
|
||||
;;;595 if ((GPIO_Remap & 0x80000000) == 0x80000000)
|
||||
000074 f0004600 AND r6,r0,#0x80000000
|
||||
000078 f1b64f00 CMP r6,#0x80000000
|
||||
00007c d102 BNE |L9.132|
|
||||
;;;596 {
|
||||
;;;597 AFIO->MAPR2 = tmpreg;
|
||||
00007e 4e03 LDR r6,|L9.140|
|
||||
000080 61f1 STR r1,[r6,#0x1c]
|
||||
000082 e001 B |L9.136|
|
||||
|L9.132|
|
||||
;;;598 }
|
||||
;;;599 else
|
||||
;;;600 {
|
||||
;;;601 AFIO->MAPR = tmpreg;
|
||||
000084 4e01 LDR r6,|L9.140|
|
||||
000086 6071 STR r1,[r6,#4]
|
||||
|L9.136|
|
||||
;;;602 }
|
||||
;;;603 }
|
||||
000088 bdf0 POP {r4-r7,pc}
|
||||
;;;604
|
||||
ENDP
|
||||
|
||||
00008a 0000 DCW 0x0000
|
||||
|L9.140|
|
||||
DCD 0x40010000
|
||||
|
||||
AREA ||i.GPIO_ReadInputData||, CODE, READONLY, ALIGN=1
|
||||
|
||||
GPIO_ReadInputData PROC
|
||||
;;;308 */
|
||||
;;;309 uint16_t GPIO_ReadInputData(GPIO_TypeDef *GPIOx)
|
||||
000000 4601 MOV r1,r0
|
||||
;;;310 {
|
||||
;;;311 /* Check the parameters */
|
||||
;;;312 assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
|
||||
;;;313
|
||||
;;;314 return ((uint16_t)GPIOx->IDR);
|
||||
000002 6888 LDR r0,[r1,#8]
|
||||
000004 b280 UXTH r0,r0
|
||||
;;;315 }
|
||||
000006 4770 BX lr
|
||||
;;;316
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.GPIO_ReadInputDataBit||, CODE, READONLY, ALIGN=1
|
||||
|
||||
GPIO_ReadInputDataBit PROC
|
||||
;;;284 */
|
||||
;;;285 uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
|
||||
000000 4602 MOV r2,r0
|
||||
;;;286 {
|
||||
;;;287 uint8_t bitstatus = 0x00;
|
||||
000002 2000 MOVS r0,#0
|
||||
;;;288
|
||||
;;;289 /* Check the parameters */
|
||||
;;;290 assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
|
||||
;;;291 assert_param(IS_GET_GPIO_PIN(GPIO_Pin));
|
||||
;;;292
|
||||
;;;293 if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)Bit_RESET)
|
||||
000004 6893 LDR r3,[r2,#8]
|
||||
000006 400b ANDS r3,r3,r1
|
||||
000008 b10b CBZ r3,|L11.14|
|
||||
;;;294 {
|
||||
;;;295 bitstatus = (uint8_t)Bit_SET;
|
||||
00000a 2001 MOVS r0,#1
|
||||
00000c e000 B |L11.16|
|
||||
|L11.14|
|
||||
;;;296 }
|
||||
;;;297 else
|
||||
;;;298 {
|
||||
;;;299 bitstatus = (uint8_t)Bit_RESET;
|
||||
00000e 2000 MOVS r0,#0
|
||||
|L11.16|
|
||||
;;;300 }
|
||||
;;;301 return bitstatus;
|
||||
;;;302 }
|
||||
000010 4770 BX lr
|
||||
;;;303
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.GPIO_ReadOutputData||, CODE, READONLY, ALIGN=1
|
||||
|
||||
GPIO_ReadOutputData PROC
|
||||
;;;346 */
|
||||
;;;347 uint16_t GPIO_ReadOutputData(GPIO_TypeDef *GPIOx)
|
||||
000000 4601 MOV r1,r0
|
||||
;;;348 {
|
||||
;;;349 /* Check the parameters */
|
||||
;;;350 assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
|
||||
;;;351
|
||||
;;;352 return ((uint16_t)GPIOx->ODR);
|
||||
000002 68c8 LDR r0,[r1,#0xc]
|
||||
000004 b280 UXTH r0,r0
|
||||
;;;353 }
|
||||
000006 4770 BX lr
|
||||
;;;354
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.GPIO_ReadOutputDataBit||, CODE, READONLY, ALIGN=1
|
||||
|
||||
GPIO_ReadOutputDataBit PROC
|
||||
;;;323 */
|
||||
;;;324 uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
|
||||
000000 4602 MOV r2,r0
|
||||
;;;325 {
|
||||
;;;326 uint8_t bitstatus = 0x00;
|
||||
000002 2000 MOVS r0,#0
|
||||
;;;327 /* Check the parameters */
|
||||
;;;328 assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
|
||||
;;;329 assert_param(IS_GET_GPIO_PIN(GPIO_Pin));
|
||||
;;;330
|
||||
;;;331 if ((GPIOx->ODR & GPIO_Pin) != (uint32_t)Bit_RESET)
|
||||
000004 68d3 LDR r3,[r2,#0xc]
|
||||
000006 400b ANDS r3,r3,r1
|
||||
000008 b10b CBZ r3,|L13.14|
|
||||
;;;332 {
|
||||
;;;333 bitstatus = (uint8_t)Bit_SET;
|
||||
00000a 2001 MOVS r0,#1
|
||||
00000c e000 B |L13.16|
|
||||
|L13.14|
|
||||
;;;334 }
|
||||
;;;335 else
|
||||
;;;336 {
|
||||
;;;337 bitstatus = (uint8_t)Bit_RESET;
|
||||
00000e 2000 MOVS r0,#0
|
||||
|L13.16|
|
||||
;;;338 }
|
||||
;;;339 return bitstatus;
|
||||
;;;340 }
|
||||
000010 4770 BX lr
|
||||
;;;341
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.GPIO_ResetBits||, CODE, READONLY, ALIGN=1
|
||||
|
||||
GPIO_ResetBits PROC
|
||||
;;;377 */
|
||||
;;;378 void GPIO_ResetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
|
||||
000000 6141 STR r1,[r0,#0x14]
|
||||
;;;379 {
|
||||
;;;380 /* Check the parameters */
|
||||
;;;381 assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
|
||||
;;;382 assert_param(IS_GPIO_PIN(GPIO_Pin));
|
||||
;;;383
|
||||
;;;384 GPIOx->BRR = GPIO_Pin;
|
||||
;;;385 }
|
||||
000002 4770 BX lr
|
||||
;;;386
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.GPIO_SetBits||, CODE, READONLY, ALIGN=1
|
||||
|
||||
GPIO_SetBits PROC
|
||||
;;;361 */
|
||||
;;;362 void GPIO_SetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
|
||||
000000 6101 STR r1,[r0,#0x10]
|
||||
;;;363 {
|
||||
;;;364 /* Check the parameters */
|
||||
;;;365 assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
|
||||
;;;366 assert_param(IS_GPIO_PIN(GPIO_Pin));
|
||||
;;;367
|
||||
;;;368 GPIOx->BSRR = GPIO_Pin;
|
||||
;;;369 }
|
||||
000002 4770 BX lr
|
||||
;;;370
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.GPIO_StructInit||, CODE, READONLY, ALIGN=1
|
||||
|
||||
GPIO_StructInit PROC
|
||||
;;;269 */
|
||||
;;;270 void GPIO_StructInit(GPIO_InitTypeDef *GPIO_InitStruct)
|
||||
000000 f64f71ff MOV r1,#0xffff
|
||||
;;;271 {
|
||||
;;;272 /* Reset GPIO init structure parameters values */
|
||||
;;;273 GPIO_InitStruct->GPIO_Pin = GPIO_Pin_All;
|
||||
000004 8001 STRH r1,[r0,#0]
|
||||
;;;274 GPIO_InitStruct->GPIO_Speed = GPIO_Speed_2MHz;
|
||||
000006 2102 MOVS r1,#2
|
||||
000008 7081 STRB r1,[r0,#2]
|
||||
;;;275 GPIO_InitStruct->GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
||||
00000a 2104 MOVS r1,#4
|
||||
00000c 70c1 STRB r1,[r0,#3]
|
||||
;;;276 }
|
||||
00000e 4770 BX lr
|
||||
;;;277
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.GPIO_Write||, CODE, READONLY, ALIGN=1
|
||||
|
||||
GPIO_Write PROC
|
||||
;;;420 */
|
||||
;;;421 void GPIO_Write(GPIO_TypeDef *GPIOx, uint16_t PortVal)
|
||||
000000 60c1 STR r1,[r0,#0xc]
|
||||
;;;422 {
|
||||
;;;423 /* Check the parameters */
|
||||
;;;424 assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
|
||||
;;;425
|
||||
;;;426 GPIOx->ODR = PortVal;
|
||||
;;;427 }
|
||||
000002 4770 BX lr
|
||||
;;;428
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.GPIO_WriteBit||, CODE, READONLY, ALIGN=1
|
||||
|
||||
GPIO_WriteBit PROC
|
||||
;;;397 */
|
||||
;;;398 void GPIO_WriteBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, BitAction BitVal)
|
||||
000000 b10a CBZ r2,|L18.6|
|
||||
;;;399 {
|
||||
;;;400 /* Check the parameters */
|
||||
;;;401 assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
|
||||
;;;402 assert_param(IS_GET_GPIO_PIN(GPIO_Pin));
|
||||
;;;403 assert_param(IS_GPIO_BIT_ACTION(BitVal));
|
||||
;;;404
|
||||
;;;405 if (BitVal != Bit_RESET)
|
||||
;;;406 {
|
||||
;;;407 GPIOx->BSRR = GPIO_Pin;
|
||||
000002 6101 STR r1,[r0,#0x10]
|
||||
000004 e000 B |L18.8|
|
||||
|L18.6|
|
||||
;;;408 }
|
||||
;;;409 else
|
||||
;;;410 {
|
||||
;;;411 GPIOx->BRR = GPIO_Pin;
|
||||
000006 6141 STR r1,[r0,#0x14]
|
||||
|L18.8|
|
||||
;;;412 }
|
||||
;;;413 }
|
||||
000008 4770 BX lr
|
||||
;;;414
|
||||
ENDP
|
||||
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\Libraries\\STM32F10x_StdPeriph_Driver\\src\\stm32f10x_gpio.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___16_stm32f10x_gpio_c_f8e8e39a____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___16_stm32f10x_gpio_c_f8e8e39a____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___16_stm32f10x_gpio_c_f8e8e39a____REVSH|
|
||||
#line 128
|
||||
|__asm___16_stm32f10x_gpio_c_f8e8e39a____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
197
Project/MDK-ARM/Flash/List/stm32f10x_it.txt
Normal file
197
Project/MDK-ARM/Flash/List/stm32f10x_it.txt
Normal file
@@ -0,0 +1,197 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\stm32f10x_it.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\stm32f10x_it.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\stm32f10x_it.crf ..\..\User\bsp\stm32f10x_it.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.BusFault_Handler||, CODE, READONLY, ALIGN=1
|
||||
|
||||
BusFault_Handler PROC
|
||||
;;;114 */
|
||||
;;;115 void BusFault_Handler(void)
|
||||
000000 bf00 NOP
|
||||
|L1.2|
|
||||
;;;116 {
|
||||
;;;117 /* 当总线异常时进入死循环 */
|
||||
;;;118 while (1)
|
||||
000002 e7fe B |L1.2|
|
||||
;;;119 {
|
||||
;;;120 }
|
||||
;;;121 }
|
||||
;;;122
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.DebugMon_Handler||, CODE, READONLY, ALIGN=1
|
||||
|
||||
DebugMon_Handler PROC
|
||||
;;;158 */
|
||||
;;;159 void DebugMon_Handler(void)
|
||||
000000 4770 BX lr
|
||||
;;;160 {
|
||||
;;;161 }
|
||||
;;;162
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.HardFault_Handler||, CODE, READONLY, ALIGN=1
|
||||
|
||||
HardFault_Handler PROC
|
||||
;;;58 */
|
||||
;;;59 void HardFault_Handler(void)
|
||||
000000 bf00 NOP
|
||||
|L3.2|
|
||||
;;;60 {
|
||||
;;;61 #if 0
|
||||
;;;62 const char *pError = ERR_INFO;
|
||||
;;;63 uint8_t i;
|
||||
;;;64
|
||||
;;;65 for (i = 0; i < sizeof(ERR_INFO); i++)
|
||||
;;;66 {
|
||||
;;;67 USART1->DR = pError[i];
|
||||
;;;68 /* 等待发送结束 */
|
||||
;;;69 while ((USART1->SR & USART_FLAG_TC) == (uint16_t)RESET);
|
||||
;;;70 }
|
||||
;;;71 #endif
|
||||
;;;72
|
||||
;;;73 #if 0 /* 出现异常时,驱动蜂鸣器发声 */
|
||||
;;;74 while(1)
|
||||
;;;75 {
|
||||
;;;76 uint16_t m;
|
||||
;;;77
|
||||
;;;78 GPIOA->ODR ^= GPIO_Pin_8;
|
||||
;;;79
|
||||
;;;80 for (m = 0; m < 10000; m++);
|
||||
;;;81 }
|
||||
;;;82 #else
|
||||
;;;83
|
||||
;;;84 /* 当硬件失效异常发生时进入死循环 */
|
||||
;;;85 while (1)
|
||||
000002 e7fe B |L3.2|
|
||||
;;;86 {
|
||||
;;;87 }
|
||||
;;;88 #endif
|
||||
;;;89 }
|
||||
;;;90
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.MemManage_Handler||, CODE, READONLY, ALIGN=1
|
||||
|
||||
MemManage_Handler PROC
|
||||
;;;98 */
|
||||
;;;99 void MemManage_Handler(void)
|
||||
000000 bf00 NOP
|
||||
|L4.2|
|
||||
;;;100 {
|
||||
;;;101 /* 当内存管理异常发生时进入死循环 */
|
||||
;;;102 while (1)
|
||||
000002 e7fe B |L4.2|
|
||||
;;;103 {
|
||||
;;;104 }
|
||||
;;;105 }
|
||||
;;;106
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.NMI_Handler||, CODE, READONLY, ALIGN=1
|
||||
|
||||
NMI_Handler PROC
|
||||
;;;46 */
|
||||
;;;47 void NMI_Handler(void)
|
||||
000000 4770 BX lr
|
||||
;;;48 {
|
||||
;;;49 }
|
||||
;;;50
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.PendSV_Handler||, CODE, READONLY, ALIGN=1
|
||||
|
||||
PendSV_Handler PROC
|
||||
;;;170 */
|
||||
;;;171 void PendSV_Handler(void)
|
||||
000000 4770 BX lr
|
||||
;;;172 {
|
||||
;;;173 }
|
||||
;;;174
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.SVC_Handler||, CODE, READONLY, ALIGN=1
|
||||
|
||||
SVC_Handler PROC
|
||||
;;;146 */
|
||||
;;;147 void SVC_Handler(void)
|
||||
000000 4770 BX lr
|
||||
;;;148 {
|
||||
;;;149 }
|
||||
;;;150
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.USB_LP_CAN1_RX0_IRQHandler||, CODE, READONLY, ALIGN=2
|
||||
|
||||
USB_LP_CAN1_RX0_IRQHandler PROC
|
||||
;;;205 extern void USB_Istr(void);
|
||||
;;;206 void USB_LP_CAN1_RX0_IRQHandler(void)
|
||||
000000 4801 LDR r0,|L8.8|
|
||||
;;;207 {
|
||||
;;;208 /* 判断CAN1的时钟是否打开 */
|
||||
;;;209 if (RCC->APB1ENR & RCC_APB1Periph_CAN1)
|
||||
000002 69c0 LDR r0,[r0,#0x1c]
|
||||
;;;210 {
|
||||
;;;211 }
|
||||
;;;212 else
|
||||
;;;213 {
|
||||
;;;214 }
|
||||
;;;215 }
|
||||
000004 4770 BX lr
|
||||
;;;216
|
||||
ENDP
|
||||
|
||||
000006 0000 DCW 0x0000
|
||||
|L8.8|
|
||||
DCD 0x40021000
|
||||
|
||||
AREA ||i.UsageFault_Handler||, CODE, READONLY, ALIGN=1
|
||||
|
||||
UsageFault_Handler PROC
|
||||
;;;130 */
|
||||
;;;131 void UsageFault_Handler(void)
|
||||
000000 bf00 NOP
|
||||
|L9.2|
|
||||
;;;132 {
|
||||
;;;133 /* 当用法异常时进入死循环 */
|
||||
;;;134 while (1)
|
||||
000002 e7fe B |L9.2|
|
||||
;;;135 {
|
||||
;;;136 }
|
||||
;;;137 }
|
||||
;;;138
|
||||
ENDP
|
||||
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\stm32f10x_it.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___14_stm32f10x_it_c_bb8ca80c____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___14_stm32f10x_it_c_bb8ca80c____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___14_stm32f10x_it_c_bb8ca80c____REVSH|
|
||||
#line 128
|
||||
|__asm___14_stm32f10x_it_c_bb8ca80c____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
1392
Project/MDK-ARM/Flash/List/stm32f10x_rcc.txt
Normal file
1392
Project/MDK-ARM/Flash/List/stm32f10x_rcc.txt
Normal file
File diff suppressed because it is too large
Load Diff
4144
Project/MDK-ARM/Flash/List/stm32f10x_tim.txt
Normal file
4144
Project/MDK-ARM/Flash/List/stm32f10x_tim.txt
Normal file
File diff suppressed because it is too large
Load Diff
1316
Project/MDK-ARM/Flash/List/stm32f10x_usart.txt
Normal file
1316
Project/MDK-ARM/Flash/List/stm32f10x_usart.txt
Normal file
File diff suppressed because it is too large
Load Diff
582
Project/MDK-ARM/Flash/List/system_stm32f10x.txt
Normal file
582
Project/MDK-ARM/Flash/List/system_stm32f10x.txt
Normal file
@@ -0,0 +1,582 @@
|
||||
; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
|
||||
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\system_stm32f10x.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\system_stm32f10x.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -I..\..\User -IC:\Users\w1619\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=538 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\system_stm32f10x.crf ..\..\User\bsp\system_stm32f10x.c]
|
||||
THUMB
|
||||
|
||||
AREA ||i.SetSysClock||, CODE, READONLY, ALIGN=1
|
||||
|
||||
SetSysClock PROC
|
||||
;;;418 */
|
||||
;;;419 static void SetSysClock(void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;420 {
|
||||
;;;421 #ifdef SYSCLK_FREQ_HSE
|
||||
;;;422 SetSysClockToHSE();
|
||||
;;;423 #elif defined SYSCLK_FREQ_24MHz
|
||||
;;;424 SetSysClockTo24();
|
||||
;;;425 #elif defined SYSCLK_FREQ_36MHz
|
||||
;;;426 SetSysClockTo36();
|
||||
;;;427 #elif defined SYSCLK_FREQ_48MHz
|
||||
;;;428 SetSysClockTo48();
|
||||
;;;429 #elif defined SYSCLK_FREQ_56MHz
|
||||
;;;430 SetSysClockTo56();
|
||||
;;;431 #elif defined SYSCLK_FREQ_72MHz
|
||||
;;;432 SetSysClockTo72();
|
||||
000002 f7fffffe BL SetSysClockTo72
|
||||
;;;433 #endif
|
||||
;;;434
|
||||
;;;435 /* If none of the define above is enabled, the HSI is used as System clock
|
||||
;;;436 source (default after reset) */
|
||||
;;;437 }
|
||||
000006 bd10 POP {r4,pc}
|
||||
;;;438
|
||||
ENDP
|
||||
|
||||
|
||||
AREA ||i.SetSysClockTo72||, CODE, READONLY, ALIGN=2
|
||||
|
||||
SetSysClockTo72 PROC
|
||||
;;;986 */
|
||||
;;;987 static void SetSysClockTo72(void)
|
||||
000000 b50c PUSH {r2,r3,lr}
|
||||
;;;988 {
|
||||
;;;989 __IO uint32_t StartUpCounter = 0, HSEStatus = 0;
|
||||
000002 2000 MOVS r0,#0
|
||||
000004 9001 STR r0,[sp,#4]
|
||||
000006 9000 STR r0,[sp,#0]
|
||||
;;;990
|
||||
;;;991 /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/
|
||||
;;;992 /* Enable HSE */
|
||||
;;;993 RCC->CR |= ((uint32_t)RCC_CR_HSEON);
|
||||
000008 4833 LDR r0,|L2.216|
|
||||
00000a 6800 LDR r0,[r0,#0]
|
||||
00000c f4403080 ORR r0,r0,#0x10000
|
||||
000010 4931 LDR r1,|L2.216|
|
||||
000012 6008 STR r0,[r1,#0]
|
||||
;;;994
|
||||
;;;995 /* Wait till HSE is ready and if Time out is reached exit */
|
||||
;;;996 do
|
||||
000014 bf00 NOP
|
||||
|L2.22|
|
||||
;;;997 {
|
||||
;;;998 HSEStatus = RCC->CR & RCC_CR_HSERDY;
|
||||
000016 4830 LDR r0,|L2.216|
|
||||
000018 6800 LDR r0,[r0,#0]
|
||||
00001a f4003000 AND r0,r0,#0x20000
|
||||
00001e 9000 STR r0,[sp,#0]
|
||||
;;;999 StartUpCounter++;
|
||||
000020 9801 LDR r0,[sp,#4]
|
||||
000022 1c40 ADDS r0,r0,#1
|
||||
000024 9001 STR r0,[sp,#4]
|
||||
;;;1000 } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));
|
||||
000026 9800 LDR r0,[sp,#0]
|
||||
000028 b918 CBNZ r0,|L2.50|
|
||||
00002a 9801 LDR r0,[sp,#4]
|
||||
00002c f5b06fa0 CMP r0,#0x500
|
||||
000030 d1f1 BNE |L2.22|
|
||||
|L2.50|
|
||||
;;;1001
|
||||
;;;1002 if ((RCC->CR & RCC_CR_HSERDY) != RESET)
|
||||
000032 4829 LDR r0,|L2.216|
|
||||
000034 6800 LDR r0,[r0,#0]
|
||||
000036 f4003000 AND r0,r0,#0x20000
|
||||
00003a b110 CBZ r0,|L2.66|
|
||||
;;;1003 {
|
||||
;;;1004 HSEStatus = (uint32_t)0x01;
|
||||
00003c 2001 MOVS r0,#1
|
||||
00003e 9000 STR r0,[sp,#0]
|
||||
000040 e001 B |L2.70|
|
||||
|L2.66|
|
||||
;;;1005 }
|
||||
;;;1006 else
|
||||
;;;1007 {
|
||||
;;;1008 HSEStatus = (uint32_t)0x00;
|
||||
000042 2000 MOVS r0,#0
|
||||
000044 9000 STR r0,[sp,#0]
|
||||
|L2.70|
|
||||
;;;1009 }
|
||||
;;;1010
|
||||
;;;1011 if (HSEStatus == (uint32_t)0x01)
|
||||
000046 9800 LDR r0,[sp,#0]
|
||||
000048 2801 CMP r0,#1
|
||||
00004a d143 BNE |L2.212|
|
||||
;;;1012 {
|
||||
;;;1013 /* Enable Prefetch Buffer */
|
||||
;;;1014 FLASH->ACR |= FLASH_ACR_PRFTBE;
|
||||
00004c 4823 LDR r0,|L2.220|
|
||||
00004e 6800 LDR r0,[r0,#0]
|
||||
000050 f0400010 ORR r0,r0,#0x10
|
||||
000054 4921 LDR r1,|L2.220|
|
||||
000056 6008 STR r0,[r1,#0]
|
||||
;;;1015
|
||||
;;;1016 /* Flash 2 wait state */
|
||||
;;;1017 FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
|
||||
000058 4608 MOV r0,r1
|
||||
00005a 6800 LDR r0,[r0,#0]
|
||||
00005c f0200003 BIC r0,r0,#3
|
||||
000060 6008 STR r0,[r1,#0]
|
||||
;;;1018 FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2;
|
||||
000062 4608 MOV r0,r1
|
||||
000064 6800 LDR r0,[r0,#0]
|
||||
000066 f0400002 ORR r0,r0,#2
|
||||
00006a 6008 STR r0,[r1,#0]
|
||||
;;;1019
|
||||
;;;1020
|
||||
;;;1021 /* HCLK = SYSCLK */
|
||||
;;;1022 RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
|
||||
00006c 481a LDR r0,|L2.216|
|
||||
00006e 6840 LDR r0,[r0,#4]
|
||||
000070 4919 LDR r1,|L2.216|
|
||||
000072 6048 STR r0,[r1,#4]
|
||||
;;;1023
|
||||
;;;1024 /* PCLK2 = HCLK */
|
||||
;;;1025 RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;
|
||||
000074 4608 MOV r0,r1
|
||||
000076 6840 LDR r0,[r0,#4]
|
||||
000078 6048 STR r0,[r1,#4]
|
||||
;;;1026
|
||||
;;;1027 /* PCLK1 = HCLK */
|
||||
;;;1028 RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2;
|
||||
00007a 4608 MOV r0,r1
|
||||
00007c 6840 LDR r0,[r0,#4]
|
||||
00007e f4406080 ORR r0,r0,#0x400
|
||||
000082 6048 STR r0,[r1,#4]
|
||||
;;;1029
|
||||
;;;1030 #ifdef STM32F10X_CL
|
||||
;;;1031 /* Configure PLLs ------------------------------------------------------*/
|
||||
;;;1032 /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */
|
||||
;;;1033 /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */
|
||||
;;;1034
|
||||
;;;1035 RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL |
|
||||
;;;1036 RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC);
|
||||
;;;1037 RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 |
|
||||
;;;1038 RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5);
|
||||
;;;1039
|
||||
;;;1040 /* Enable PLL2 */
|
||||
;;;1041 RCC->CR |= RCC_CR_PLL2ON;
|
||||
;;;1042 /* Wait till PLL2 is ready */
|
||||
;;;1043 while((RCC->CR & RCC_CR_PLL2RDY) == 0)
|
||||
;;;1044 {
|
||||
;;;1045 }
|
||||
;;;1046
|
||||
;;;1047
|
||||
;;;1048 /* PLL configuration: PLLCLK = PREDIV1 * 9 = 72 MHz */
|
||||
;;;1049 RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL);
|
||||
;;;1050 RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 |
|
||||
;;;1051 RCC_CFGR_PLLMULL9);
|
||||
;;;1052 #else
|
||||
;;;1053 /* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */
|
||||
;;;1054 RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
|
||||
000084 4608 MOV r0,r1
|
||||
000086 6840 LDR r0,[r0,#4]
|
||||
000088 f420107c BIC r0,r0,#0x3f0000
|
||||
00008c 6048 STR r0,[r1,#4]
|
||||
;;;1055 RCC_CFGR_PLLMULL));
|
||||
;;;1056 RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);
|
||||
00008e 4608 MOV r0,r1
|
||||
000090 6840 LDR r0,[r0,#4]
|
||||
000092 f44010e8 ORR r0,r0,#0x1d0000
|
||||
000096 6048 STR r0,[r1,#4]
|
||||
;;;1057 #endif /* STM32F10X_CL */
|
||||
;;;1058
|
||||
;;;1059 /* Enable PLL */
|
||||
;;;1060 RCC->CR |= RCC_CR_PLLON;
|
||||
000098 4608 MOV r0,r1
|
||||
00009a 6800 LDR r0,[r0,#0]
|
||||
00009c f0407080 ORR r0,r0,#0x1000000
|
||||
0000a0 6008 STR r0,[r1,#0]
|
||||
;;;1061
|
||||
;;;1062 /* Wait till PLL is ready */
|
||||
;;;1063 while((RCC->CR & RCC_CR_PLLRDY) == 0)
|
||||
0000a2 bf00 NOP
|
||||
|L2.164|
|
||||
0000a4 480c LDR r0,|L2.216|
|
||||
0000a6 6800 LDR r0,[r0,#0]
|
||||
0000a8 f0007000 AND r0,r0,#0x2000000
|
||||
0000ac 2800 CMP r0,#0
|
||||
0000ae d0f9 BEQ |L2.164|
|
||||
;;;1064 {
|
||||
;;;1065 }
|
||||
;;;1066
|
||||
;;;1067 /* Select PLL as system clock source */
|
||||
;;;1068 RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
|
||||
0000b0 4809 LDR r0,|L2.216|
|
||||
0000b2 6840 LDR r0,[r0,#4]
|
||||
0000b4 f0200003 BIC r0,r0,#3
|
||||
0000b8 4907 LDR r1,|L2.216|
|
||||
0000ba 6048 STR r0,[r1,#4]
|
||||
;;;1069 RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;
|
||||
0000bc 4608 MOV r0,r1
|
||||
0000be 6840 LDR r0,[r0,#4]
|
||||
0000c0 f0400002 ORR r0,r0,#2
|
||||
0000c4 6048 STR r0,[r1,#4]
|
||||
;;;1070
|
||||
;;;1071 /* Wait till PLL is used as system clock source */
|
||||
;;;1072 while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08)
|
||||
0000c6 bf00 NOP
|
||||
|L2.200|
|
||||
0000c8 4803 LDR r0,|L2.216|
|
||||
0000ca 6840 LDR r0,[r0,#4]
|
||||
0000cc f000000c AND r0,r0,#0xc
|
||||
0000d0 2808 CMP r0,#8
|
||||
0000d2 d1f9 BNE |L2.200|
|
||||
|L2.212|
|
||||
;;;1073 {
|
||||
;;;1074 }
|
||||
;;;1075 }
|
||||
;;;1076 else
|
||||
;;;1077 { /* If HSE fails to start-up, the application will have wrong clock
|
||||
;;;1078 configuration. User can add here some code to deal with this error */
|
||||
;;;1079 }
|
||||
;;;1080 }
|
||||
0000d4 bd0c POP {r2,r3,pc}
|
||||
;;;1081 #endif
|
||||
ENDP
|
||||
|
||||
0000d6 0000 DCW 0x0000
|
||||
|L2.216|
|
||||
DCD 0x40021000
|
||||
|L2.220|
|
||||
DCD 0x40022000
|
||||
|
||||
AREA ||i.SystemCoreClockUpdate||, CODE, READONLY, ALIGN=2
|
||||
|
||||
SystemCoreClockUpdate PROC
|
||||
;;;305 */
|
||||
;;;306 void SystemCoreClockUpdate (void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;307 {
|
||||
;;;308 uint32_t tmp = 0, pllmull = 0, pllsource = 0;
|
||||
000002 2100 MOVS r1,#0
|
||||
000004 2000 MOVS r0,#0
|
||||
000006 2200 MOVS r2,#0
|
||||
;;;309
|
||||
;;;310 #ifdef STM32F10X_CL
|
||||
;;;311 uint32_t prediv1source = 0, prediv1factor = 0, prediv2factor = 0, pll2mull = 0;
|
||||
;;;312 #endif /* STM32F10X_CL */
|
||||
;;;313
|
||||
;;;314 #if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
|
||||
;;;315 uint32_t prediv1factor = 0;
|
||||
;;;316 #endif /* STM32F10X_LD_VL or STM32F10X_MD_VL or STM32F10X_HD_VL */
|
||||
;;;317
|
||||
;;;318 /* Get SYSCLK source -------------------------------------------------------*/
|
||||
;;;319 tmp = RCC->CFGR & RCC_CFGR_SWS;
|
||||
000008 4b21 LDR r3,|L3.144|
|
||||
00000a 685b LDR r3,[r3,#4]
|
||||
00000c f003010c AND r1,r3,#0xc
|
||||
;;;320
|
||||
;;;321 switch (tmp)
|
||||
000010 b121 CBZ r1,|L3.28|
|
||||
000012 2904 CMP r1,#4
|
||||
000014 d006 BEQ |L3.36|
|
||||
000016 2908 CMP r1,#8
|
||||
000018 d128 BNE |L3.108|
|
||||
00001a e007 B |L3.44|
|
||||
|L3.28|
|
||||
;;;322 {
|
||||
;;;323 case 0x00: /* HSI used as system clock */
|
||||
;;;324 SystemCoreClock = HSI_VALUE;
|
||||
00001c 4b1d LDR r3,|L3.148|
|
||||
00001e 4c1e LDR r4,|L3.152|
|
||||
000020 6023 STR r3,[r4,#0] ; SystemCoreClock
|
||||
;;;325 break;
|
||||
000022 e027 B |L3.116|
|
||||
|L3.36|
|
||||
;;;326 case 0x04: /* HSE used as system clock */
|
||||
;;;327 SystemCoreClock = HSE_VALUE;
|
||||
000024 4b1b LDR r3,|L3.148|
|
||||
000026 4c1c LDR r4,|L3.152|
|
||||
000028 6023 STR r3,[r4,#0] ; SystemCoreClock
|
||||
;;;328 break;
|
||||
00002a e023 B |L3.116|
|
||||
|L3.44|
|
||||
;;;329 case 0x08: /* PLL used as system clock */
|
||||
;;;330
|
||||
;;;331 /* Get PLL clock source and multiplication factor ----------------------*/
|
||||
;;;332 pllmull = RCC->CFGR & RCC_CFGR_PLLMULL;
|
||||
00002c 4b18 LDR r3,|L3.144|
|
||||
00002e 685b LDR r3,[r3,#4]
|
||||
000030 f4031070 AND r0,r3,#0x3c0000
|
||||
;;;333 pllsource = RCC->CFGR & RCC_CFGR_PLLSRC;
|
||||
000034 4b16 LDR r3,|L3.144|
|
||||
000036 685b LDR r3,[r3,#4]
|
||||
000038 f4033280 AND r2,r3,#0x10000
|
||||
;;;334
|
||||
;;;335 #ifndef STM32F10X_CL
|
||||
;;;336 pllmull = ( pllmull >> 18) + 2;
|
||||
00003c 2302 MOVS r3,#2
|
||||
00003e eb034090 ADD r0,r3,r0,LSR #18
|
||||
;;;337
|
||||
;;;338 if (pllsource == 0x00)
|
||||
000042 b922 CBNZ r2,|L3.78|
|
||||
;;;339 {
|
||||
;;;340 /* HSI oscillator clock divided by 2 selected as PLL clock entry */
|
||||
;;;341 SystemCoreClock = (HSI_VALUE >> 1) * pllmull;
|
||||
000044 4b15 LDR r3,|L3.156|
|
||||
000046 4343 MULS r3,r0,r3
|
||||
000048 4c13 LDR r4,|L3.152|
|
||||
00004a 6023 STR r3,[r4,#0] ; SystemCoreClock
|
||||
00004c e00d B |L3.106|
|
||||
|L3.78|
|
||||
;;;342 }
|
||||
;;;343 else
|
||||
;;;344 {
|
||||
;;;345 #if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
|
||||
;;;346 prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1;
|
||||
;;;347 /* HSE oscillator clock selected as PREDIV1 clock entry */
|
||||
;;;348 SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull;
|
||||
;;;349 #else
|
||||
;;;350 /* HSE selected as PLL clock entry */
|
||||
;;;351 if ((RCC->CFGR & RCC_CFGR_PLLXTPRE) != (uint32_t)RESET)
|
||||
00004e 4b10 LDR r3,|L3.144|
|
||||
000050 685b LDR r3,[r3,#4]
|
||||
000052 f4033300 AND r3,r3,#0x20000
|
||||
000056 b123 CBZ r3,|L3.98|
|
||||
;;;352 {/* HSE oscillator clock divided by 2 */
|
||||
;;;353 SystemCoreClock = (HSE_VALUE >> 1) * pllmull;
|
||||
000058 4b10 LDR r3,|L3.156|
|
||||
00005a 4343 MULS r3,r0,r3
|
||||
00005c 4c0e LDR r4,|L3.152|
|
||||
00005e 6023 STR r3,[r4,#0] ; SystemCoreClock
|
||||
000060 e003 B |L3.106|
|
||||
|L3.98|
|
||||
;;;354 }
|
||||
;;;355 else
|
||||
;;;356 {
|
||||
;;;357 SystemCoreClock = HSE_VALUE * pllmull;
|
||||
000062 4b0c LDR r3,|L3.148|
|
||||
000064 4343 MULS r3,r0,r3
|
||||
000066 4c0c LDR r4,|L3.152|
|
||||
000068 6023 STR r3,[r4,#0] ; SystemCoreClock
|
||||
|L3.106|
|
||||
;;;358 }
|
||||
;;;359 #endif
|
||||
;;;360 }
|
||||
;;;361 #else
|
||||
;;;362 pllmull = pllmull >> 18;
|
||||
;;;363
|
||||
;;;364 if (pllmull != 0x0D)
|
||||
;;;365 {
|
||||
;;;366 pllmull += 2;
|
||||
;;;367 }
|
||||
;;;368 else
|
||||
;;;369 { /* PLL multiplication factor = PLL input clock * 6.5 */
|
||||
;;;370 pllmull = 13 / 2;
|
||||
;;;371 }
|
||||
;;;372
|
||||
;;;373 if (pllsource == 0x00)
|
||||
;;;374 {
|
||||
;;;375 /* HSI oscillator clock divided by 2 selected as PLL clock entry */
|
||||
;;;376 SystemCoreClock = (HSI_VALUE >> 1) * pllmull;
|
||||
;;;377 }
|
||||
;;;378 else
|
||||
;;;379 {/* PREDIV1 selected as PLL clock entry */
|
||||
;;;380
|
||||
;;;381 /* Get PREDIV1 clock source and division factor */
|
||||
;;;382 prediv1source = RCC->CFGR2 & RCC_CFGR2_PREDIV1SRC;
|
||||
;;;383 prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1;
|
||||
;;;384
|
||||
;;;385 if (prediv1source == 0)
|
||||
;;;386 {
|
||||
;;;387 /* HSE oscillator clock selected as PREDIV1 clock entry */
|
||||
;;;388 SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull;
|
||||
;;;389 }
|
||||
;;;390 else
|
||||
;;;391 {/* PLL2 clock selected as PREDIV1 clock entry */
|
||||
;;;392
|
||||
;;;393 /* Get PREDIV2 division factor and PLL2 multiplication factor */
|
||||
;;;394 prediv2factor = ((RCC->CFGR2 & RCC_CFGR2_PREDIV2) >> 4) + 1;
|
||||
;;;395 pll2mull = ((RCC->CFGR2 & RCC_CFGR2_PLL2MUL) >> 8 ) + 2;
|
||||
;;;396 SystemCoreClock = (((HSE_VALUE / prediv2factor) * pll2mull) / prediv1factor) * pllmull;
|
||||
;;;397 }
|
||||
;;;398 }
|
||||
;;;399 #endif /* STM32F10X_CL */
|
||||
;;;400 break;
|
||||
00006a e003 B |L3.116|
|
||||
|L3.108|
|
||||
;;;401
|
||||
;;;402 default:
|
||||
;;;403 SystemCoreClock = HSI_VALUE;
|
||||
00006c 4b09 LDR r3,|L3.148|
|
||||
00006e 4c0a LDR r4,|L3.152|
|
||||
000070 6023 STR r3,[r4,#0] ; SystemCoreClock
|
||||
;;;404 break;
|
||||
000072 bf00 NOP
|
||||
|L3.116|
|
||||
000074 bf00 NOP ;325
|
||||
;;;405 }
|
||||
;;;406
|
||||
;;;407 /* Compute HCLK clock frequency ----------------*/
|
||||
;;;408 /* Get HCLK prescaler */
|
||||
;;;409 tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
|
||||
000076 4b06 LDR r3,|L3.144|
|
||||
000078 685b LDR r3,[r3,#4]
|
||||
00007a f3c31303 UBFX r3,r3,#4,#4
|
||||
00007e 4c08 LDR r4,|L3.160|
|
||||
000080 5ce1 LDRB r1,[r4,r3]
|
||||
;;;410 /* HCLK clock frequency */
|
||||
;;;411 SystemCoreClock >>= tmp;
|
||||
000082 4b05 LDR r3,|L3.152|
|
||||
000084 681b LDR r3,[r3,#0] ; SystemCoreClock
|
||||
000086 40cb LSRS r3,r3,r1
|
||||
000088 4c03 LDR r4,|L3.152|
|
||||
00008a 6023 STR r3,[r4,#0] ; SystemCoreClock
|
||||
;;;412 }
|
||||
00008c bd10 POP {r4,pc}
|
||||
;;;413
|
||||
ENDP
|
||||
|
||||
00008e 0000 DCW 0x0000
|
||||
|L3.144|
|
||||
DCD 0x40021000
|
||||
|L3.148|
|
||||
DCD 0x007a1200
|
||||
|L3.152|
|
||||
DCD SystemCoreClock
|
||||
|L3.156|
|
||||
DCD 0x003d0900
|
||||
|L3.160|
|
||||
DCD AHBPrescTable
|
||||
|
||||
AREA ||i.SystemInit||, CODE, READONLY, ALIGN=2
|
||||
|
||||
SystemInit PROC
|
||||
;;;211 */
|
||||
;;;212 void SystemInit (void)
|
||||
000000 b510 PUSH {r4,lr}
|
||||
;;;213 {
|
||||
;;;214 /* Reset the RCC clock configuration to the default reset state(for debug purpose) */
|
||||
;;;215 /* Set HSION bit */
|
||||
;;;216 RCC->CR |= (uint32_t)0x00000001;
|
||||
000002 4813 LDR r0,|L4.80|
|
||||
000004 6800 LDR r0,[r0,#0]
|
||||
000006 f0400001 ORR r0,r0,#1
|
||||
00000a 4911 LDR r1,|L4.80|
|
||||
00000c 6008 STR r0,[r1,#0]
|
||||
;;;217
|
||||
;;;218 /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */
|
||||
;;;219 #ifndef STM32F10X_CL
|
||||
;;;220 RCC->CFGR &= (uint32_t)0xF8FF0000;
|
||||
00000e 4608 MOV r0,r1
|
||||
000010 6840 LDR r0,[r0,#4]
|
||||
000012 4910 LDR r1,|L4.84|
|
||||
000014 4008 ANDS r0,r0,r1
|
||||
000016 490e LDR r1,|L4.80|
|
||||
000018 6048 STR r0,[r1,#4]
|
||||
;;;221 #else
|
||||
;;;222 RCC->CFGR &= (uint32_t)0xF0FF0000;
|
||||
;;;223 #endif /* STM32F10X_CL */
|
||||
;;;224
|
||||
;;;225 /* Reset HSEON, CSSON and PLLON bits */
|
||||
;;;226 RCC->CR &= (uint32_t)0xFEF6FFFF;
|
||||
00001a 4608 MOV r0,r1
|
||||
00001c 6800 LDR r0,[r0,#0]
|
||||
00001e 490e LDR r1,|L4.88|
|
||||
000020 4008 ANDS r0,r0,r1
|
||||
000022 490b LDR r1,|L4.80|
|
||||
000024 6008 STR r0,[r1,#0]
|
||||
;;;227
|
||||
;;;228 /* Reset HSEBYP bit */
|
||||
;;;229 RCC->CR &= (uint32_t)0xFFFBFFFF;
|
||||
000026 4608 MOV r0,r1
|
||||
000028 6800 LDR r0,[r0,#0]
|
||||
00002a f4202080 BIC r0,r0,#0x40000
|
||||
00002e 6008 STR r0,[r1,#0]
|
||||
;;;230
|
||||
;;;231 /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */
|
||||
;;;232 RCC->CFGR &= (uint32_t)0xFF80FFFF;
|
||||
000030 4608 MOV r0,r1
|
||||
000032 6840 LDR r0,[r0,#4]
|
||||
000034 f42000fe BIC r0,r0,#0x7f0000
|
||||
000038 6048 STR r0,[r1,#4]
|
||||
;;;233
|
||||
;;;234 #ifdef STM32F10X_CL
|
||||
;;;235 /* Reset PLL2ON and PLL3ON bits */
|
||||
;;;236 RCC->CR &= (uint32_t)0xEBFFFFFF;
|
||||
;;;237
|
||||
;;;238 /* Disable all interrupts and clear pending bits */
|
||||
;;;239 RCC->CIR = 0x00FF0000;
|
||||
;;;240
|
||||
;;;241 /* Reset CFGR2 register */
|
||||
;;;242 RCC->CFGR2 = 0x00000000;
|
||||
;;;243 #elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
|
||||
;;;244 /* Disable all interrupts and clear pending bits */
|
||||
;;;245 RCC->CIR = 0x009F0000;
|
||||
;;;246
|
||||
;;;247 /* Reset CFGR2 register */
|
||||
;;;248 RCC->CFGR2 = 0x00000000;
|
||||
;;;249 #else
|
||||
;;;250 /* Disable all interrupts and clear pending bits */
|
||||
;;;251 RCC->CIR = 0x009F0000;
|
||||
00003a f44f001f MOV r0,#0x9f0000
|
||||
00003e 6088 STR r0,[r1,#8]
|
||||
;;;252 #endif /* STM32F10X_CL */
|
||||
;;;253
|
||||
;;;254 #if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
|
||||
;;;255 #ifdef DATA_IN_ExtSRAM
|
||||
;;;256 SystemInit_ExtMemCtl();
|
||||
;;;257 #endif /* DATA_IN_ExtSRAM */
|
||||
;;;258 #endif
|
||||
;;;259
|
||||
;;;260 /* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers */
|
||||
;;;261 /* Configure the Flash Latency cycles and enable prefetch buffer */
|
||||
;;;262 SetSysClock();
|
||||
000040 f7fffffe BL SetSysClock
|
||||
;;;263
|
||||
;;;264 #ifdef VECT_TAB_SRAM
|
||||
;;;265 SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
|
||||
;;;266 #else
|
||||
;;;267 SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
|
||||
000044 f04f6000 MOV r0,#0x8000000
|
||||
000048 4904 LDR r1,|L4.92|
|
||||
00004a 6008 STR r0,[r1,#0]
|
||||
;;;268 #endif
|
||||
;;;269 }
|
||||
00004c bd10 POP {r4,pc}
|
||||
;;;270
|
||||
ENDP
|
||||
|
||||
00004e 0000 DCW 0x0000
|
||||
|L4.80|
|
||||
DCD 0x40021000
|
||||
|L4.84|
|
||||
DCD 0xf8ff0000
|
||||
|L4.88|
|
||||
DCD 0xfef6ffff
|
||||
|L4.92|
|
||||
DCD 0xe000ed08
|
||||
|
||||
AREA ||.data||, DATA, ALIGN=2
|
||||
|
||||
SystemCoreClock
|
||||
DCD 0x044aa200
|
||||
AHBPrescTable
|
||||
000004 00000000 DCB 0x00,0x00,0x00,0x00
|
||||
000008 00000000 DCB 0x00,0x00,0x00,0x00
|
||||
00000c 01020304 DCB 0x01,0x02,0x03,0x04
|
||||
000010 06070809 DCB 0x06,0x07,0x08,0x09
|
||||
|
||||
;*** Start embedded assembler ***
|
||||
|
||||
#line 1 "..\\..\\User\\bsp\\system_stm32f10x.c"
|
||||
AREA ||.rev16_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___18_system_stm32f10x_c_5d646a67____REV16|
|
||||
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|
||||
|__asm___18_system_stm32f10x_c_5d646a67____REV16| PROC
|
||||
#line 115
|
||||
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
AREA ||.revsh_text||, CODE
|
||||
THUMB
|
||||
EXPORT |__asm___18_system_stm32f10x_c_5d646a67____REVSH|
|
||||
#line 128
|
||||
|__asm___18_system_stm32f10x_c_5d646a67____REVSH| PROC
|
||||
#line 129
|
||||
|
||||
revsh r0, r0
|
||||
bx lr
|
||||
ENDP
|
||||
|
||||
;*** End embedded assembler ***
|
||||
1181
Project/MDK-ARM/Flash/Obj/output.hex
Normal file
1181
Project/MDK-ARM/Flash/Obj/output.hex
Normal file
File diff suppressed because it is too large
Load Diff
21
Project/MDK-ARM/RTE/_Flash/RTE_Components.h
Normal file
21
Project/MDK-ARM/RTE/_Flash/RTE_Components.h
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
/*
|
||||
* Auto generated Run-Time-Environment Configuration File
|
||||
* *** Do not modify ! ***
|
||||
*
|
||||
* Project: 'project'
|
||||
* Target: 'Flash'
|
||||
*/
|
||||
|
||||
#ifndef RTE_COMPONENTS_H
|
||||
#define RTE_COMPONENTS_H
|
||||
|
||||
|
||||
/*
|
||||
* Define the Device Header File:
|
||||
*/
|
||||
#define CMSIS_device_header "stm32f10x.h"
|
||||
|
||||
|
||||
|
||||
#endif /* RTE_COMPONENTS_H */
|
||||
27
Project/MDK-ARM/keilkilll.bat
Normal file
27
Project/MDK-ARM/keilkilll.bat
Normal file
@@ -0,0 +1,27 @@
|
||||
del *.bak /s
|
||||
del *.ddk /s
|
||||
del *.edk /s
|
||||
del *.lst /s
|
||||
del *.lnp /s
|
||||
del *.mpf /s
|
||||
del *.mpj /s
|
||||
del *.obj /s
|
||||
del *.omf /s
|
||||
::del *.opt /s ::不允许删除JLINK的设置
|
||||
del *.plg /s
|
||||
del *.rpt /s
|
||||
del *.tmp /s
|
||||
del *.__i /s
|
||||
del *.crf /s
|
||||
del *.o /s
|
||||
del *.d /s
|
||||
del *.axf /s
|
||||
del *.tra /s
|
||||
del *.dep /s
|
||||
del JLinkLog.txt /s
|
||||
|
||||
del *.iex /s
|
||||
del *.htm /s
|
||||
::del *.sct /s
|
||||
del *.map /s
|
||||
exit
|
||||
3
Project/MDK-ARM/pemicro_connection_settings.ini
Normal file
3
Project/MDK-ARM/pemicro_connection_settings.ini
Normal file
@@ -0,0 +1,3 @@
|
||||
[STARTUP]
|
||||
CPUTARGETTYPENAME=
|
||||
|
||||
File diff suppressed because one or more lines are too long
1762
Project/MDK-ARM/project.uvgui.microsoft
Normal file
1762
Project/MDK-ARM/project.uvgui.microsoft
Normal file
File diff suppressed because one or more lines are too long
3799
Project/MDK-ARM/project.uvguix.28906
Normal file
3799
Project/MDK-ARM/project.uvguix.28906
Normal file
File diff suppressed because one or more lines are too long
1941
Project/MDK-ARM/project.uvguix.Multi
Normal file
1941
Project/MDK-ARM/project.uvguix.Multi
Normal file
File diff suppressed because one or more lines are too long
3511
Project/MDK-ARM/project.uvguix.Multi_Field_03
Normal file
3511
Project/MDK-ARM/project.uvguix.Multi_Field_03
Normal file
File diff suppressed because one or more lines are too long
1896
Project/MDK-ARM/project.uvguix.ShenJianxin
Normal file
1896
Project/MDK-ARM/project.uvguix.ShenJianxin
Normal file
File diff suppressed because one or more lines are too long
3799
Project/MDK-ARM/project.uvguix.lianghao
Normal file
3799
Project/MDK-ARM/project.uvguix.lianghao
Normal file
File diff suppressed because one or more lines are too long
1995
Project/MDK-ARM/project.uvguix.w1619
Normal file
1995
Project/MDK-ARM/project.uvguix.w1619
Normal file
File diff suppressed because one or more lines are too long
1846
Project/MDK-ARM/project.uvguix.wangx
Normal file
1846
Project/MDK-ARM/project.uvguix.wangx
Normal file
File diff suppressed because one or more lines are too long
955
Project/MDK-ARM/project.uvopt
Normal file
955
Project/MDK-ARM/project.uvopt
Normal file
@@ -0,0 +1,955 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_opt.xsd">
|
||||
|
||||
<SchemaVersion>1.0</SchemaVersion>
|
||||
|
||||
<Header>### uVision Project, (C) Keil Software</Header>
|
||||
|
||||
<Extensions>
|
||||
<cExt>*.c</cExt>
|
||||
<aExt>*.s*; *.src; *.a*</aExt>
|
||||
<oExt>*.obj</oExt>
|
||||
<lExt>*.lib</lExt>
|
||||
<tExt>*.txt; *.h; *.inc</tExt>
|
||||
<pExt>*.plm</pExt>
|
||||
<CppX>*.cpp</CppX>
|
||||
<nMigrate>0</nMigrate>
|
||||
</Extensions>
|
||||
|
||||
<DaveTm>
|
||||
<dwLowDateTime>0</dwLowDateTime>
|
||||
<dwHighDateTime>0</dwHighDateTime>
|
||||
</DaveTm>
|
||||
|
||||
<Target>
|
||||
<TargetName>Flash</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<TargetOption>
|
||||
<CLKADS>8000000</CLKADS>
|
||||
<OPTTT>
|
||||
<gFlags>1</gFlags>
|
||||
<BeepAtEnd>1</BeepAtEnd>
|
||||
<RunSim>1</RunSim>
|
||||
<RunTarget>0</RunTarget>
|
||||
<RunAbUc>0</RunAbUc>
|
||||
</OPTTT>
|
||||
<OPTHX>
|
||||
<HexSelection>1</HexSelection>
|
||||
<FlashByte>65535</FlashByte>
|
||||
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||
<HexOffset>0</HexOffset>
|
||||
</OPTHX>
|
||||
<OPTLEX>
|
||||
<PageWidth>79</PageWidth>
|
||||
<PageLength>66</PageLength>
|
||||
<TabStop>8</TabStop>
|
||||
<ListingPath>.\Flash\List\</ListingPath>
|
||||
</OPTLEX>
|
||||
<ListingPage>
|
||||
<CreateCListing>1</CreateCListing>
|
||||
<CreateAListing>1</CreateAListing>
|
||||
<CreateLListing>1</CreateLListing>
|
||||
<CreateIListing>0</CreateIListing>
|
||||
<AsmCond>1</AsmCond>
|
||||
<AsmSymb>1</AsmSymb>
|
||||
<AsmXref>0</AsmXref>
|
||||
<CCond>1</CCond>
|
||||
<CCode>0</CCode>
|
||||
<CListInc>0</CListInc>
|
||||
<CSymb>0</CSymb>
|
||||
<LinkerCodeListing>0</LinkerCodeListing>
|
||||
</ListingPage>
|
||||
<OPTXL>
|
||||
<LMap>1</LMap>
|
||||
<LComments>1</LComments>
|
||||
<LGenerateSymbols>1</LGenerateSymbols>
|
||||
<LLibSym>1</LLibSym>
|
||||
<LLines>1</LLines>
|
||||
<LLocSym>1</LLocSym>
|
||||
<LPubSym>1</LPubSym>
|
||||
<LXref>0</LXref>
|
||||
<LExpSel>0</LExpSel>
|
||||
</OPTXL>
|
||||
<OPTFL>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<IsCurrentTarget>1</IsCurrentTarget>
|
||||
</OPTFL>
|
||||
<CpuCode>255</CpuCode>
|
||||
<Books>
|
||||
<Book>
|
||||
<Number>0</Number>
|
||||
<Title>Reference Manual</Title>
|
||||
<Path>DATASHTS\ST\STM32F10xxx.PDF</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>1</Number>
|
||||
<Title>Technical Reference Manual</Title>
|
||||
<Path>datashts\arm\cortex_m3\r1p1\DDI0337E_CORTEX_M3_R1P1_TRM.PDF</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>2</Number>
|
||||
<Title>Generic User Guide</Title>
|
||||
<Path>datashts\arm\cortex_m3\r2p1\DUI0552A_CORTEX_M3_DGUG.PDF</Path>
|
||||
</Book>
|
||||
</Books>
|
||||
<DebugOpt>
|
||||
<uSim>0</uSim>
|
||||
<uTrg>1</uTrg>
|
||||
<sLdApp>0</sLdApp>
|
||||
<sGomain>1</sGomain>
|
||||
<sRbreak>1</sRbreak>
|
||||
<sRwatch>1</sRwatch>
|
||||
<sRmem>1</sRmem>
|
||||
<sRfunc>1</sRfunc>
|
||||
<sRbox>1</sRbox>
|
||||
<tLdApp>1</tLdApp>
|
||||
<tGomain>1</tGomain>
|
||||
<tRbreak>1</tRbreak>
|
||||
<tRwatch>1</tRwatch>
|
||||
<tRmem>1</tRmem>
|
||||
<tRfunc>0</tRfunc>
|
||||
<tRbox>1</tRbox>
|
||||
<tRtrace>0</tRtrace>
|
||||
<sRSysVw>1</sRSysVw>
|
||||
<tRSysVw>1</tRSysVw>
|
||||
<sRunDeb>0</sRunDeb>
|
||||
<sLrtime>0</sLrtime>
|
||||
<bEvRecOn>1</bEvRecOn>
|
||||
<nTsel>5</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
<sDlgPa></sDlgPa>
|
||||
<sIfile></sIfile>
|
||||
<tDll></tDll>
|
||||
<tDllPa></tDllPa>
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ST-LINKIII-KEIL_SWO</Key>
|
||||
<Name>-U53FF6F067287555124401367 -I0 -O78 -S1 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>UL2CM3</Key>
|
||||
<Name>-O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGTARM</Key>
|
||||
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=15,39,651,702,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=926,146,1337,541,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(124=-1,-1,-1,-1,0)(125=949,148,1360,543,0)(126=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=1082,400,1520,804,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ARMDBGFLAGS</Key>
|
||||
<Name></Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGUARM</Key>
|
||||
<Name>(106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>JL2CM3</Key>
|
||||
<Name>-U4294967295 -O78 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000</Name>
|
||||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint/>
|
||||
<WatchWindow1>
|
||||
<Ww>
|
||||
<count>0</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>FileName</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>1</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>pdev->host</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>2</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>g_tRadio.usFreq,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>3</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>xx,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>4</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>yy,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>5</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>x,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>6</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>y,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>7</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>g_LcdWidth</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>8</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>g_LcdHeight</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>9</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>g_tSF.ChipName</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>10</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>FileName</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>11</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>y</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>12</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>tpX</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>13</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>g_tMag3110</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>14</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>buf</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>15</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>g_Wave,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>16</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>g_DSO,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>17</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>SPI1</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>18</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>s_RegReadNow</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>19</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>s_RegMapNow</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>20</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>_freq,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>21</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>_freq</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>22</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>g_tMoto</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>23</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>g_APList</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>24</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>g_tUart2</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>25</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>g_tCanRxMsg</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<MemoryWindow1>
|
||||
<Mm>
|
||||
<WinNumber>1</WinNumber>
|
||||
<SubType>0</SubType>
|
||||
<ItemText>0x200074</ItemText>
|
||||
<AccSizeX>0</AccSizeX>
|
||||
</Mm>
|
||||
</MemoryWindow1>
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
<DebugFlag>
|
||||
<trace>0</trace>
|
||||
<periodic>0</periodic>
|
||||
<aLwin>1</aLwin>
|
||||
<aCover>0</aCover>
|
||||
<aSer1>0</aSer1>
|
||||
<aSer2>0</aSer2>
|
||||
<aPa>0</aPa>
|
||||
<viewmode>1</viewmode>
|
||||
<vrSel>0</vrSel>
|
||||
<aSym>0</aSym>
|
||||
<aTbox>0</aTbox>
|
||||
<AscS1>0</AscS1>
|
||||
<AscS2>0</AscS2>
|
||||
<AscS3>0</AscS3>
|
||||
<aSer3>0</aSer3>
|
||||
<eProf>0</eProf>
|
||||
<aLa>0</aLa>
|
||||
<aPa1>0</aPa1>
|
||||
<AscS4>0</AscS4>
|
||||
<aSer4>0</aSer4>
|
||||
<StkLoc>0</StkLoc>
|
||||
<TrcWin>0</TrcWin>
|
||||
<newCpu>0</newCpu>
|
||||
<uProt>0</uProt>
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
<bAutoGenD>0</bAutoGenD>
|
||||
<LntExFlags>0</LntExFlags>
|
||||
<pMisraName></pMisraName>
|
||||
<pszMrule></pszMrule>
|
||||
<pSingCmds></pSingCmds>
|
||||
<pMultCmds></pMultCmds>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
<Target>
|
||||
<TargetName>CpuRAM</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<TargetOption>
|
||||
<CLKADS>25000000</CLKADS>
|
||||
<OPTTT>
|
||||
<gFlags>1</gFlags>
|
||||
<BeepAtEnd>1</BeepAtEnd>
|
||||
<RunSim>1</RunSim>
|
||||
<RunTarget>0</RunTarget>
|
||||
<RunAbUc>0</RunAbUc>
|
||||
</OPTTT>
|
||||
<OPTHX>
|
||||
<HexSelection>1</HexSelection>
|
||||
<FlashByte>65535</FlashByte>
|
||||
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||
<HexOffset>0</HexOffset>
|
||||
</OPTHX>
|
||||
<OPTLEX>
|
||||
<PageWidth>79</PageWidth>
|
||||
<PageLength>66</PageLength>
|
||||
<TabStop>8</TabStop>
|
||||
<ListingPath>.\CpuRAM\List\</ListingPath>
|
||||
</OPTLEX>
|
||||
<ListingPage>
|
||||
<CreateCListing>1</CreateCListing>
|
||||
<CreateAListing>1</CreateAListing>
|
||||
<CreateLListing>1</CreateLListing>
|
||||
<CreateIListing>0</CreateIListing>
|
||||
<AsmCond>1</AsmCond>
|
||||
<AsmSymb>1</AsmSymb>
|
||||
<AsmXref>0</AsmXref>
|
||||
<CCond>1</CCond>
|
||||
<CCode>0</CCode>
|
||||
<CListInc>0</CListInc>
|
||||
<CSymb>0</CSymb>
|
||||
<LinkerCodeListing>0</LinkerCodeListing>
|
||||
</ListingPage>
|
||||
<OPTXL>
|
||||
<LMap>1</LMap>
|
||||
<LComments>1</LComments>
|
||||
<LGenerateSymbols>1</LGenerateSymbols>
|
||||
<LLibSym>1</LLibSym>
|
||||
<LLines>1</LLines>
|
||||
<LLocSym>1</LLocSym>
|
||||
<LPubSym>1</LPubSym>
|
||||
<LXref>0</LXref>
|
||||
<LExpSel>0</LExpSel>
|
||||
</OPTXL>
|
||||
<OPTFL>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<IsCurrentTarget>0</IsCurrentTarget>
|
||||
</OPTFL>
|
||||
<CpuCode>255</CpuCode>
|
||||
<Books>
|
||||
<Book>
|
||||
<Number>0</Number>
|
||||
<Title>Reference Manual</Title>
|
||||
<Path>DATASHTS\ST\STM32F4xx.PDF</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>1</Number>
|
||||
<Title>Technical Reference Manual</Title>
|
||||
<Path>datashts\arm\cortex_m4\r0p1\DDI0439C_CORTEX_M4_R0P1_TRM.PDF</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>2</Number>
|
||||
<Title>Generic User Guide</Title>
|
||||
<Path>datashts\arm\cortex_m4\r0p1\DUI0553A_CORTEX_M4_DGUG.PDF</Path>
|
||||
</Book>
|
||||
</Books>
|
||||
<DebugOpt>
|
||||
<uSim>0</uSim>
|
||||
<uTrg>1</uTrg>
|
||||
<sLdApp>0</sLdApp>
|
||||
<sGomain>1</sGomain>
|
||||
<sRbreak>1</sRbreak>
|
||||
<sRwatch>1</sRwatch>
|
||||
<sRmem>1</sRmem>
|
||||
<sRfunc>1</sRfunc>
|
||||
<sRbox>1</sRbox>
|
||||
<tLdApp>0</tLdApp>
|
||||
<tGomain>1</tGomain>
|
||||
<tRbreak>1</tRbreak>
|
||||
<tRwatch>1</tRwatch>
|
||||
<tRmem>1</tRmem>
|
||||
<tRfunc>0</tRfunc>
|
||||
<tRbox>1</tRbox>
|
||||
<tRtrace>0</tRtrace>
|
||||
<sRSysVw>1</sRSysVw>
|
||||
<tRSysVw>1</tRSysVw>
|
||||
<sRunDeb>0</sRunDeb>
|
||||
<sLrtime>0</sLrtime>
|
||||
<bEvRecOn>1</bEvRecOn>
|
||||
<nTsel>7</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
<sDlgPa></sDlgPa>
|
||||
<sIfile></sIfile>
|
||||
<tDll></tDll>
|
||||
<tDllPa></tDllPa>
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile>.\CpuRAM.ini</tIfile>
|
||||
<pMon>Segger\JL2CM3.dll</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGTARM</Key>
|
||||
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ARMDBGFLAGS</Key>
|
||||
<Name></Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGUARM</Key>
|
||||
<Name>(106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>JL2CM3</Key>
|
||||
<Name>-U68000531 -O207 -S8 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000</Name>
|
||||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint>
|
||||
<Bp>
|
||||
<Number>0</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>247</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>0</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>0</BreakIfRCount>
|
||||
<Filename>E:\MyData\STM32-F4-A\软件\src\F4-999_STM32-V5出厂测试程序\User\LwIP\lwip-1.4.1\src\core\netif.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression></Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>1</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>53</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>0</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>0</BreakIfRCount>
|
||||
<Filename>E:\MyData\01.产品资料\01.开发板\STM32-V5\软件\src\V1.2\V5-999_出厂程序(裸机)\User\FatFS\src\diskio.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression></Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>2</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>165</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>0</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>0</BreakIfRCount>
|
||||
<Filename>E:\MyData\01.产品资料\01.开发板\STM32-V5\软件\src\V1.2\V5-999_出厂程序(裸机)\User\FatFS\src\diskio.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression></Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>3</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>180</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>0</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>0</BreakIfRCount>
|
||||
<Filename>E:\MyData\01.产品资料\01.开发板\STM32-V5\软件\src\V1.2\V5-999_出厂程序(裸机)\User\FatFS\src\diskio.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression></Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>4</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>522</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>0</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>0</BreakIfRCount>
|
||||
<Filename>E:\MyData\01.产品资料\01.开发板\STM32-V5\软件\src\V1.2\V5-999_出厂程序(裸机)\User\bsp_stm32f4xx\src\bsp_ra8875_flash.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression></Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>5</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>166</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>0</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>0</BreakIfRCount>
|
||||
<Filename>E:\MyData\01.产品资料\01.开发板\STM32-V4\02.软件\V4-999_出厂程序(裸机)(V0.1)\V4-999_出厂程序(裸机)\User\bsp\src\bsp_rda5807.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression></Expression>
|
||||
</Bp>
|
||||
</Breakpoint>
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
<DebugFlag>
|
||||
<trace>0</trace>
|
||||
<periodic>0</periodic>
|
||||
<aLwin>1</aLwin>
|
||||
<aCover>0</aCover>
|
||||
<aSer1>0</aSer1>
|
||||
<aSer2>0</aSer2>
|
||||
<aPa>0</aPa>
|
||||
<viewmode>1</viewmode>
|
||||
<vrSel>0</vrSel>
|
||||
<aSym>0</aSym>
|
||||
<aTbox>0</aTbox>
|
||||
<AscS1>0</AscS1>
|
||||
<AscS2>0</AscS2>
|
||||
<AscS3>0</AscS3>
|
||||
<aSer3>0</aSer3>
|
||||
<eProf>0</eProf>
|
||||
<aLa>0</aLa>
|
||||
<aPa1>0</aPa1>
|
||||
<AscS4>0</AscS4>
|
||||
<aSer4>0</aSer4>
|
||||
<StkLoc>0</StkLoc>
|
||||
<TrcWin>0</TrcWin>
|
||||
<newCpu>0</newCpu>
|
||||
<uProt>0</uProt>
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
<bAutoGenD>0</bAutoGenD>
|
||||
<LntExFlags>0</LntExFlags>
|
||||
<pMisraName></pMisraName>
|
||||
<pszMrule></pszMrule>
|
||||
<pSingCmds></pSingCmds>
|
||||
<pMultCmds></pMultCmds>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
<Group>
|
||||
<GroupName>App</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>1</GroupNumber>
|
||||
<FileNumber>1</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\app\src\main.c</PathWithFileName>
|
||||
<FilenameWithoutPath>main.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>BSP</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>2</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\src\bsp_digital_tube.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_digital_tube.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>3</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\src\bsp_beep.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_beep.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>4</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\src\bsp_key.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_key.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>5</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\src\bsp_drv8880.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_drv8880.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>6</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\src\bsp_step_moto.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_step_moto.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\src\bsp_timer.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_timer.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\bsp.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\stm32f10x_it.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f10x_it.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\stm32f10x_assert.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f10x_assert.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\src\bsp_uart_fifo.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_uart_fifo.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\src\bsp_tim_pwm.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_tim_pwm.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\src\bsp_eeprom_24xx.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_eeprom_24xx.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\src\bsp_i2c_gpio.c</PathWithFileName>
|
||||
<FilenameWithoutPath>bsp_i2c_gpio.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>MDK-ARM</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_hd.s</PathWithFileName>
|
||||
<FilenameWithoutPath>startup_stm32f10x_hd.s</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>StdPeriph_Driver</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f10x_gpio.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f10x_rcc.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c</PathWithFileName>
|
||||
<FilenameWithoutPath>misc.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f10x_tim.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f10x_usart.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c</PathWithFileName>
|
||||
<FilenameWithoutPath>stm32f10x_dac.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>CMSIS</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\bsp\system_stm32f10x.c</PathWithFileName>
|
||||
<FilenameWithoutPath>system_stm32f10x.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>Doc</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\Doc\01.例程功能说明.txt</PathWithFileName>
|
||||
<FilenameWithoutPath>01.例程功能说明.txt</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\Doc\02.开发环境说明.txt</PathWithFileName>
|
||||
<FilenameWithoutPath>02.开发环境说明.txt</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
</ProjectOpt>
|
||||
1060
Project/MDK-ARM/project.uvoptx
Normal file
1060
Project/MDK-ARM/project.uvoptx
Normal file
File diff suppressed because it is too large
Load Diff
1132
Project/MDK-ARM/project.uvproj.saved_uv4
Normal file
1132
Project/MDK-ARM/project.uvproj.saved_uv4
Normal file
File diff suppressed because it is too large
Load Diff
1100
Project/MDK-ARM/project.uvprojx
Normal file
1100
Project/MDK-ARM/project.uvprojx
Normal file
File diff suppressed because it is too large
Load Diff
9
Project/MDK-ARM/说明.txt
Normal file
9
Project/MDK-ARM/说明.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
project.uvproj MDK uV4工程文件,双击这个文件可启动MDK
|
||||
|
||||
project.uvopt MDK uV4工程配置参数
|
||||
|
||||
CpuRAM.ini 在CPU内部RAM调试的脚本(文本文件),当启动调试时,调试器自动执行脚本文件,将代码装载在CPU内部RAM
|
||||
|
||||
CopyHex_Flash.bat 批处理文件,编译连接成功后将Flash\Obj下的Hex文件复制到前级目录
|
||||
|
||||
CopyHex_CpuRAM.bat 批处理文件,编译连接成功后将CpuRAM\Obj下的Hex文件复制到前级目录
|
||||
BIN
Project/bin_file/Update.bin
Normal file
BIN
Project/bin_file/Update.bin
Normal file
Binary file not shown.
Reference in New Issue
Block a user