LICENSED APPLICATION END USER LICENSE AGREEMENT

本文详细解析了通过App Store提供的应用程序的许可协议,强调应用是授权而非出售给用户,并概述了用户使用权限、数据收集同意、外部服务使用条款、保修免责声明、责任限制等关键内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Apps made available through the App Store are licensed, not sold, to you. Your license to each App is subject to your prior acceptance of either this Licensed Application End User License Agreement (“Standard EULA”), or a custom end user license agreement between you and the Application Provider (“Custom EULA”), if one is provided. Your license to any Apple App under this Standard EULA or Custom EULA is granted by Apple, and your license to any Third Party App under this Standard EULA or Custom EULA is granted by the Application Provider of that Third Party App. Any App that is subject to this Standard EULA is referred to herein as the “Licensed Application.” The Application Provider or Apple as applicable (“Licensor”) reserves all rights in and to the Licensed Application not expressly granted to you under this Standard EULA.

a. Scope of License: Licensor grants to you a nontransferable license to use the Licensed Application on any Apple-branded products that you own or control and as permitted by the Usage Rules. The terms of this Standard EULA will govern any content, materials, or services accessible from or purchased within the Licensed Application as well as upgrades provided by Licensor that replace or supplement the original Licensed Application, unless such upgrade is accompanied by a Custom EULA. Except as provided in the Usage Rules, you may not distribute or make the Licensed Application available over a network where it could be used by multiple devices at the same time. You may not transfer, redistribute or sublicense the Licensed Application and, if you sell your Apple Device to a third party, you must remove the Licensed Application from the Apple Device before doing so. You may not copy (except as permitted by this license and the Usage Rules), reverse-engineer, disassemble, attempt to derive the source code of, modify, or create derivative works of the Licensed Application, any updates, or any part thereof (except as and only to the extent that any foregoing restriction is prohibited by applicable law or to the extent as may be permitted by the licensing terms governing use of any open-sourced components included with the Licensed Application).

b. Consent to Use of Data: You agree that Licensor may collect and use technical data and related information—including but not limited to technical information about your device, system and application software, and peripherals—that is gathered periodically to facilitate the provision of software updates, product support, and other services to you (if any) related to the Licensed Application. Licensor may use this information, as long as it is in a form that does not personally identify you, to improve its products or to provide services or technologies to you.

c. Termination. This Standard EULA is effective until terminated by you or Licensor. Your rights under this Standard EULA will terminate automatically if you fail to comply with any of its terms. 

d. External Services. The Licensed Application may enable access to Licensor’s and/or third-party services and websites (collectively and individually, "External Services"). You agree to use the External Services at your sole risk. Licensor is not responsible for examining or evaluating the content or accuracy of any third-party External Services, and shall not be liable for any such third-party External Services. Data displayed by any Licensed Application or External Service, including but not limited to financial, medical and location information, is for general informational purposes only and is not guaranteed by Licensor or its agents. You will not use the External Services in any manner that is inconsistent with the terms of this Standard EULA or that infringes the intellectual property rights of Licensor or any third party. You agree not to use the External Services to harass, abuse, stalk, threaten or defame any person or entity, and that Licensor is not responsible for any such use. External Services may not be available in all languages or in your Home Country, and may not be appropriate or available for use in any particular location. To the extent you choose to use such External Services, you are solely responsible for compliance with any applicable laws. Licensor reserves the right to change, suspend, remove, disable or impose access restrictions or limits on any External Services at any time without notice or liability to you. 

e. NO WARRANTY: YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT USE OF THE LICENSED APPLICATION IS AT YOUR SOLE RISK. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED APPLICATION AND ANY SERVICES PERFORMED OR PROVIDED BY THE LICENSED APPLICATION ARE PROVIDED "AS IS" AND “AS AVAILABLE,” WITH ALL FAULTS AND WITHOUT WARRANTY OF ANY KIND, AND LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS WITH RESPECT TO THE LICENSED APPLICATION AND ANY SERVICES, EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND OF NONINFRINGEMENT OF THIRD-PARTY RIGHTS. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY LICENSOR OR ITS AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY. SHOULD THE LICENSED APPLICATION OR SERVICES PROVE DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES OR LIMITATIONS ON APPLICABLE STATUTORY RIGHTS OF A CONSUMER, SO THE ABOVE EXCLUSION AND LIMITATIONS MAY NOT APPLY TO YOU.

f. Limitation of Liability. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT SHALL LICENSOR BE LIABLE FOR PERSONAL INJURY OR ANY INCIDENTAL, SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, LOSS OF DATA, BUSINESS INTERRUPTION, OR ANY OTHER COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO YOUR USE OF OR INABILITY TO USE THE LICENSED APPLICATION, HOWEVER CAUSED, REGARDLESS OF THE THEORY OF LIABILITY (CONTRACT, TORT, OR OTHERWISE) AND EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY FOR PERSONAL INJURY, OR OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In no event shall Licensor’s total liability to you for all damages (other than as may be required by applicable law in cases involving personal injury) exceed the amount of fifty dollars ($50.00). The foregoing limitations will apply even if the above stated remedy fails of its essential purpose.

g. You may not use or otherwise export or re-export the Licensed Application except as authorized by United States law and the laws of the jurisdiction in which the Licensed Application was obtained. In particular, but without limitation, the Licensed Application may not be exported or re-exported (a) into any U.S.-embargoed countries or (b) to anyone on the U.S. Treasury Department's Specially Designated Nationals List or the U.S. Department of Commerce Denied Persons List or Entity List. By using the Licensed Application, you represent and warrant that you are not located in any such country or on any such list. You also agree that you will not use these products for any purposes prohibited by United States law, including, without limitation, the development, design, manufacture, or production of nuclear, missile, or chemical or biological weapons.

h. The Licensed Application and related documentation are "Commercial Items", as that term is defined at 48 C.F.R. §2.101, consisting of "Commercial Computer Software" and "Commercial Computer Software Documentation", as such terms are used in 48 C.F.R. §12.212 or 48 C.F.R. §227.7202, as applicable. Consistent with 48 C.F.R. §12.212 or 48 C.F.R. §227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial Items and (b) with only those rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved under the copyright laws of the United States.

i. Except to the extent expressly provided in the following paragraph, this Agreement and the relationship between you and Apple shall be governed by the laws of the State of California, excluding its conflicts of law provisions. You and Apple agree to submit to the personal and exclusive jurisdiction of the courts located within the county of Santa Clara, California, to resolve any dispute or claim arising from this Agreement. If (a) you are not a U.S. citizen; (b) you do not reside in the U.S.; (c) you are not accessing the Service from the U.S.; and (d) you are a citizen of one of the countries identified below, you hereby agree that any dispute or claim arising from this Agreement shall be governed by the applicable law set forth below, without regard to any conflict of law provisions, and you hereby irrevocably submit to the non-exclusive jurisdiction of the courts located in the state, province or country identified below whose law governs:

If you are a citizen of any European Union country or Switzerland, Norway or Iceland, the governing law and forum shall be the laws and courts of your usual place of residence.

Specifically excluded from application to this Agreement is that law known as the United Nations Convention on the International Sale of Goods.

/** ****************************************************************************** * @file Project/main.c * @author MCD Application Team * @version V2.3.0 * @date 16-June-2017 * @brief Main program body ****************************************************************************** * @attention * * <h2><center>© COPYRIGHT 2014 STMicroelectronics</center></h2> * * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); * You may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.st.com/software_license_agreement_liberty_v2 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "stm8s.h" #include "stdio.h" /* Private defines -----------------------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ volatile uint16_t ms_counter = 0; static uint8_t sec_count = 0; volatile bool flag_1s = 0; // 1秒标志 volatile bool flag_30s = 0; // 30秒标志 uint8_t brightness = 56; const char fixedMsg[] = "$PFEC,musts,1,306,29,1,2,60,64.0,1,4124,,,4661,,*71\r\n"; char brightnessMsg[30]; // 时钟配置 (内部16MHz HSI) void CLK_Config(void) { CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); // 16MHz } // UART1配置 (9600 8N1) void UART1_Config(void) { UART1_DeInit(); UART1_Init( 4800, // 波特率 UART1_WORDLENGTH_8D, // 8位数据 UART1_STOPBITS_1, // 1位停止 UART1_PARITY_NO, // 无校验 UART1_SYNCMODE_CLOCK_DISABLE, // 异步模式 UART1_MODE_TX_ENABLE // 使能发送 ); UART1_Cmd(ENABLE); } // TIM4配置 (1ms中断) void TIM4_Config(void) { TIM4_TimeBaseInit(TIM4_PRESCALER_128, 125); // 16MHz/128=125kHz, 125分频=1ms TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE); TIM4_Cmd(ENABLE); } // TIM2配置 (2kHz PWM) void TIM2_Config(void) { // 配置PD3为TIM2 CH2输出 GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_OUT_PP_HIGH_FAST); TIM2_TimeBaseInit( TIM2_PRESCALER_8, // 16MHz/8=2MHz 1000 - 1 // 2MHz/1000=2kHz ); // 配置通道2 PWM模式 TIM2_OC2Init( TIM2_OCMODE_PWM1, // PWM模式1 TIM2_OUTPUTSTATE_ENABLE, 560, // 初始占空比56% (1000*0.56=560) TIM2_OCPOLARITY_HIGH // 高电平有效 ); TIM2_OC2PreloadConfig(ENABLE); TIM2_ARRPreloadConfig(ENABLE); TIM2_Cmd(ENABLE); } // 发送字符串函数 void UART1_SendString(const char* str) { while (*str) { UART1_SendData8(*str++); while (UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET); } } // 计算NMEA校验和 uint8_t calculateChecksum(const char* data) { uint8_t crc = 0; while (*data) { crc ^= *data++; } return crc; } // TIM4中断服务程序 (1ms定时) INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23) { TIM4_ClearFlag(TIM4_FLAG_UPDATE); if (++ms_counter >= 1000) { // 1秒到达 ms_counter = 0; flag_1s = 1; if (++sec_count >= 30) { // 30秒到达 sec_count = 0; flag_30s = 1; } } } void main(void) { /* Infinite loop */ char temp[20]; uint8_t cs; CLK_Config(); UART1_Config(); TIM2_Config(); TIM4_Config(); // 启用全局中断 rim(); while (1) { if (flag_1s) { flag_1s = 0; UART1_SendString(fixedMsg); } if (flag_30s) { flag_30s = 0; sprintf(temp, "IIDDC,,%u,,R", brightness); cs = calculateChecksum(temp); sprintf(brightnessMsg, "$%s*%02X\r\n", temp, cs); UART1_SendString(brightnessMsg); } } } #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval : None */ void assert_failed(u8* file, u32 line) { /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* Infinite loop */ while (1) { } } #endif /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 添加一个功能:此时单片机串口RX等待接收主机发送的$PFEC,pireq*43(此数据不变,约1分钟会接收到1次)信息,接收到此信息后,单片机串口TX发送 $PFEC,pidat,0,MU-190*69 $PFEC,musts,1,306,29,1,2,60,64.0,1,4124,,,4661,,*71 $PFEC,pidat,1,2651020-01.03*56 $PFEC,pidat,3,001822*6E (以上数据为固定值)
最新发布
07-22
;******************** (C) COPYRIGHT 2014 STMicroelectronics ******************** ;* File Name : startup_stm32f40_41xxx.s ;* Author : MCD Application Team ;* @version : V1.4.0 ;* @date : 04-August-2014 ;* Description : STM32F40xxx/41xxx devices vector table for MDK-ARM toolchain. ;* This module performs: ;* - Set the initial SP ;* - Set the initial PC == Reset_Handler ;* - Set the vector table entries with the exceptions ISR address ;* - Configure the system clock and the external SRAM mounted on ;* STM324xG-EVAL board to be used as data memory (optional, ;* to be enabled by user) ;* - Branches to __main in the C library (which eventually ;* calls main()). ;* After Reset the CortexM4 processor is in Thread mode, ;* priority is Privileged, and the Stack is set to Main. ;* <<< Use Configuration Wizard in Context Menu >>> ;******************************************************************************* ; ; Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); ; You may not use this file except in compliance with the License. ; You may obtain a copy of the License at: ; ; http://www.st.com/software_license_agreement_liberty_v2 ; ; Unless required by applicable law or agreed to in writing, software ; distributed under the License is distributed on an "AS IS" BASIS, ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ; See the License for the specific language governing permissions and ; limitations under the License. ; ;******************************************************************************* ; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs ; <h> Stack Configuration ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ; </h> Stack_Size EQU 0x00000400 AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size __initial_sp ; <h> Heap Configuration ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> ; </h> Heap_Size EQU 0x00000200 AREA HEAP, NOINIT, READWRITE, ALIGN=3 __heap_base Heap_Mem SPACE Heap_Size __heap_limit PRESERVE8 THUMB ; Vector Table Mapped to Address 0 at Reset AREA RESET, DATA, READONLY EXPORT __Vectors EXPORT __Vectors_End EXPORT __Vectors_Size __Vectors DCD __initial_sp ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NMI_Handler ; NMI Handler DCD HardFault_Handler ; Hard Fault Handler DCD MemManage_Handler ; MPU Fault Handler DCD BusFault_Handler ; Bus Fault Handler DCD UsageFault_Handler ; Usage Fault Handler DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD SVC_Handler ; SVCall Handler DCD DebugMon_Handler ; Debug Monitor Handler DCD 0 ; Reserved DCD PendSV_Handler ; PendSV Handler DCD SysTick_Handler ; SysTick Handler ; External Interrupts DCD WWDG_IRQHandler ; Window WatchDog DCD PVD_IRQHandler ; PVD through EXTI Line detection DCD TAMP_STAMP_IRQHandler ; Tamper and TimeStamps through the EXTI line DCD RTC_WKUP_IRQHandler ; RTC Wakeup through the EXTI line DCD FLASH_IRQHandler ; FLASH DCD RCC_IRQHandler ; RCC DCD EXTI0_IRQHandler ; EXTI Line0 DCD EXTI1_IRQHandler ; EXTI Line1 DCD EXTI2_IRQHandler ; EXTI Line2 DCD EXTI3_IRQHandler ; EXTI Line3 DCD EXTI4_IRQHandler ; EXTI Line4 DCD DMA1_Stream0_IRQHandler ; DMA1 Stream 0 DCD DMA1_Stream1_IRQHandler ; DMA1 Stream 1 DCD DMA1_Stream2_IRQHandler ; DMA1 Stream 2 DCD DMA1_Stream3_IRQHandler ; DMA1 Stream 3 DCD DMA1_Stream4_IRQHandler ; DMA1 Stream 4 DCD DMA1_Stream5_IRQHandler ; DMA1 Stream 5 DCD DMA1_Stream6_IRQHandler ; DMA1 Stream 6 DCD ADC_IRQHandler ; ADC1, ADC2 and ADC3s DCD CAN1_TX_IRQHandler ; CAN1 TX DCD CAN1_RX0_IRQHandler ; CAN1 RX0 DCD CAN1_RX1_IRQHandler ; CAN1 RX1 DCD CAN1_SCE_IRQHandler ; CAN1 SCE DCD EXTI9_5_IRQHandler ; External Line[9:5]s DCD TIM1_BRK_TIM9_IRQHandler ; TIM1 Break and TIM9 DCD TIM1_UP_TIM10_IRQHandler ; TIM1 Update and TIM10 DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11 DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare DCD TIM2_IRQHandler ; TIM2 DCD TIM3_IRQHandler ; TIM3 DCD TIM4_IRQHandler ; TIM4 DCD I2C1_EV_IRQHandler ; I2C1 Event DCD I2C1_ER_IRQHandler ; I2C1 Error DCD I2C2_EV_IRQHandler ; I2C2 Event DCD I2C2_ER_IRQHandler ; I2C2 Error DCD SPI1_IRQHandler ; SPI1 DCD SPI2_IRQHandler ; SPI2 DCD USART1_IRQHandler ; USART1 DCD USART2_IRQHandler ; USART2 DCD USART3_IRQHandler ; USART3 DCD EXTI15_10_IRQHandler ; External Line[15:10]s DCD RTC_Alarm_IRQHandler ; RTC Alarm (A and B) through EXTI Line DCD OTG_FS_WKUP_IRQHandler ; USB OTG FS Wakeup through EXTI line DCD TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12 DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13 DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14 DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7 DCD FSMC_IRQHandler ; FSMC DCD SDIO_IRQHandler ; SDIO DCD TIM5_IRQHandler ; TIM5 DCD SPI3_IRQHandler ; SPI3 DCD UART4_IRQHandler ; UART4 DCD UART5_IRQHandler ; UART5 DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors DCD TIM7_IRQHandler ; TIM7 DCD DMA2_Stream0_IRQHandler ; DMA2 Stream 0 DCD DMA2_Stream1_IRQHandler ; DMA2 Stream 1 DCD DMA2_Stream2_IRQHandler ; DMA2 Stream 2 DCD DMA2_Stream3_IRQHandler ; DMA2 Stream 3 DCD DMA2_Stream4_IRQHandler ; DMA2 Stream 4 DCD ETH_IRQHandler ; Ethernet DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line DCD CAN2_TX_IRQHandler ; CAN2 TX DCD CAN2_RX0_IRQHandler ; CAN2 RX0 DCD CAN2_RX1_IRQHandler ; CAN2 RX1 DCD CAN2_SCE_IRQHandler ; CAN2 SCE DCD OTG_FS_IRQHandler ; USB OTG FS DCD DMA2_Stream5_IRQHandler ; DMA2 Stream 5 DCD DMA2_Stream6_IRQHandler ; DMA2 Stream 6 DCD DMA2_Stream7_IRQHandler ; DMA2 Stream 7 DCD USART6_IRQHandler ; USART6 DCD I2C3_EV_IRQHandler ; I2C3 event DCD I2C3_ER_IRQHandler ; I2C3 error DCD OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI DCD OTG_HS_IRQHandler ; USB OTG HS DCD DCMI_IRQHandler ; DCMI DCD CRYP_IRQHandler ; CRYP crypto DCD HASH_RNG_IRQHandler ; Hash and Rng DCD FPU_IRQHandler ; FPU __Vectors_End __Vectors_Size EQU __Vectors_End - __Vectors AREA |.text|, CODE, READONLY ; Reset handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT __main LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 ENDP ; Dummy Exception Handlers (infinite loops which can be modified) NMI_Handler PROC EXPORT NMI_Handler [WEAK] B . ENDP HardFault_Handler\ PROC EXPORT HardFault_Handler [WEAK] B . ENDP MemManage_Handler\ PROC EXPORT MemManage_Handler [WEAK] B . ENDP BusFault_Handler\ PROC EXPORT BusFault_Handler [WEAK] B . ENDP UsageFault_Handler\ PROC EXPORT UsageFault_Handler [WEAK] B . ENDP SVC_Handler PROC EXPORT SVC_Handler [WEAK] B . ENDP DebugMon_Handler\ PROC EXPORT DebugMon_Handler [WEAK] B . ENDP PendSV_Handler PROC EXPORT PendSV_Handler [WEAK] B . ENDP SysTick_Handler PROC EXPORT SysTick_Handler [WEAK] B . ENDP Default_Handler PROC EXPORT WWDG_IRQHandler [WEAK] EXPORT PVD_IRQHandler [WEAK] EXPORT TAMP_STAMP_IRQHandler [WEAK] EXPORT RTC_WKUP_IRQHandler [WEAK] EXPORT FLASH_IRQHandler [WEAK] EXPORT RCC_IRQHandler [WEAK] EXPORT EXTI0_IRQHandler [WEAK] EXPORT EXTI1_IRQHandler [WEAK] EXPORT EXTI2_IRQHandler [WEAK] EXPORT EXTI3_IRQHandler [WEAK] EXPORT EXTI4_IRQHandler [WEAK] EXPORT DMA1_Stream0_IRQHandler [WEAK] EXPORT DMA1_Stream1_IRQHandler [WEAK] EXPORT DMA1_Stream2_IRQHandler [WEAK] EXPORT DMA1_Stream3_IRQHandler [WEAK] EXPORT DMA1_Stream4_IRQHandler [WEAK] EXPORT DMA1_Stream5_IRQHandler [WEAK] EXPORT DMA1_Stream6_IRQHandler [WEAK] EXPORT ADC_IRQHandler [WEAK] EXPORT CAN1_TX_IRQHandler [WEAK] EXPORT CAN1_RX0_IRQHandler [WEAK] EXPORT CAN1_RX1_IRQHandler [WEAK] EXPORT CAN1_SCE_IRQHandler [WEAK] EXPORT EXTI9_5_IRQHandler [WEAK] EXPORT TIM1_BRK_TIM9_IRQHandler [WEAK] EXPORT TIM1_UP_TIM10_IRQHandler [WEAK] EXPORT TIM1_TRG_COM_TIM11_IRQHandler [WEAK] EXPORT TIM1_CC_IRQHandler [WEAK] EXPORT TIM2_IRQHandler [WEAK] EXPORT TIM3_IRQHandler [WEAK] EXPORT TIM4_IRQHandler [WEAK] EXPORT I2C1_EV_IRQHandler [WEAK] EXPORT I2C1_ER_IRQHandler [WEAK] EXPORT I2C2_EV_IRQHandler [WEAK] EXPORT I2C2_ER_IRQHandler [WEAK] EXPORT SPI1_IRQHandler [WEAK] EXPORT SPI2_IRQHandler [WEAK] EXPORT USART1_IRQHandler [WEAK] EXPORT USART2_IRQHandler [WEAK] EXPORT USART3_IRQHandler [WEAK] EXPORT EXTI15_10_IRQHandler [WEAK] EXPORT RTC_Alarm_IRQHandler [WEAK] EXPORT OTG_FS_WKUP_IRQHandler [WEAK] EXPORT TIM8_BRK_TIM12_IRQHandler [WEAK] EXPORT TIM8_UP_TIM13_IRQHandler [WEAK] EXPORT TIM8_TRG_COM_TIM14_IRQHandler [WEAK] EXPORT TIM8_CC_IRQHandler [WEAK] EXPORT DMA1_Stream7_IRQHandler [WEAK] EXPORT FSMC_IRQHandler [WEAK] EXPORT SDIO_IRQHandler [WEAK] EXPORT TIM5_IRQHandler [WEAK] EXPORT SPI3_IRQHandler [WEAK] EXPORT UART4_IRQHandler [WEAK] EXPORT UART5_IRQHandler [WEAK] EXPORT TIM6_DAC_IRQHandler [WEAK] EXPORT TIM7_IRQHandler [WEAK] EXPORT DMA2_Stream0_IRQHandler [WEAK] EXPORT DMA2_Stream1_IRQHandler [WEAK] EXPORT DMA2_Stream2_IRQHandler [WEAK] EXPORT DMA2_Stream3_IRQHandler [WEAK] EXPORT DMA2_Stream4_IRQHandler [WEAK] EXPORT ETH_IRQHandler [WEAK] EXPORT ETH_WKUP_IRQHandler [WEAK] EXPORT CAN2_TX_IRQHandler [WEAK] EXPORT CAN2_RX0_IRQHandler [WEAK] EXPORT CAN2_RX1_IRQHandler [WEAK] EXPORT CAN2_SCE_IRQHandler [WEAK] EXPORT OTG_FS_IRQHandler [WEAK] EXPORT DMA2_Stream5_IRQHandler [WEAK] EXPORT DMA2_Stream6_IRQHandler [WEAK] EXPORT DMA2_Stream7_IRQHandler [WEAK] EXPORT USART6_IRQHandler [WEAK] EXPORT I2C3_EV_IRQHandler [WEAK] EXPORT I2C3_ER_IRQHandler [WEAK] EXPORT OTG_HS_EP1_OUT_IRQHandler [WEAK] EXPORT OTG_HS_EP1_IN_IRQHandler [WEAK] EXPORT OTG_HS_WKUP_IRQHandler [WEAK] EXPORT OTG_HS_IRQHandler [WEAK] EXPORT DCMI_IRQHandler [WEAK] EXPORT CRYP_IRQHandler [WEAK] EXPORT HASH_RNG_IRQHandler [WEAK] EXPORT FPU_IRQHandler [WEAK] WWDG_IRQHandler PVD_IRQHandler TAMP_STAMP_IRQHandler RTC_WKUP_IRQHandler FLASH_IRQHandler RCC_IRQHandler EXTI0_IRQHandler EXTI1_IRQHandler EXTI2_IRQHandler EXTI3_IRQHandler EXTI4_IRQHandler DMA1_Stream0_IRQHandler DMA1_Stream1_IRQHandler DMA1_Stream2_IRQHandler DMA1_Stream3_IRQHandler DMA1_Stream4_IRQHandler DMA1_Stream5_IRQHandler DMA1_Stream6_IRQHandler ADC_IRQHandler CAN1_TX_IRQHandler CAN1_RX0_IRQHandler CAN1_RX1_IRQHandler CAN1_SCE_IRQHandler EXTI9_5_IRQHandler TIM1_BRK_TIM9_IRQHandler TIM1_UP_TIM10_IRQHandler TIM1_TRG_COM_TIM11_IRQHandler TIM1_CC_IRQHandler TIM2_IRQHandler TIM3_IRQHandler TIM4_IRQHandler I2C1_EV_IRQHandler I2C1_ER_IRQHandler I2C2_EV_IRQHandler I2C2_ER_IRQHandler SPI1_IRQHandler SPI2_IRQHandler USART1_IRQHandler USART2_IRQHandler USART3_IRQHandler EXTI15_10_IRQHandler RTC_Alarm_IRQHandler OTG_FS_WKUP_IRQHandler TIM8_BRK_TIM12_IRQHandler TIM8_UP_TIM13_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler TIM8_CC_IRQHandler DMA1_Stream7_IRQHandler FSMC_IRQHandler SDIO_IRQHandler TIM5_IRQHandler SPI3_IRQHandler UART4_IRQHandler UART5_IRQHandler TIM6_DAC_IRQHandler TIM7_IRQHandler DMA2_Stream0_IRQHandler DMA2_Stream1_IRQHandler DMA2_Stream2_IRQHandler DMA2_Stream3_IRQHandler DMA2_Stream4_IRQHandler ETH_IRQHandler ETH_WKUP_IRQHandler CAN2_TX_IRQHandler CAN2_RX0_IRQHandler CAN2_RX1_IRQHandler CAN2_SCE_IRQHandler OTG_FS_IRQHandler DMA2_Stream5_IRQHandler DMA2_Stream6_IRQHandler DMA2_Stream7_IRQHandler USART6_IRQHandler I2C3_EV_IRQHandler I2C3_ER_IRQHandler OTG_HS_EP1_OUT_IRQHandler OTG_HS_EP1_IN_IRQHandler OTG_HS_WKUP_IRQHandler OTG_HS_IRQHandler DCMI_IRQHandler CRYP_IRQHandler HASH_RNG_IRQHandler FPU_IRQHandler B . ENDP ALIGN ;******************************************************************************* ; User Stack and Heap initialization ;******************************************************************************* IF :DEF:__MICROLIB EXPORT __initial_sp EXPORT __heap_base EXPORT __heap_limit ELSE IMPORT __use_two_region_memory EXPORT __user_initial_stackheap __user_initial_stackheap LDR R0, = Heap_Mem LDR R1, =(Stack_Mem + Stack_Size) LDR R2, = (Heap_Mem + Heap_Size) LDR R3, = Stack_Mem BX LR ALIGN ENDIF END ;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE***** #include "stm32f4xx.h" // Device header #include "arm_math.h" #include "arm_const_structs.h" #include "lcd.h" void display_testInput(void); void display_test_f32_ERR(void); void display_outputF32(void); #define LENGTH_SAMPLES 512 /* 采样点数 */ #define BLOCK_SIZE 512 /* 调用一次arm_lms_norm_f32处理的采样点个数 */ #define NUM_TAPS 20 /* 滤波器系数个数 */ uint32_t blockSize = BLOCK_SIZE; uint32_t numBlocks = LENGTH_SAMPLES/BLOCK_SIZE; /* 需要调用arm_lms_norm_f32的次数 */ static float32_t testInput_f32_10Hz_100Hz[LENGTH_SAMPLES]={0}; /* 源波形 */ static float32_t testInput_f32_REF[LENGTH_SAMPLES]={0}; /* 参考波形 */ static float32_t test_f32_ERR[LENGTH_SAMPLES]={0}; /* 误差数据 */ static float32_t testOutput[LENGTH_SAMPLES]={0}; /* 滤波后的输出 */ static float32_t lmsStateF32[BLOCK_SIZE + NUM_TAPS - 1]={0}; /* 状态缓存,大小numTaps + blockSize - 1 */ static float32_t lmsCoeffs32[NUM_TAPS] = {0}; /* 滤波器系数 */ /* 测试数据 */ /* ********************************************************************************************************* * 函 数 名: arm_lms_f32_test1 * 功能说明: 原始波形10Hz + 100Hz正弦波,滤除100Hz正弦波。 * 形 参: 无 * 返 回 值: 无 ********************************************************************************************************* */ void arm_lms_f32_test1(void) { uint32_t i; float32_t *inputF32, *outputF32, *inputREF, *outputERR; arm_lms_norm_instance_f32 lmsS={0}; for(i=0; i<LENGTH_SAMPLES; i++) { /* 20Hz正弦波+100Hz正弦波,采样率256Hz */ testInput_f32_10Hz_100Hz[i] = arm_sin_f32(2*3.1415926f*10*i/1024) + arm_sin_f32(2*3.1415926f*100*i/1024); testInput_f32_REF[i] = arm_sin_f32(2*3.1415926f*10*i/1024); } /* 如果是实时性的滤波,仅需清零一次 */ memset(lmsCoeffs32,0,sizeof(lmsCoeffs32)); memset(lmsStateF32,0,sizeof(lmsStateF32)); /* 初始化输入输出缓存指针 */ inputF32 = (float32_t *)&testInput_f32_10Hz_100Hz[0]; /* 原始波形 */ outputF32 = (float32_t *)&testOutput[0]; /* 滤波后输出波形 */ inputREF = (float32_t *)&testInput_f32_REF[0]; /* 参考波形 */ outputERR = (float32_t *)&test_f32_ERR[0]; /* 误差数据 */ /* 归一化LMS初始化 */ arm_lms_norm_init_f32 ( &lmsS, /* LMS结构体 */ NUM_TAPS, /* 滤波器系数个数 */ (float32_t *)&lmsCoeffs32[0], /* 滤波 */ &lmsStateF32[0], /* 滤波器系数 */ 0.1, /* 步长 */ blockSize); /* 处理的数据个数 */ /* 实现LMS自适应滤波,这里每次处理1个点 */ for(i=0; i < numBlocks; i++) { arm_lms_norm_f32(&lmsS, /* LMS结构体 */ inputF32 + (i * blockSize), /* 输入数据 */ inputREF + (i * blockSize), /* 输出数据 */ outputF32 + (i * blockSize), /* 参考数据 */ outputERR + (i * blockSize), /* 误差数据 */ blockSize); /* 处理的数据个数 */ } /* 打印滤波后结果 */ // for(i=0; i<LENGTH_SAMPLES; i++) // { // printf("%f, %f, %f\r\n", testInput_f32_10Hz_100Hz[i], outputF32[i], test_f32_ERR[i]); // } //LCD_Draw_Circle(u16 x0,u16 y0,u8 r) display_testInput( ); display_outputF32( ); display_test_f32_ERR( ); } void display_testInput(void) { u16 i=0; for(i=0; i<LENGTH_SAMPLES; i++) { LCD_Draw_Circle(30+i*1,testInput_f32_10Hz_100Hz[i]*10+10+200,0.5); //LCD_DrawPoint(30+i*1,testInput_f32_10Hz_100Hz[i]*10+10+200); } } void display_outputF32(void) { u16 i=0; for(i=0; i<LENGTH_SAMPLES; i++) { LCD_Draw_Circle(30+i,testOutput[i]*10+10+250,1); } } void display_test_f32_ERR(void) { u16 i=0; for(i=0; i<LENGTH_SAMPLES; i++) { LCD_Draw_Circle(30+i,(test_f32_ERR[i]*10+300),1); //LCD_Draw_Circle((30),(360),10); } } #define LENGTH_SAMPLES 512 /* 采样点数 */ #define BLOCK_SIZE 512 /* 调用一次arm_lms_norm_f32处理的采样点个数 */ 修改上面的采样点数为1024,会出现下面问题 Build started: Project: RECORDER *** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\MDK\MDK5\ARM\ARMCC\Bin' Build target 'RECORDER' compiling my_lms.c... linking... ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching w25qxx.o(.bss). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching startup_stm32f40_41xxx.o(STACK). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching sdio_sdcard.o(.bss). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching startup_stm32f40_41xxx.o(HEAP). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching recorder.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching usmart_config.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching common.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching recorder.o(.bss). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching usart.o(.bss). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching wm8978.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching esp8388.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching libspace.o(.bss). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching exfuns.o(.bss). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching touch.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching malloc.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching fontupd.o(.bss). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching wavplay.o(.bss). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching usmart.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching common.o(.bss). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching system_stm32f4xx.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching exfuns.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching lcd.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching audioplay.o(.bss). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching sdio_sdcard.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching stm32f4xx_rcc.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching lcd.o(.bss). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching ff.o(.bss). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching i2s.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching my_i2s.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching my_lms.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching ft5206.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching usart.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching delay.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching w25qxx.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching diskio.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching ff.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching wavplay.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching audioplay.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching key.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching gt9147.o(.data). ..\OBJ\Recorder.axf: Error: L6406E: No space in execution regions with .ANY selector matching ott2001a.o(.data). ..\OBJ\Recorder.axf: Error: L6407E: Sections of aggregate size 0x2218 bytes could not fit into .ANY selector(s). Not enough information to list image symbols. Not enough information to list load addresses in the image map. Finished: 2 information, 0 warning and 42 error messages. "..\OBJ\Recorder.axf" - 42 Error(s), 0 Warning(s). Target not created. Build Time Elapsed: 00:00:03 更改EQU的值能解决这个问题吗?
06-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值