# 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**: 27 - **Forks**: 16 - **Created**: 2022-10-28 - **Last Updated**: 2026-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README SolarA2_1.1.0.10 # 目录整体结构 **表 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|比较器使用示例。| |sample_acmp_interrupt|比较器中断使用示例。| |sample_acmp_out_result|比较器结果输出示例。| ### adc **表 5** adc目录结构说明 |文件夹名|描述| |--|--| |sample_adc_associative_trigger_of_apt|APT触发ADC。| |sample_adc_continue_trigger|ADC连续采样。| |sample_adc_continue_trigger_1|ADC连续采样,只适用于3071芯片上。| |sample_adc_over_sample|ADC过采样。| |sample_adc_single_trigger|ADC单次采样。| |sample_adc_single_trigger_1|ADC单次采样,只适用于3071芯片上。| |sample_adc_single_trigger_dma|ADC单次采样带DMA。| |sample_adc_single_trigger_it|ADC单次采样带中断(it特指interrup缩略语)。| |sample_adc_spwm_trigger|ADC带SPWM触发功能的采样,只适用于3071芯片上。| |sample_adc_sync_sample|ADC同步采样。| |sample_adc_sync_sample_dma|ADC同步采样带DMA。| |sample_adc_sync_sample_it|ADC同步采样带中断(it特指interrup缩略语)。| |sample_adc_oversampling_it|ADC过采样带中断(it特指interrup缩略语)| |sample_adc_single_with_ppb|ADC带PPB功能的采样。| |sample_adc_single_trigger_gpio|ADC通过GPIO周期性触发单次采样。| |sample_adc_single_trigger_dma_multicore|ADC单次采样带DMA,多核场景只适用于3066H系列芯片上。| |sample_adc_single_trigger_it_multicore|ADC单次采样带中断(it特指interrup缩略语),多核场景只适用于3066H系列芯片上。| ### amp **表 6** amp目录结构说明 |文件夹名|描述| |--|--| |sample_amp|放大器功能示例。| ### apt **表 7** apt目录结构说明 |文件夹名|描述| |--|--| |sample_apt_single_resistor|APT单电阻采样示例,仅在U相触发ADC采样信号。| |sample_apt_three_resistor|APT三电阻采样示例,在U、V和W相都触发ADC采样信号。| |sample_apt_pwm_output|APT配置PWM可变占空比和强制输出示例。| |sample_apt_pwm_poe_status|APT读取POE电平和PWM输出状态示例。| |sample_apt_burst|APT打嗝控制示例(仅适用于3066H系列)。| |sample_apt_chg_freq|APT PWM变频控制示例(仅适用于3066H系列)。| |sample_apt_chopper|APT斩波控制示例(仅适用于3066H系列)。| |sample_apt_hr_pwm|APT高精度PWM示例(仅适用于3066H系列)。| |sample_apt_mindb|APT最小死区(多路信号逻辑输出)示例(仅适用于3066H系列)。| |sample_apt_olut|APT输出查找表(多路信号组合输出)示例(仅适用于3066H系列)。| ### can **表 8** can目录结构说明 |文件夹名|描述| |--|--| |sample_can_send_receive|CAN发送和接收数据示例。| |sample_can_send_receive_1|CAN发送和接收数据示例,只适用于3071芯片上。| |sample_can_communication_blocking|CAN阻塞方式数据收发示例(仅适用于3066H系列)。| |sample_can_communication_it|CAN中断方式数据收发示例(仅适用于3066H系列)。| |sample_can_external_loopback|CAN外循环测试模式示例(仅适用于3066H系列)。| |sample_canfd_communication_blocking|CANFD阻塞方式数据收发示例(仅适用于3066HAPIDM/3066HAPIVM/3066HAPIMM)。| |sample_canfd_communication_it|CANFD中断方式数据收发示例(仅适用于3066HAPIDM/3066HAPIVM/3066HAPIMM)。| |sample_canfd_external_loopback|CANFD外循环测试模式示例(仅适用于3066HAPIDM/3066HAPIVM/3066HAPIMM)。| ### capm **表 9** capm目录结构说明 |文件夹名|描述| |--|--| |capm_hall_sample|CAPM读取霍尔传感器值示例。| ### cfd **表 10** cfd目录结构说明 |文件夹名|描述| |--|--| |sample_cfd_check_error|cfd注入错误前后监测目标时钟异常功能。| ### cla **表 11** cla目录结构说明 |文件夹名|描述| |--|--| |sample_cla_claforward|CLA通道前馈功能示例。| |sample_cla_clamin|CLA通道双环取小功能。| |sample_cla_loop|CLA通道电源硬环控制功能。| ### cmm **表 12** cmm目录结构说明 |文件夹名|描述| |--|--| |sample_cmm_check_error|cmm注入错误前后监测目标时钟异常功能。| ### crc **表 13** crc目录结构说明 |文件夹名|描述| |--|--| |sample_crc_check|测试CRC不同算法和输入有效位宽,生成并校验CRC值(适用306x系列)。| |sample_crc_gen|计算并生成CRC数值(适用306x系列)。| |sample_crc_load|通过load初始值将xmodem算法改为ccit-false算法并校验结果(适用306x系列)。| |sample_crc_check_algo|输入数据进行CRC计算,生成并验证校验值(适用3061M系列)。| |sample_crc_gen_algo|通过crc16_xmodem算法对一组数据进行运算生成CRC值(适用3061M系列)。| |sample_crc_load_algo|对同一组数据进行不同CRC算法运算验证(适用3061M系列)。| ### dac **表 14** dac目录结构说明 |文件夹名|描述| |--|--| |sample_dac|DAC电压输出到管脚示例。| |sample_dac_eadc_reference|DAC电压输出到EADC参考电压示例。| |sample_dac_value|DAC电压输出管脚示例(适用于3066H系列)。| |sample_dac_ramp|DAC输出斜坡电压示例(适用于3066H系列)。| |sample_dac_ramp_1|DAC电压输出阶梯控制法示例(适用3071芯片)。| ### debug **表 15** debug目录结构说明 |文件夹名|描述| |--|--| |sample_dac|DAC电压输出到管脚示例。| |sample_debug_snprintf|DBG_SNPRINTF格式化缓存输出参考示例。| |sample_dfx_log|小型化dfx日志参考示例。| ### dma **表 16** 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外设到外设传输。| |sample_dma_multi_core_mem_to_per|DMA多核场景内存到外设传输(适用于3066H系列)。| ### dpwm **表 17** dpwm目录结构说明 |文件夹名|描述| |--|--| |sample_dpwm_ccm_mpfc|基于DPWM模块在传统有桥单向PFC拓扑下发波功能使用示例。| |sample_dpwm_fullbridge_llc|基于DPWM模块在全桥LLC拓扑下发波功能使用示例。| |sample_dpwm_twophase_llc|基于DPWM模块在两相交错LLC拓扑下发波功能使用示例。| |sample_dpwm_twophase_pfc|基于DPWM模块在两相交错CRM PFC拓扑下发波功能使用示例。| ### eadc **表 18** eadc目录结构说明 |文件夹名|描述| |--|--| |sample_eadc_dpwm_trigger|EADC DPWM触发使用示例。| |sample_eadc_multiple_trigger|EADC多次触发使用示例。| |sample_eadc_software_trigger|EADC软件触发使用示例。| ### ecap **表 19** ecap目录结构说明 |文件夹名|描述| |--|--| |sample_ecap_autoBaud|使用ECAP实现UART自动波特率使用示例。| ### fault **表 20** fault目录结构说明 |文件夹名|描述| |--|--| |sample_fault|fault异常保护功能使用示例。| |sample_fault_cbc_match|fault CBC保护功能使用示例。| |sample_fault_interrupt|fault异常模块中断功能使用示例。| ### flash **表 21** flash目录结构说明 |文件夹名|描述| |--|--| |sample_flash_blocking|阻塞模式操作Flash(适用306x系列)。| |sample_flash_interrupt|中断方式操作Flash(适用306x系列)。| |sample_flash_blocking_mode|阻塞模式操作Flash(适用3061M、3066M/3065P、3066H系列)。| |sample_flash_interrupt_mode|中断模式操作Flash(适用3061M、3066M/3065P、3066H系列)。| |sample_dflash_blocking_chip|dflash操作main空间的使用示例,只适用于3071芯片上。| |sample_dflash_blocking_nvr|dflash操作nvr空间的使用示例,只适用于3071芯片上。| |sample_dflash_blocking_page|dflash按照page操作全部空间的使用示例,只适用于3071芯片上。| |sample_dflash_blocking_nvr|pflash操作nvr空间的使用示例,只适用于3071芯片上。| |sample_dflash_blocking_page|pflash按照page操作全部空间的使用示例,只适用于3071芯片上。| |sample_flash_setsecuritylevel|通过写入dflash nvr空间配置3071芯片安全等级示例。| |sample_multi_core_flash_blocking_mode|多核阻塞模式操作Flash示例(仅适用3066H系列)。| |sample_multi_core_flash_interrupt_mode|多核中断方式操作Flash示例(仅适用3066H系列)。| ### fmc **表 22** fmc目录结构说明 |文件夹名|描述| |--|--| |sample_fmc_4bytes_addr_blocking_w25q256|FMC在4字节地址模式下使用阻塞方式读取和写入w25q256(适用于3066H系列)。| |sample_fmc_blocking_w25q32|FMC使用阻塞方式读取和写入w25q32(适用于3066H系列)。| |sample_fmc_boot_read_w25q32|FMC使用boot模式读取和写入w25q32(适用于3066H系列)。| |sample_fmc_dma_w25q32|FMC使用DMA方式读取和写入w25q32(适用于3066H系列)。| |sample_fmc_interrupt_w25q32|FMC使用中断方式读取和写入w25q32(适用于3066H系列)。| |sample_fmc_quad_blocking_w25q32|FMC使用阻塞方式在四线接口下读取和写入w25q32(适用于3066H系列)。| ### gpio **表 23** gpio目录结构说明 |文件夹名|描述| |--|--| |sample_gpio_circle|GPIO环回测试电平和方向属性。| |sample_gpio_interrupt|测试GPIO不同中断类型。| |sample_gpio_level_interrupt|测试GPIO的电平触发的中断类型。| |sample_gpio_key|GPIO用作按键功能。| |sample_gpio_key_1|GPIO用作按键功能,只适用于3071芯片上。| |sample_gpio_led|GPIO周期控制led亮灭功能。| |sample_gpio_led_1|GPIO周期控制LED亮灭功能,只适用于3071芯片上。| |sample_gpio_multi_core_interrupt|GPIO多核场景中断功能测试(适用于3066H系列)。| ### gpt **表 24** gpt目录结构说明 |文件夹名|描述| |--|--| |sample_gpt_simplerun|gpt产生PWM波形。| |sample_gpt_pwm_output|通用脉宽调制PWM。| |sample_gpt_period_interrupt|通用脉宽调制PWM周期中断。| ### i2c **表 25** i2c目录结构说明 |文件夹名|描述| |--|--| |sample_i2c_blocking_stlm75|使用阻塞的方式读写温度传感器(适用306x系列)。| |sample_i2c_interrupt_stlm75|使用中断的方式读写温度传感器(适用306x系列)。| |sample_i2c_dma_stlm75|使用DMA方式读写温度传感器(适用306x系列)。| |sample_i2c_master_blocking_at24c64|使用阻塞的方式读写EEPROM(适用3061M、3066M/3065P、3066H系列)。| |sample_i2c_master_interrupt_at24c64|使用中断的方式读写EEPROM(适用3061M、3066M/3065P、3066H系列)。| |sample_i2c_master_dma_at24c64|使用DMA的方式读写EEPROM(适用3061M、3066M/3065P、3066H系列)。| |sample_i2c_slave_blocking|使用阻塞的方式与主机进行数据收发(适用3061M、3066M/3065P、3066H系列)。| |sample_i2c_slave_interrupt|使用中断的方式与主机进行数据收发(适用3061M、3066M/3065P、3066H系列)。| |sample_i2c_slave_dma|使用DMA的方式与主机进行数据收发(适用3061M、3066M/3065P、3066H系列)。| ### iocmg **表 26** iocmg目录结构说明 |文件夹名|描述| |--|--| |iolist_sample|IOCMG初始化管脚列表的属性配置功能(适用306x系列)。| |sample_iocfg_list|IOCMG初始化管脚列表的属性配置功能(适用3061M/3066M/3065P系列)。| |sample_iocmg_ioListConfig|IOCMG初始化管脚列表的属性配置功能(适用3071系列)。| ### ipcm **表 27** ipcm目录结构说明 |文件夹名|描述| |--|--| |sample_ipcm_interrupt_single_destination|IPCM单目的处理器发送数据使用示例(适用3066H系列)。| |sample_ipcm_interrupt_multi_destination|IPCM多目的处理器同时发送数据使用示例(适用3066H系列)。| |sample_ipcm_interrupt_auto_link|IPCM自动链接模式发送数据使用示例(适用3066H系列)。| ### mpu **表 28** mpu目录结构说明 |文件夹名|描述| |--|--| |sample_mpu_region_config|MPU内存保护功能使用示例。| ### pga **表 29** pga目录结构说明 |文件夹名|描述| |--|--| |sample_pga|PGA内部电阻放大示例。| |sample_pga_external_resistor|PGA外部电阻模式增益放大示例。| |sample_pga_internal_resistor|PGA内部电阻模式增益放大示例。| |sample_pga_extra_resistor|PGA外部电阻放大示例。| |sample_pga_result_sampling|ADC采样PGA输出结果示例。| ### pmbus **表 30** pmbus目录结构说明 |文件夹名|描述| |--|--| |sample_pmbus_master_blocking|PMBus作为master以block方式操作功能使用示例。| |sample_pmbus_master_it|PMBus作为master以中断方式操作功能使用示例。| |sample_pmbus_slave_blocking|PMBus作为slave以block方式操作功能使用示例。| |sample_pmbus_slave_it|PMBus作为slave以中断方式操作功能使用示例。| ### pmc **表 31** pmc目录结构说明 |文件夹名|描述| |--|--| |sample_pmc_pvd|PMC掉电检测示例。| |sample_pmc_wakeup|PMC定时器唤醒示例。| |sample_pmc_iwdg_wakeup|PMC IWDG唤醒示例(适用3066M/3065P系列)。| ### qdm **表 32** qdm目录结构说明 |文件夹名|描述| |--|--| |sample_qdm_m|QDM使用M法读取电机转速的示例。| |sample_qdm_mt|QDM使用MT法读取电机转速的示例。| ### qual **表 33** qual目录结构说明 |文件夹名|描述| |--|--| |sample_qual_filter|使用qual对GPIO输入信号进行滤波功能使用示例。| ### rtc **表 34** rtc目录结构说明 |文件夹名|描述| |--|--| |sample_rtc_alarm|RTC当做alarm功能示例。| |sample_rtc_timer|RTC当做定时器功能示例。| |sample_rtc_wakeup|RTC当做唤醒源功能示例。| ### spi **表 35** spi目录机构说明 |文件夹名|描述| |--|--| |sample_spi_microwire_master|演示如何使用microwire master。| |sample_spi_microwire_slave|演示如何使用microwire slave。| |sample_spi_master|演示如何使用motorola spi master。| |sample_spi_slave|演示如何使用motorola spi slaver。| |sample_spi_master_3wires|演示如何使用三线通信motorola spi master(适用3066M/3065P、3066H系列)。| |sample_spi_slave_3wires|演示如何使用三线通信motorola spi slaver(适用3066M/3065P、3066H系列)。| |sample_spi_blocking_kta7953|使用阻塞方式读写kta7953芯片(适用306x系列)。| |sample_spi_dma_kta7953|使用DMA方式读写kta79532芯片(适用306x系列)。| |sample_spi_interrupt_kta7953|使用中断方式读写kta7953芯片(适用306x系列)。| |sample_spi_blocking_w25q32_internal|使用阻塞方式读写w25q32芯片(适用306x系列)。| |sample_spi_dma_w25q32_internal|使用DMA方式读写w25q32芯片(适用306x系列)。| |sample_spi_interrupt_w25q32_internal|使用中断方式读写w25q32芯片(适用306x系列)。| |sample_spi_blocking_w25q32|使用阻塞方式读写w25q32芯片(适用3061M、3066M/3065P、3066H系列)。| |sample_spi_dma_w25q32|使用DMA方式读写w25q32芯片(适用3061M、3066M/3065P、3066H系列)。| |sample_spi_interrupt_w25q32|使用中断方式读写w25q32芯片(适用3061M、3066M/3065P、3066H系列)。| |sample_spi_blocking_rx|SPI以block方式接收功能使用示例,只适用于3071芯片上。| |sample_spi_blocking_rx_and_tx|SPI以block方式接收和发送功能使用示例,只适用于3071芯片上。| |sample_spi_blocking_tx|SPI以block方式发送功能使用示例,只适用于3071芯片上。| |sample_spi_cmd|SPI以命令功能的方式使用示例,只适用于3071芯片上。| ### spwm **表 36** spwm目录结构说明 |文件夹名|描述| |--|--| |sample_spwm|SPWM通用PWM功能使用示例。| |sample_spwm_interrupt|SPWM中断功能使用示。| |sample_spwm_interrupt_both|SPWM双通道同时开启中断功能使用示例。| ### srm **表 37** srm目录结构说明 |文件夹名|描述| |--|--| |sample_srm_block_lock|多核系统阻塞抢占SRM功能使用示例(适用3066H系列)。| |sample_srm_try_lock|多核系统尝试抢占SRM功能使用示例(适用3066H系列)。| ### timer **表 38** timer目录结构说明 |文件夹名|描述| |--|--| |sample_timer_interrupt|timer定时触发中断,执行用户串口打印。| |sample_timer_interrupt_1|TIMER定时触发中断,执行用户串口打印,只适用于3071芯片上。| ### tsensor **表 39** tsensor目录结构说明 |文件夹名|描述| |--|--| |sample_tsensor|TSENSOR对器件结温采样,采样多次取平均。| |sample_tsensor_oneshot|TSENSOR对器件结温采样,只采样一次。| ### uart **表 40** uart目录结构说明 |文件夹名|描述| |--|--| |sample_uart_blocking_rx|UART阻塞接收。| |sample_uart_blocking_rx_1|UART阻塞接收,只适用于3071芯片上。| |sample_uart_blocking_tx|UART阻塞发送。| |sample_uart_blocking_tx_1|UART阻塞发送,只适用于3071芯片上。| |sample_uart_dma_rx|UART带DMA接收。| |sample_uart_dma_tx|UART带DMA发送。| |sample_uart_interrupt_tx_after_rx|UART中断接收数据之后,再中断发送此数据。| |sample_uart_interrupt_tx_after_rx_1|UART中断接收数据之后,再中断发送此数据,只适用于3071芯片上。| |sample_uart_interrupt_rx|UART中断接收。| |sample_uart_interrupt_rx_1|UART中断接收,只适用于3071芯片上。| |sample_uart_interrupt_tx|UART中断发送。| |sample_uart_interrupt_tx_1|UART中断发送,只适用于3071芯片上。| |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_hardwire_communication|UART硬件单线通信示例。| |sample_uart_single_wire_communication|UART软件单线通信示例。| |sample_uart_baud_detect|UART波特率检测示例。| |sample_uart_character_match|UART字符检测示例。| ### wdg **表 41** wdg目录机构说明 |文件夹名|描述| |--|--| |sample_wdg_reset|测试WDG不喂狗复位功能(适用306x系列)。| |sample_iwdg_reset|测试IWDG不喂狗复位功能(适用306x系列)。| |sample_iwdg_refresh|测试IWDG不喂狗复位功能(适用3061M、3066M/3065P系列)。| |sample_wwdg_refresh|测试WWDG不喂狗复位功能(适用3061M、3066M/3065P系列)。| |sample_wdg_refresh|测试WDG喂狗复位功能,只适用于3071芯片上。| ### smbus **表 42** smbus目录结构说明 |文件夹名|描述| |--|--| |sample_smbus_master_blocking|使用阻塞的方式读写EEPROM(适用3066M/3065P、系列)。| |sample_smbus_master_it|使用中断的方式读写EEPROM(适用3066M/3065P系列)。| |sample_smbus_master_dma|使用DMA的方式读写EEPROM(适用3066M/3065P系列)。| |sample_smbus_slave_blocking|使用阻塞的方式与主机进行数据收发(适用3066M/3065P系列)。| |sample_smbus_slave_it|使用中断的方式与主机进行数据收发(适用3066M/3065P系列)。| |sample_smbus_slave_dma|使用DMA的方式与主机进行数据收发(适用3066M/3065P系列)。| ## middleware\_sample **表 43** middleware\_sample目录机构说明 |文件夹名|描述| |--|--| |mcs_65ldemo|电机控制算法在AD101HDMA_VER.B板的示例。| |mcs_65demo|电机控制算法在AD105HDMA_VER.B板的示例。| |pmsm_sensorless_1shunt_foc|永磁同步电机单电阻采样无感FOC应用。| |pmsm_sensorless_2shunt_foc|永磁同步电机双电阻采样无感FOC应用。| |pmsm_sensorless_foc_2shunt_hv|永磁同步电机双电阻采样无感FOC应用_高压版本。| |mcs_hall_bldc_1shunt|BLDC有感六步方波控制应用。| |mcs_sensorless_bldc_six_step_wave|BLDC无感六步方波控制应用。| |pmsm_encode_qdm_2shunt_foc|永磁同步电机带正交编码器双电阻采样FOC应用。| |pmsm_hall_2shunt_foc|永磁同步电机带hall传感器双电阻采样FOC应用。| |operation_systerm|与操作系统相关应用参考示例集合。| |cpm|CPM相关应用参考示例集合。| |mailbox|Mailbox相关应用参考示例集合。| |function_safety|功能安全相关参考示例集合。| |ota|OTA相关应用参考示例集合。| |idh_sample|ROM化程序相关应用参考示例集合。| |mcs_high_speed_fan_1shunt_foc|高速风筒参考设计示例。| |mcs_cogtorque_comp|电机齿槽转矩补偿示。| |central_ac_ref_design_3066h|中央空调电机控制参考设计。| |home_ac_ref_design_3066h|家空空调电机控制参考设计。| ## user 客户主程序的入口文件存放在此目录下。 # board **表 44** board目录结构说明 |文件夹名|描述| |--|--| |dimming|使用GPT和TIMER实现呼吸灯功能。| |key|按键检查功能。| |led|数码管功能。| |matrixkey|矩阵键盘功能。| |pulses|使用GPIO发送PWM波功能。| |softserial|使用GPIO实现串口通信功能。| # build **表 45** build目录 |文件夹名|文件名|描述| |--|--|--| |__pycache__|-|执行python脚本产生的缓存文件。| |createxml|-|生成xml文件。| |config|-|指定编译工具链和工具链对应的默认编译参数。| |toolchain|-|编译工具链配置模板。| |-|.gn|内容为指定BUILDCONFIG.gn路径,以及指定根构建目标BUILD.gn的路径。| |-|bin_to_hex.py|完成将文件从二进制转换为十六进制的工作,只适用于3071芯片上。| |-|BUILD.gn|由build_gn.py脚本自动生成,此文件为根构建目标文件。| |-|build.py|完成编译命令解析、编译环境检测、执行编译等工作。| |-|build.sh|非IDE环境下一键完成版本编译的自动化脚本。| |-|build_gn.py|解析userconfig.json的编译内容,完成自动构建编译脚本的工作。| |-|config.ini|保存编译工具链路径和gn、ninja编译命令的调用。| |-|cloudbuild.sh|用于自动化执行从代码编译、测试到部署的脚本,只适用于3071芯片上。| |-|ide_entry.py|从SDK分离生成工程的脚本。| |-|ci_entry.py|从SDK分离构建工程的脚本。| |-|img_file_pack.py|用于给镜像文件按照特定格式增加头部信息、并完成打包的脚本,只适用于3071芯片上。| |-|packet_create.py|打包生成all-in-one(loader.bin + target.bin)文件的脚本。| **表 46** config目录 |文件夹名|文件名|描述| |--|--|--| |bisheng_131_hard|-|存放毕昇编译器CPU核131版本默认编译选项和最终编译选项。| |bisheng_132_hard|-|存放毕昇编译器CPU核132版本默认编译选项和最终编译选项。| |gcc_arm|-|存放gcc编译器arm v7指令集的CPU核默认编译选项和最终编译选项。| |hcc|-|存放支持软件浮点处理器的HCC编译器默认编译选项和最终编译选项。| |hcc_fpu|-|存放支持硬件浮点处理器的HCC编译器默认编译选项和最终编译选项。| |-|BUILDCONFIG.gn|内容为指定需要使用的编译工具链。| **表 47** toolchain目录 |文件夹名|文件名|描述| |--|--|--| |-|BUILD.gn|使用config.gni中的工具链配置模板配置编译工具链命令。| |-|config.gni|内容为工具链的编译命令模板。| # chip **表 48** chip目录结构说明 |文件夹名|文件夹名/文件名|描述| |--|--|--| |3065h/3065a/3061h/3061m/au/3066m/3065p/3071/3066h|-|存放与芯片配置相关的代码文件,比如IP版本、特性宏、中断和时钟等。| |chipinit/|存放芯片早期初始化代码,在客户程序运行前执行。| |fotp/|存放fotp区域的读接口。| |ip_crg/|与芯片耦合的IP时钟配置。| |pmp/|物理内存保护接口(仅适用3066H系列)。| |iomap/|与芯片相关的IO管脚复选功能定义。| |systick/|系统systick信息(仅适用3066H系列)。| |baseaddr.h|芯片的寄存器地址信息。| |chipinc.h|芯片头文集合,客户包含此头文件即可使用全部芯片信息。| |codecopy.json|非IDE环境下分离工程信息。| |flash.lds|芯片分区信息。| |info.h|芯片cycle信息。| |interrupt_ip.h|芯片中断号分配信息。| |ioconfig.h|芯片管脚复用寄存器信息。| |locktype.h|芯片预定义的锁信息,暂无使用。| |loop_lock_ip.h|芯片环路模块寄存器信息,只适用于3071芯片上。| |matrix_ovs_ip.h|芯片环路MATRIX_OVS寄存器信息,只适用于3071芯片上。| |startup.S|程序初始化代码。| |sysctrl.h|系统控制寄存器信息。| |sysctrl_lock_ip.h|系统配置使能寄存器信息,只适用于3071芯片上。| |sysctrl_nor_ip.h|系统修订通知寄存器信息,只适用于3071芯片上。| |sysctrl_por_ip.h|系统工艺记录寄存器信息,只适用于3071芯片上。| |systick.h|系统systick信息(除3066H系列)。| |target|userconfig.json|存放默认的编译参数。| # document **表 49** documet目录结构说明 |文件夹名|描述| |--|--| |hardware|存放硬件生态板的用户手册。| |software|存放Solrec软件用户手册。| |tools|存放IDE、调试器等工具用户手册。| # drivers **表 50** drivers目录结构说明 |文件夹名|描述| |--|--| |acmp|存放比较器驱动代码。| |adc|存放adc驱动代码。| |amp|存放amp驱动代码。| |apt|存放apt驱动代码。| |base|存放基础枚举定义和通用函数接口。| |can|存放can驱动代码。| |capm|存放capm驱动代码。| |cfd|存放cfd驱动代码。| |cla|存放cla驱动代码。| |cmm|存放cmm驱动代码。| |crc|存放crc驱动代码。| |crg|存放crg驱动代码。| |dac|存放dac驱动代码。| |debug|存放调试相关代码。| |dma|存放dma驱动代码。| |dpwm|存放dpwm驱动代码。| |eadc|存放eadc驱动代码。| |ecap|存放ecap驱动代码。| |fault|存放fault驱动代码。| |flash|存放flash驱动代码。| |fmc|存放fmc驱动代码。| |gpio|存放gpio驱动代码。| |gpt|存放gpt驱动代码。| |i2c|存放i2c驱动代码。| |iocmg|存放iocmg驱动代码。| |ipcm|存放ipcm驱动代码。| |iwdg|存放iwdg驱动代码。| |mau|存放mau驱动代码。| |mpu|存放mpu驱动代码。| |pga|存放pga驱动代码。| |pmbus|存放pmbus驱动代码。| |pmc|存放pmc驱动代码。| |qdm|存放qdm驱动代码。| |qual|存放qual驱动代码。| |spi|存放spi驱动代码。| |spwm|存放spwm驱动代码。| |srm|存放srm驱动代码。| |timer|存放定时器驱动代码。| |tsensor|存放tsensor驱动代码。| |uart|存放串口驱动代码。| |wdg|存放看门狗驱动代码。| |wwdg|存放窗口看门狗。| |smbus|存放smbus驱动代码。| >**说明:** >模块目录下的v0/v1/...后缀目录代表不同的模块IP,各IP不具有升级关系。 ## acmp **表 51** acmp目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的acmp模块头文件。| |acmp_v0|存放与IP相关的acmp模块头文件和源码文件。| |acmp_v1|存放与IP相关的acmp模块头文件和源码文件。| |acmp_v2|存放与IP相关的acmp模块头文件和源码文件。| |acmp_v3|存放与IP相关的acmp模块头文件和源码文件。| ## adc **表 52** adc目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的adc模块头文件。| |adc_v0|存放与IP相关的adc模块头文件和源码文件。| |adc_v1|存放与IP相关的adc模块头文件和源码文件。| |adc_v2|存放与IP相关的adc模块头文件和源码文件。| ## amp **表 53** amp目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的amp模块头文件。| |amp_v0|存放与IP相关的amp模块头文件和源码文件。| ## apt **表 54** apt目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,apt模块头文件。| |apt_v0|存放与IP相关的,apt模块头文件和源码文件。| |apt_v1|存放与IP相关的,apt模块头文件和源码文件。| |apt_v2|存放与IP相关的,apt模块头文件和源码文件。| |apt_v3|存放与IP相关的,apt模块头文件和源码文件。| ## base **表 55** base目录结构说明 |文件夹名|描述| |--|--| |common|存放base模块的头文件信息。| |base_v0|存放base基础定义和通用功能函数以及中断接口。| |base_v1|存放base基础定义和通用功能函数以及中断接口。| |base_v2|存放base基础定义和通用功能函数以及中断接口。| ## can **表 56** can目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,can模块头文件。| |common_v1|存放与IP无关的,can模块头文件。| |can_v0|存放与IP相关的,can模块头文件和源码文件。| |can_v1|存放与IP相关的,can模块头文件和源码文件。| ## capm **表 57** capm目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,capm模块头文件。| |capm_v0|存放与IP相关的,capm模块头文件和源码文件。| |capm_v1|存放与IP相关的,capm模块头文件和源码文件。| ## cfd **表 58** cfd目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,cfd模块头文件。| |cfd_v0|存放与IP相关的,cfd模块头文件和源码文件。| |cfd_v1|存放与IP相关的,cfd模块头文件和源码文件。| ## cla **表 59** cla目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,cla模块头文件。| |cla_v0|存放与IP相关的,cla模块头文件和源码文件。| ## cmm **表 60** cmm目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,cmm模块头文件。| |cmm_v0|存放与IP相关的,cmm模块头文件和源码文件。| |cmm_v1|存放与IP相关的,cmm模块头文件和源码文件。| |cmm_v2|存放与IP相关的,cmm模块头文件和源码文件。| ## crc **表 61** crc目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,crc模块头文件。| |crc_v0|存放与IP相关的,crc模块头文件和源码文件。| |crc_v1|存放与IP相关的,crc模块头文件和源码文件。| ## crg **表 62** crg目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的crg模块头文件。| |crg_v0|存放与IP相关的crg模块头文件和源码文件。| |crg_v1|存放与IP相关的crg模块头文件和源码文件。| |crg_v3|存放与IP相关的crg模块头文件和源码文件。| |crg_v4|存放与IP相关的crg模块头文件和源码文件。| |crg_v5|存放与IP相关的crg模块头文件和源码文件。| ## dac **表 63** dac目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,dac模块头文件。| |dac_v0|存放与IP相关的,dac模块头文件和源码文件。| |dac_v1|存放与IP相关的,dac模块头文件和源码文件。| |dac_v2|存放与IP相关的,dac模块头文件和源码文件。| |dac_v3|存放与IP相关的,dac模块头文件和源码文件。| ## debug **表 64** debug目录结构说明 |文件夹名|描述| |--|--| |inc|调试模块头文件。| |src|调试模块源代码。| |log|小型化日志。| ## dma **表 65** dma目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的dma模块头文件。| |dma_v0|存放与IP相关的,dma模块头文件和源码文件。| |dma_v1|存放与IP相关的,dma模块头文件和源码文件。| |dma_v2|存放与IP相关的,dma模块头文件和源码文件。| |dma_v3|存放与IP相关的,dma模块头文件和源码文件。| ## dpwm **表 66** dpwm目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的dpwm模块头文件。| |dpwm_v0|存放与IP相关的,dpwm模块头文件和源码文件。| ## eadc **表 67** eadc目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的eadc模块头文件。| |eadc_v0|存放与IP相关的,eadc模块头文件和源码文件。| ## ecap **表 68** ecap目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的ecap模块头文件。| |ecap_v0|存放与IP相关的,ecap模块头文件和源码文件。| ## fault **表 69** fault目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的fault模块头文件。| |fault_v0|存放与IP相关的,fault模块头文件和源码文件。| ## flash **表 70** flash目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,flash模块头文件。| |flash_v0|存放与IP相关的,flash模块头文件和源码文件。| |flash_v1|存放与IP相关的,flash模块头文件和源码文件。| |flash_v3|存放与IP相关的,flash模块头文件和源码文件。| |flash_v4|存放与IP相关的,flash模块头文件和源码文件。| |flash_v5|存放与IP相关的,flash模块头文件和源码文件。| ## fmc **表 71** fmc目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的fmc模块头文件。| |fmc_v0|存放与IP相关的,fmc模块头文件和源码文件。| ## gpio **表 72** gpio目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,gpio模块头文件。| |gpio_v0|存放与IP相关的,gpio模块头文件和源码文件。| |gpio_v1|存放与IP相关的,gpio模块头文件和源码文件。| |gpio_v2|存放与IP相关的,gpio模块头文件和源码文件。| ## gpt **表 73** gpt目录结构说明 |文件夹名|描述| |--|--| |common_v0|存放与IP无关的gpt模块头文件。| |common_v1|存放与IP无关的gpt模块头文件。| |gpt_v0|存放与IP相关的gpt模块头文件和源码文件。| |gpt_v1|存放与IP相关的gpt模块头文件和源码文件。| ## i2c **表 74** i2c目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的i2c模块头文件。| |i2c_v0|存放与IP相关的i2c模块头文件和源码文件。| |i2c_v1|存放与IP相关的i2c模块头文件和源码文件。| |i2c_v3|存放与IP相关的i2c模块头文件和源码文件。| ## iocmg **表 75** iocmg目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,iocmg模块头文件。| |iocmg_v0|存放与IP相关的,iocmg模块头文件和源码文件。| |iocmg_v1|存放与IP相关的,iocmg模块头文件和源码文件。| |iocmg_v3|存放与IP相关的,iocmg模块头文件和源码文件。| |iocmg_v4|存放与IP相关的,iocmg模块头文件和源码文件。| |iocmg_v5|存放与IP相关的,iocmg模块头文件和源码文件。| ## ipcm **表 76** ipcm目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的ipcm模块头文件。| |ipcm_v0|存放与IP相关的ipcm模块头文件和源码文件。| ## iwdg **表 77** iwdg目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的iwdg模块头文件。| |iwdg_v0|存放与IP相关的iwdg模块头文件和源码文件。| |iwdg_v1|存放与IP相关的iwdg模块头文件和源码文件。| |iwdg_v2|存放与IP相关的iwdg模块头文件和源码文件。| ## mau **表 78** mau目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的mau模块头文件。| |mau_v0|存放与IP相关的mau模块头文件和源码文件。| ## mpu **表 79** mpu目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的mpu模块头文件。| |mpu_v0|存放与IP相关的mpu模块头文件和源码文件。| ## pga **表 80** pga目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,pga模块头文件。| |pga_v0|存放与IP相关的,pga模块头文件和源码文件。| |pga_v1|存放与IP相关的,pga模块头文件和源码文件。| |pga_v2|存放与IP相关的,pga模块头文件和源码文件。| |pga_v3|存放与IP相关的,pga模块头文件和源码文件。| ## pmbus **表 81** pmbus目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的pmbus模块头文件。| |pmbus_v0|存放与IP相关的pmbus模块头文件和源码文件。| ## pmc **表 82** pmc目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,pmc模块头文件。| |pmc_v0|存放与IP相关的,pmc模块头文件和源码文件。| |pmc_v1|存放与IP相关的,pmc模块头文件和源码文件。| |pmc_v3|存放与IP相关的,pmc模块头文件和源码文件。| ## qdm **表 83** qdm目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,qdm模块头文件。| |qdm_v0|存放与IP相关的,qdm模块头文件和源码文件。| ## qual **表 84** qual目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,qual模块头文件。| |qual_v0|存放与IP相关的,qual模块头文件和源码文件。| ## spi **表 85** spi目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的spi模块头文件。| |spi_v0|存放与IP相关的spi模块头文件和源码文件。| |spi_v1|存放与IP相关的spi模块头文件和源码文件。| |spi_v3|存放与IP相关的spi模块头文件和源码文件。| |spi_v4|存放与IP相关的spi模块头文件和源码文件。| ## spwm **表 86** spwm目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,spwm模块头文件。| |spwm_v0|存放与IP相关的,spwm模块头文件和源码文件。| ## srm **表 87** srm目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,srm模块头文件。| |srm_v0|存放与IP相关的,srm模块头文件和源码文件。| ## timer **表 88** timer目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的timer模块头文件。| |timer_v0|存放与IP相关的timer模块头文件和源码文件。| |timer_v1|存放与IP相关的timer模块头文件和源码文件。| |timer_v2|存放与IP相关的timer模块头文件和源码文件。| ## tsensor **表 89** tsensor目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的tsensor模块头文件。| |tsensor_v0|存放与IP相关的tsensor模块头文件和源码文件。| |tsensor_v1|存放与IP相关的tsensor模块头文件和源码文件。| |tsensor_v2|存放与IP相关的tsensor模块头文件和源码文件。| ## uart **表 90** uart目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的uart模块头文件。| |uart_v0|存放与IP相关的uart模块头文件和源码文件。| |uart_v1|存放与IP相关的uart模块头文件和源码文件。| |uart_v3|存放与IP相关的uart模块头文件和源码文件。| |uart_v4|存放与IP相关的uart模块头文件和源码文件。| ## wdg **表 91** wdg目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,看门狗模块头文件。| |wdg_v0|存放与IP相关的,看门狗模块头文件和源码文件。| |wdg_v1|存放与IP相关的,看门狗模块头文件和源码文件。| ## wwdg **表 92** wwdg目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,看门狗模块头文件。| |wwdg_v1|存放与IP相关的,看门狗模块头文件和源码文件。| |wwdg_v2|存放与IP相关的,看门狗模块头文件和源码文件。| ## smbus **表 93** smbus目录结构说明 |文件夹名|描述| |--|--| |common|存放与IP无关的,smbus模块头文件。| |smbus_v1|存放与IP相关的,smbus模块头文件和源码文件。| # generatecode 存放IDE根据图形化配置界面自动生成系统初始化代码的初始文件。 **表 94** generatecode目录结构说明 |文件名|描述文件| |--|--| |feature.h|宏定义文件,定义了参数检查、打印开关等宏。| |main.h|main.c的头文件。| |system_init.c|驱动初始化代码。| # middleware **表 95** middleware目录结构说明 |文件夹名|描述文件| |--|--| |thirdparty|第三方中间件。| |control_library|电机控制FOC算法,此算法做为电机功能验证使用,不做商用质量保证。如需商用请充分验证。| |hisilicon|loader二进制文件,二次boot例程,ZOS任务调度器函数库和NOS任务调度器函数库。| |function_safety|功能安全功能安全iec60730 classb函数库。| |improve_library|空调节能应用算法库。| |coprocessor|多核系统CPM协处理器生命周期管理算法库(适用3066H系列)。| |mailbox|多核系统mailbox核间通信算法库(适用3066H系列)。| # tools **表 96** tools目录结构说明 |文件夹名|描述文件| |--|--| |hispark_trace|hispark_trace四合一调试器工具源码。| |pmbus_debug|对接IDE工具调试作用的PMBus命令功能源码。| |uttest|存放驱动uttest的头文件。| # bundle.json **表 97** bundle.json的文件说明 |文件名|描述文件| |--|--| |bundle.json|IDE编译组件的编译命令配置文件。| # 缩略语 |缩略语|英文|中文| |--|--|--| |ACMP|Analog Comparator|模拟比较器| |ADC|Analog-to-digital converter|模拟数字转换器| |AMP|Amplifier|放大器| |APT|Advance Pluse timer|高级脉冲定时器| |BGA|Ball Grid Array|球栅阵列| |BASE|Base|基础定义| |CAN|Controller Area Network|控制器局域网| |CANFD|CAN with Flexible Data-Rate|可变速率CAN| |CAPM|Capture Module|捕捉器| |CBC|Cycle by cycle|周期性的| |CFD|Clock Failure Detector|时钟失效检测| |CLA|Calculation|硬环计算| |CMM|Clock Monitor Module|时钟频率监测| |CPM|Coprocessor Management|协处理器管理| |CRC|Cyclic Redundancy Check|循环冗余校验| |CRG|Clock Reset and Generator|时钟复位生成器| |CVE|Common Vulnerabilities and Exposures system|常见漏洞和暴露系统| |DAC|Digital-to-analog converter|数字模拟转换器| |DMA|Direct Memory Access|内存直接访问| |DPWM|Digital Pulse Width Modulation|数字脉冲宽度调制| |EADC|Error Analog to Digital Converter|差分模数转换器| |ECAP|Ecapture|捕获模块| |FMC|Flash Memory Controller|闪存控制器| |GPIO|General Purpose Input/Output|通用目的输入输出接口| |GPT|General Pluse timer|通用脉冲定时器| |I2C master|Inter Integrated-Circuit Master|I2C主机| |I2C Slave|Inter Integrated-Circuit Slave|I2C从机| |IOCMG|I/O Control & Multiplex Generater|I/O复用控制| |IPCM|Inter-Processor Communications Message|核间信息通信| |IWDG|Independent Watch Dog|独立看门狗| |MAU|Math function Acceleration Unit|数学加速单元| |MPU|Memory Protection Unit|内存保护单元| |OTA|Over The Air|空中下载技术| |PGA|Programmable Gain Amplifier|可编程增益放大器| |PMBus|Power Management Bus|电源管理总线| |PMC|Power Manager Control|电源管理控制| |PMP|Physical Memory Protection|物理内存保护| |POE|Port Output Enable|端口输出使能| |PPB|Post-Processing Block|后处理模块| |PMU|Power Manager Unit|电源管理单元| |PWM|Pulse Width Modulation|脉冲宽度调制| |QDM|Quadrature Decoder Module|正交解码器| |ROM|Read-Only Memory|只读存储器| |RTC|Real Time Clock|实时时钟| |SMBus|System Management Bus|系统管理总线| |SPI|Serial Peripheral Interface|串行外设接口| |SPWM|Simple Pulse Width Modulation|简单脉冲宽度调制| |SRM|Shared Resources Mutex|共享资源互斥锁| |TIMER|Timer|定时器| |TSENSOR|Temperature Sensor|温度传感器| |UART|Universal Asynchronous Receiver/Transmitter|通用异步接收发送设备| |WDG|Watch Dog timer|看门狗| |WWDG|Windowed Watch Dog|窗口看门狗|