# open_solarec **Repository Path**: Solarec/open_solarec ## Basic Information - **Project Name**: open_solarec - **Description**: sdk code - **Primary Language**: C - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 26 - **Forks**: 15 - **Created**: 2022-10-28 - **Last Updated**: 2025-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README SolarA2_1.1.0.1 # 目录整体结构 **表 1** 目录整体结构说明 |文件夹名|描述| |--|--| |application|应用sample目录,存放各级sample和客户主程序入口。| |board|板级特性目录,存放板级的软件特性。| |build|编译构建目录,存放编译相关的脚本和配置信息。| |chip|支持芯片目录,存放当前SDK支持的芯片系列的代码。| |drivers|驱动目录,存放当前SDK支持的IP驱动。| |tools|工具链目录,存放当前SDK依赖的工具链。| |generatecode|IDE自动生成代码相关目录。| |middleware|中间件目录,存放当前SDK版本支持的中间件。| |document|文档目录,存放用户使用指导手册。| # application **表 2** application目录结构说明 |文件夹名|描述| |--|--| |board_sample|存放板级抽象sample代码。| |drivers_sample|存放驱动sample代码。| |middleware_sample|存放中间件sample代码。| |user|main.c 存放路径。| ## board\_sample **表 3** board\_sample目录结构说明 |文件夹名|描述| |--|--| |dimming|呼吸灯功能示例。| |key|按键检查功能示例。| |led|数码管功能示例。| |pulses|gpio发送pwm波功能示例。| |softserial|gpio实现串口通信功能示例。| ## drivers\_sample ### acmp **表 4** acmp目录结构说明 |文件夹名|描述| |--|--| |sample_acmp|比较器使用示例。| ### adc **表 5** adc目录结构说明 |文件夹名|描述| |--|--| |sample_adc_associative_trigger_of_apt|APT触发ADC。| |sample_adc_continue_trigger|ADC连续采样。| |sample_adc_over_sample|ADC过采样。| |sample_adc_single_trigger|ADC单次采样。| |sample_adc_single_trigger_dma|ADC单次采样带DMA。| |sample_adc_single_trigger_it|ADC单次采样带中断。| |sample_adc_sync_sample|ADC同步采样。| |sample_adc_sync_sample_dma|ADC同步采样带DMA。| |sample_adc_sync_sample_it|ADC同步采样带中断。| ### apt **表 6** apt目录结构说明 |文件夹名|描述| |--|--| |sample_apt_single_resistor|APT单电阻采样示例,仅在U相触发ADC采样信号。| |sample_apt_three_resistor|APT三电阻采样示例,在U、V和W相都触发ADC采样信号。| ### can **表 7** can目录结构说明 |文件夹名|描述| |--|--| |sample_can_send_receive|CAN发送和接收数据示例。| ### capm **表 8** capm目录结构说明 |文件夹名|描述| |--|--| |capm_hall_sample|CAPM读取霍尔传感器值示例。| ### cfd **表 9** cfd目录结构说明 |文件夹名|描述| |--|--| |sample_cfd_check_error|cfd注入错误前后监测目标时钟异常功能。| ### cmm **表 10** cmm目录结构说明 |文件夹名|描述| |--|--| |sample_cmm_check_error|cmm注入错误前后监测目标时钟异常功能。| ### crc **表 11** crc目录结构说明 |文件夹名|描述| |--|--| |sample_crc_check|测试CRC不同算法和输入有效位宽,生成并校验crc值。| |sample_crc_gen|计算并生成CRC数值。| |sample_crc_load|通过load初始值将xmodem算法改为ccit-false算法并校验结果。| ### dac **表 12** dac目录结构说明 |文件夹名|描述| |--|--| |sample_dac|DAC电压输出到管脚示例。| ### dma **表 13** dma目录结构说明 |文件夹名|描述| |--|--| |sample_dma_list_transfer|DMA链式传输。| |sample_dma_list_transfer_continue|DMA链式传输实现连续功能。| |sample_dma_mem_to_mem|DMA内存到内存传输。| |sample_dma_mem_to_per|DMA内存到外设传输。| |sample_dma_per_to_mem|DMA外设到内存传输。| |sample_dma_per_to_per|DMA外设到外设传输。| ### flash **表 14** flash目录结构说明 |文件夹名|描述| |--|--| |sample_flash_blocking|阻塞模式操作flash。| |sample_flash_interrupt|中断方式操作flash。| ### gpio **表 15** gpio目录结构说明 |文件夹名|描述| |--|--| |sample_gpio_circle|GPIO环回测试电平和方向属性。| |sample_gpio_interrupt|测试GPIO不同中断类型。| |sample_gpio_key|GPIO用作按键功能。| |sample_gpio_led|GPIO周期控制led亮灭功能。| ### gpt **表 16** gpt目录结构说明 |文件夹名|描述| |--|--| |sample_gpt_simplerun|gpt产生PWM波形。| ### i2c **表 17** i2c目录结构说明 |文件夹名|描述| |--|--| |sample_i2c_blocking_stlm75|使用阻塞的方式读写温度传感器。| |sample_i2c_interrupt_stlm75|使用中断的方式读写温度传感器。| |sample_i2c_dma_stlm75|使用dma方式读写温度传感器。| ### iocmg **表 18** iocmg目录结构说明 |文件夹名|描述| |--|--| |iolist_sample|iocmg初始化管脚列表的属性配置功能。| ### pga **表 19** pga目录结构说明 |文件夹名|描述| |--|--| |sample_pga|PGA内部电阻放大示例。| |sample_pga_extra_resistor|PGA外部电阻放大示例。| ### pmc **表 20** pmc目录结构说明 |文件夹名|描述| |--|--| |sample_pmc_pvd|PMC掉电检测示例。| |sample_pmc_wakeup|PMC定时器唤醒示例。| ### qdm **表 21** qdm目录结构说明 |文件夹名|描述| |--|--| |sample_qdm_m|QDM使用M法读取电机转速的示例。| |sample_qdm_mt|QDM使用MT法读取电机转速的示例。| ### spi **表 22** spi目录机构说明 |文件夹名|描述| |--|--| |sample_spi_blocking_kta7953|使用阻塞方式读写ADC。| |sample_spi_dma_kta7953|使用dma方式读写ADC。| |sample_spi_interrupt_kta7953|使用中断方式读写ADC。| |sample_spi_microwire_master|演示如何使用microwire master。| |sample_spi_microwire_slave|演示如何使用microwire slave。| |sample_spi_slave|演示如何使用motorola spi slaver。| ### timer **表 23** timer目录结构说明 |文件夹名|描述| |--|--| |sample_timer_interrupt|timer定时触发中断,执行用户串口打印。| ### tsensor **表 24** tsensor目录结构说明 |文件夹名|描述| |--|--| |sample_tsensor|tsensor对器件结温采样。| ### uart **表 25** uart目录结构说明 |文件夹名|描述| |--|--| |sample_uart_blocking_rx|UART阻塞接收。| |sample_uart_blocking_tx|UART阻塞发送。| |sample_uart_dma_rx|UART带DMA接收。| |sample_uart_dma_tx|UART带DMA发送。| |sample_uart_interrupt_tx_after_rx|UART中断接收数据之后,再中断发送此数据。| |sample_uart_interrupt_rx|UART中断接收。| |sample_uart_interrupt_tx|UART中断发送。| |sample_uart_dma_tx_dma_rx_simultaneously|UART全双工模式,DMA同时发送和接收。| |sample_uart_dma_tx_int_rx_simultaneously|UART全双工模式,DMA发送的同时,中断接收。| |sample_uart_int_tx_dma_rx_simultaneously|UART全双工模式,中断发送的同时,DMA接收。| |sample_uart_int_tx_int_rx_simultaneously|UART全双工模式,中断发送的同时,中断接收。| |sample_uart_dma_rx_cyclically_stored|UART使用DMA循环搬运数据到指定内存。| |sample_uart_single_wire_communication|UART单线通信示例。| ### wdg **表 26** wdg目录机构说明 |文件夹名|描述| |--|--| |sample_wdg_reset|测试wdg不喂狗复位功能。| |sample_iwdg_reset|测试iwdg不喂狗复位功能。| ## middleware\_sample **表 27** middleware\_sample目录机构说明 |文件夹名|描述| |--|--| |mcs_65ldemo|电机控制算法在AD101HDMA_VER.B板的示例。| |mcs_65demo|电机控制算法在AD105HDMA_VER.B板的示例。| |pmsm_sensorless_1shunt_foc|永磁同步电机单电阻采样无感FOC应用。| |pmsm_sensorless_2shunt_foc|永磁同步电机双电阻采样无感FOC应用。| ## user 客户主程序的入口文件存放在此目录下。 # board **表 28** board目录结构说明 |文件夹名|描述| |--|--| |dimming|使用GPT和TIMER实现呼吸灯功能。| |key|按键检查功能。| |led|数码管功能。| |pulses|使用gpio发送pwm波功能。| |softserial|使用gpio实现串口通信功能。| # build **表 29** build目录 |文件夹名|文件名|描述| |--|--|--| |__pycache__|-|执行python脚本产生的缓存文件。| |config|-|指定编译工具链和工具链对应的默认编译参数。| |toolchain|-|编译工具链配置模板。| |-|.gn|内容为指定BUILDCONFIG.gn路径,以及指定根构建目标BUILD.gn的路径。| |-|BUILD.gn|由build_gn.py脚本自动生成,此文件为根构建目标文件。| |-|build.py|完成编译命令解析、编译环境检测、执行编译等工作。| |-|build_check.py|编译前合法性检查脚本。| |-|build_gn.py|解析userconfig.json的编译内容,完成自动构建编译脚本的工作。| |-|config.ini|保存编译工具链路径和gn、ninja编译命令的调用。| |-|ide_entry.py|从SDK分离生成工程的脚本。| |-|packet_create.py|打包生成all-in-one(loader.bin + target.bin)文件的脚本。| **表 30** config目录 |文件夹名|文件名|描述| |--|--|--| |hcc|-|存放hcc编译器默认编译选项和最终编译选项。| |hcc_fpu|-|存放hcc浮点编译器默认编译选项和最终编译选项。| |-|BUILDCONFIG.gn|内容为指定需要使用的编译工具链。| **表 31** toolchain目录 |文件夹名|文件名|描述| |--|--|--| |-|BUILD.gn|使用config.gni中的工具链配置模板配置编译工具链命令。| |-|config.gni|内容为工具链的编译命令模板。| # chip **表 32** chip目录结构说明 |文件夹名|文件夹名/文件名|描述| |--|--|--| |3065h/3061h|-|存放与芯片配置相关的代码文件,比如IP版本、特性宏、中断和时钟等。| |chipinit/|存放芯片早期初始化代码,在客户程序运行前执行。| |fotp/|存放fotp区域的读接口。| |ip_crg/|与芯片耦合的IP时钟配置。| |iomap/|与芯片相关的IO管脚复选功能定义。| |baseaddr.h|芯片的寄存器地址信息。| |chipinc.h|芯片头文集合,客户包含此头文件即可使用全部芯片信息。| |codecopy.json|非IDE环境下分离工程信息。| |flash.lds|芯片分区信息。| |info.h|芯片cycle信息。| |interrupt_ip.h|芯片中断号分配信息。| |ioconfig.h|芯片管脚复用寄存器信息。| |locktype.h|芯片预定义的锁信息,暂无使用。| |startup.S|程序初始化代码。| |sysctrl.h|系统控制寄存器信息。| |systick.h|系统systick信息。| |target|userconfig.json|存放默认的编译参数。| # document **表 33** documet目录结构说明 |文件夹名|描述| |--|--| |hardware|存放硬件生态板的用户手册。| |software|存放Solrec软件用户手册。| |tools|存放IDE、调试器等工具用户手册。| # drivers **表 34** drivers目录结构说明 |文件夹名|描述| |--|--| |acmp|存放比较器驱动代码。| |adc|存放adc驱动代码。| |apt|存放apt驱动代码。| |base|存放基础枚举定义和通用函数接口。| |can|存放can驱动代码。| |capm|存放capm驱动代码。| |cfd|存放cfd驱动代码。| |cmm|存放cmm驱动代码。| |crc|存放crc驱动代码。| |crg|存放crg驱动代码。| |dac|存放dac驱动代码。| |debug|存放调试相关代码。| |dma|存放dma驱动代码。| |flash|存放flash驱动代码。| |gpio|存放gpio驱动代码。| |gpt|存放gpt驱动代码。| |i2c|存放i2c驱动代码。| |pga|存放pga驱动代码。| |pmc|存放pmc驱动代码。| |qdm|存放qdm驱动代码。| |spi|存放spi驱动代码。| |timer|存放定时器驱动代码。| |tsensor|存放tsensor驱动代码。| |uart|存放串口驱动代码。| |wdg|存放看门狗驱动代码。| >**说明:** >模块目录下的v0/v1/...后缀目录代表不同的模块IP,各IP不具有升级关系。 ## acmp **表 35** acmp目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的acmp模块头文件。| |acmp_v0|存放与IP相关的acmp模块头文件和源码文件。| ## adc **表 36** adc目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的adc模块头文件。| |adc_v0|存放与IP相关的adc模块头文件和源码文件。| ## apt **表 37** apt目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,apt模块头文件。| |apt_v0|存放与IP相关的,apt模块头文件和源码文件。| ## base **表 38** base目录结构说明 |文件夹名|描述| |--|--| |common|存放base模块的头文件信息。| |base_v0|存放base基础定义和通用功能函数以及中断接口。| ## can **表 39** can目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,can模块头文件。| |can_v0|存放与IP相关的,can模块头文件和源码文件。| ## capm **表 40** capm目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,capm模块头文件。| |capm_v0|存放与IP相关的,capm模块头文件和源码文件。| ## cfd **表 41** cfd目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,cfd模块头文件。| |cfd_v0|存放与IP相关的,cfd模块头文件和源码文件。| ## cmm **表 42** cmm目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,cmm模块头文件。| |cmm_v0|存放与IP相关的,cmm模块头文件和源码文件。| ## crc **表 43** crc目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,crc模块头文件。| |crc_v0|存放与IP相关的,crc模块头文件和源码文件。| ## crg **表 44** crg目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的crg模块头文件。| |crg_v0|存放与IP相关的crg模块头文件和源码文件。| ## dac **表 45** dac目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,dac模块头文件。| |dac_v0|存放与IP相关的,dac模块头文件和源码文件。| ## debug **表 46** debug目录结构说明 |文件夹名|描述| |--|--| |inc|调试模块头文件。| |src|调试模块源代码。| ## dma **表 47** dma目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的dma模块头文件。| |dma_v0|存放与IP相关的串口模块头文件和源码文件。| ## flash **表 48** flash目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,flash模块头文件。| |flash_v0|存放与IP相关的,flash模块头文件和源码文件。| ## gpio **表 49** gpio目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,gpio模块头文件。| |gpio_v0|存放与IP相关的,gpio模块头文件和源码文件。| ## gpt **表 50** gpt目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的gpt模块头文件。| |gpt_v0|存放与IP相关的gpt模块头文件和源码文件。| ## i2c **表 51** i2c目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的i2c模块头文件。| |i2c_v0|存放与IP相关的i2c模块头文件和源码文件。| ## iocmg **表 52** iocmg目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,iocmg模块头文件。| |iocmg_v0|存放与IP相关的,iocmg模块头文件和源码文件。| ## pga **表 53** pga目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,pga模块头文件。| |pga_v0|存放与IP相关的,pga模块头文件和源码文件。| ## pmc **表 54** pmc目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,pmc模块头文件。| |pmc_v0|存放与IP相关的,pmc模块头文件和源码文件。| ## qdm **表 55** qdm目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,qdm模块头文件。| |qdm_v0|存放与IP相关的,qdm模块头文件和源码文件。| ## spi **表 56** spi目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的spi模块头文件。| |spi_v0|存放与IP相关的spi模块头文件和源码文件。| ## timer **表 57** timer目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的timer模块头文件。| |timer_v0|存放与IP相关的timer模块头文件和源码文件。| ## tsensor **表 58** tsensor目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的tsensor模块头文件。| |tsensor_v0|存放与IP相关的tsensor模块头文件和源码文件。| ## uart **表 59** uart目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的uart模块头文件。| |uart_v0|存放与IP相关的uart模块头文件和源码文件。| ## wdg **表 60** wdg目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,看门狗模块头文件。| |wdg_v0|存放与IP相关的,看门狗模块头文件和源码文件。| # generatecode 存放IDE根据图形化配置界面自动生成系统初始化代码的初始文件。 **表 61** generatecode目录结构说明 |文件名|描述文件| |--|--| |feature.h|宏定义文件,定义了参数检查、打印开关等宏。| |main.h|main.c的头文件。| |system_init.c|驱动初始化代码。| # middleware **表 62** middleware目录结构说明 |文件夹名|描述文件| |--|--| |thirdparty|第三方中间件。| |control_library|电机控制FOC算法,此算法做为电机功能验证使用,不做商用质量保证。如需商用请充分验证。| # bundle.json **表 63** bundle.json的文件说明 |文件名|描述文件| |--|--| |bundle.json|IDE编译组件的编译命令配置文件。| # 缩略语 |缩略语|英文|中文| |--|--|--| |ADC|Analog-to-digital converter|模拟数字转换器| |APT|Advance Pluse timer|高级脉冲定时器| |ACMP|Analog Comparator|模拟比较器| |BGA|Ball Grid Array|球栅阵列| |BASE|Base|基础定义| |CRG|Clock Reset and Generator|时钟复位生成器| |CAN|Controller Area Network|控制器局域网| |CRC|Cyclic Redundancy Check|循环冗余校验| |CAPM|Capture Module|捕捉器| |CFD|Clock Failure Detector|时钟失效检测| |CMM|Clock Monitor Module|时钟频率监测| |CVE|Common Vulnerabilities and Exposures system|常见漏洞和暴露系统| |DAC|Digital-to-analog converter|数字模拟转换器| |DMA|Direct Memory Access|内存直接访问| |GPIO|General Purpose Input/Output|通用目的输入输出接口| |GPT|General Pluse timer|通用脉冲定时器| |I2C master|Inter Integrated-Circuit Master|I2C主机| |I2C Slave|Inter Integrated-Circuit Slave|I2C从机| |PMU|Power Manager Unit|电源管理单元| |PWM|Pulse Width Modulation|脉冲宽度调制| |PGA|Programmable Gain Amplifier|可编程增益放大器| |PMP|Physical Memory Protection|物理内存保护| |QDM|Quadrature Decoder Module|正交解码器| |ROM|Read-Only Memory|只读存储器| |SPI|Serial Peripheral Interface|串行外设接口| |UART|Universal Asynchronous Receiver/Transmitter|通用异步接收发送设备| |WDG|Watch Dog timer|看门狗|