[1.8.0] - 2024-12-31:
Main changes since 1.7.0
Tested Segger Embedded Studio Version: 8.20
Tested Zcc toolchain 3.2.4
Changed:
- soc: TRGMMUX: add description in hpm_trgmmux_src.h
- soc: update hpm_core_clock when setting cpu clock
- soc: update header files.
- soc: unified clock name
- soc: update header file from hpm_soc_info
- soc: romapi add fencei to xpi nor apis.
- drivers:sdxc add new API and optimize the transfer handling logic.
- drivers: cam: remove the pack_dir assignments for CR register
- drivers: lobs: update lobs driver
- drivers: i2c: add status_i2c_bus_busy enumeration member
- drivers: femc: update delay cell config
- drivers: sei: update wait len for hpm5300 sei async communication
- drivers: sei: update hpm5300 asynchronous mode
- drivers: i2s: support different tx/rx channel in duplex mode
- drivers: camera: pix format support yuv422
- drivers: uart: add new API uart_enable_rx_function.
- drivers: pwm: Increased output 100 percent duty cycle with centre symmetry.
- drivers: tsw: add APIs to support Qbu, CB, and Qci
- components: spi: Optimize SPI clock division for hpm_spi_set_sclk_frequency API
- components: debug_console: keep symbols used by ses library
- boards: remove unused macro BOARD_USB
- boards: enable only common clock in board_init_clock()
- boards: add board_init_i2c_clock() API
- boards: uart and spi use default clock frequency 80MHz
- boards: change BOARD_APP_I2S_DATA_LINE to BOARD_APP_I2S_TX_DATA_LINE and BOARD_APP_I2S_RX_DATA_LINE
- boards: hpm6800evk reduce ddr io leakage.
- boards: HPM6E00evk: add pin setting for uart lin slave
- boards: enet: replace with macro for clock setting APIs
- middleware: hpm_mcl_v2: add pll filter
- middleware: rtt: iar: rtt_risc_v_trap_handler align to 4 byte
- middleware: freertos: new critical protection method
- middleware: vglite: update to 4.0.87.
- middleware: hpm_sdmmc switch to adma3 descriptor by default.
- middleware: cherryusb: update video stack to use pingpang buffer
- middleware: cherryusb: update to v1.4.2
- middleware: lvgl: change vglite mode to cacheable
- middleware: lvgl: update lvgl library source.
- middleware: wifi: mhd_wifi format the source code.
- middleware: rtthread-nano rt_kprintf update to v4.1.1 .
- middleware: wifi: mhd_wifi optimize lib including path.
- middleware: wifi: mhd_wifi update wifi stack with BSD license.
- middleware: add version or changelog
- middleware: wifi: mhd_wifi add license and changelog.
- middleware: hpm_sdmmc: mmc,sdio optimize cache-maintenance efficiency.
- middleware: hpm_sdmmc: hpm_sdmmc_host add new API and optimize transfer logic.
- samples: uart_tamagawa: update uart trigger.
- samples: SDM: add console to test different function.
- samples: dmav2: update dmav2 fixed burst transfer size
- samples/components/middleware: use clock_get_core_clock_ticks_per_us() and clock_get_core_clock_ticks_per_ms() instead of hpm_core_clock
- samples: lobs: use lobs_signal_group_t and lobs_trace_data_t
- samples/middleware/components: add clock to group by applications
- samples: i2c: use add board_init_i2c_clock() API
- samples: audio sample dependency change
- samples: dhrysone: update compile options
- samples: i2s: use BOARD_APP_I2S_TX_DATA_LINE instead of BOARD_APP_I2S_DATA_LINE
- samples: mcl: bldc_foc: modify clc to use the pid parameter
- samples: audio: update codec I2S channel.
- samples: lwip: common: single & multiple: eliminate two "Down" status at the first linkup
- samples: tsn: all: samples: tsn: all: eliminate two Down status at the first linkup
- samples: erpc: update button pressed
- samples: cherryusb: use BOARD_BUTTON_PRESSED_VALUE instead of APP_BUTTON_PRESSED_VALUE
- samples: spi_components: half duplex: add notice content for all readme
- samples: spi_components: fixed compile waring on SES for half duplex slave dma sample
- samples: drivers: tsw: add phy reset logic
- samples: lwip: lwip_iperf_multi_ports: app.yaml: update excluded target list
- samples: ecat_io: update DC setting in README
- samples: tflm: optimized speed.
- samples: i2s: change HDMA to XDMA
- samples: plb: pulseoutput: rename init_plb_pins() to init_plb_pulse_pins()
- samples: ecat: support initializing eeprom data.
- samples: lwip: mhd_wifi_demo optimize TCP RX and UDP RX performance.
- samples: lwip_tcpclient_freertos_socket: eliminate the use of the global variable gnetif
- samples: ppi: sram: update as/ah stage time
- samples: cherryusb: adapter to cherryusb v1.4.2
- samples: pwm: add pwm duty 0-100 output
- samples: lwip: mhd_wifi_demo update limitation.
- samples: lwip: mhd_wifi_demo add limitation for andes&zcc toolchain.
- samples: tsn: tsn_psfp_egress: adjust some settings.
- utils: hpm_swap: exclude bswapxx for segger_rtl
- docs: add plb filter doc to index
- docs: samples: drivers: mipi_csi: update the project setting configuration
- cmake: toolchain: update RV_ABI for nds-gcc, when it's not set
Fixed:
- isr: adjust SDK_DECLARE_EXT_ISR_x position to fix clang warning
- soc: irq s mode: fix CONFIG_RTTHREAD lost
- soc: hpm6e00: ip: tsw: fix the access attributes of TXDATA/TSYN_TXBUF_TQUE_AND_TX_LEN in BIN
- soc: linker: add "*" to some sections
- soc: modify register used by DSP in IRQ nesting, from s0 to s4 .
- soc: modify interrupt handler under vector mode
- soc: add section .isr_vector.*
- soc: fix freertos vectormode build error
- soc: hpm6e00: fix the register offset in cb frer module
- soc: reset.c: weak __dso_handle
- soc: HPM6700: HPM6750: acmp: fix missing a dependent clock setting.
- soc: HPM6E00: fix TRGM register header file
- drivers: pdgo: fix incorrect register accessing
- drivers: sdm: remove useless function and add new API.
- drivers: hpm_enc_pos_drv: fix build warning when -Werror=double-promotion
- drivers: i2c: fixed data length assignment error for i2c_master_address_read API
- drivers: sdxc enable adma3 support.
- drivers: tsw: add the missing doxygen description for the return value from tsw_shap_set_cbs
- drivers: tsw: fix no update trigger in tsw_get_rtc_offset
- drivers: tsw: fix missing the higher part of second in tsw_set_rtc_offset
- drivers: femc: update sram default config
- drivers: femc: support sdram1 and sram1/2 config
- drivers: vsc: fix sw only inject adc value don't trigger vd/vq calculation
- drivers: plb: fix enum plb_type_a_lut_num
- drivers: trgm: fix trgm_filter_mode_stable_high and trgm_filter_mode_stable_low
- drivers: fix error status checking in esc_phy API
- drivers: tsw: fix compile warning with andes toolchain
- drivers: pla: fix pla comment.
- drivers: pwmv2: fix pwmv2 driver code error.
- drivers: pwmv2: disable pwm forced output by default.
- drivers: sdm: fix API to avoid configuring wrong register value if multiple calls.
- drivers: set ewdg window mode timeout to 101ms.
- drivers: sdxc correct typo in sdxc status code.
- drivers: canopen fix can related boards iar build error.
- drivers: tsw: fix failing to control gate to close in static mode.
- drivers: tsw: fix size filtering for psfp setting.
- drivers: acmp: fix using a fixed acmp clock source name.
- drivers: mcan fix typo in mcan driver.
- components: serial_nor: fixed the issue of address and data phase assignment error when parsing the read instruction parameters of SFDP
- components: plb_lin_clock: change variable types to avoid overflow.
- components: enet_phy: jl1111: fix register address info.
- components: spi: due to divide by 2, the SPI frequency division is allowed to be 0 for hpm_spi_set_sclk_frequency API
- boards: fix core1 don't init hpm_core_clock
- boards: hpm6800evk:: fixed the GPTMR COMP position error for readme
- boards: hpm6750evkmini: fix touch reset timing.
- boards: sdram: add and use macro BOARD_SDRAM_COLUMN_ADDR_BITS
- boards: hpm6750evk2/hpm6300evk: change init_sdram_pins() to init_femc_pins()
- boards: hpm6750evkmini: remove ETH0_EVTO_2/ETH0_EVTI_2 pin setting
- boards: enet: fix missing clock source setting for RGMII port
- boards: fix RGB pin pad setting.
- boards: hpm6e00evk: correct uart_lin pin setting
- boards: hpm5301evklite: pinmux: change the same of init_gptmr_pins API pin for init_gptmr_channel_pin API
- boards: hpm6200evk: set cpu clock using pll1clk1, avoid impact pll1clk0
- boards: hpm6800evk: set dcdcm work mode to 1
- boards: board_sd_configure_clock fix clock unstable issue during transition.
- boards: hpm6300/hpm6700/hpm6800: fix BOARD_BUTTON_PRESSED_VALUE error
- boards: fix missing board-level acmp clock setting API.
- boards:openocd: hpm6300evk.cfg: correct delay cell setting
- boards: openocd: fix openocd access non-standard csr problem
- boards: hpm6200evk: fix BOARD_CPU_FREQ value
- middleware: add canopen v2.0 support.
- middleware: improve freeRTOS vector mode isr efficiency
- middleware: fix segger compile error
- middleware: vglite: fix build error
- middleware: optimize threadx related CMakeLists
- middleware: optimize uC/OS-III related CMakeLists
- middleware: optimize FreeRTOS related CMakeLists
- middleware: fix ucos_iii core1 error
- middleware: fix .align error in s files
- middleware: hpm_mclv2: preventing divide-by-zero errors in alpha beta.
- middleware: hpm_mclv2: Fixing the motor with many pole pairs at the wrong angle.
- middleware: lwip: opt.h: recover LWIP_TCPIP_CORE_LOCKING setting to 1
- middleware: hpm_sdmmc: spi sdcard: fix spi sdcard log redirection definition error issue
- middleware: rtthread-nano finsh rx add receiving buffer .
- middleware: lvgl: fix large screen logo incorrect
- middleware: put function into section isr_vector
- middleware: hpm_mcl_v2: fix calls can lead to illegal pointer accesses.
- middleware: rtthread-nano,delete print wrapper.
- middleware: mbedtls: port: fix the logic of sourcing sdp files when there's no sdp on the specified soc
- middleware: fix trace_recorder rtt error
- middleware: rtthread-nano,fix thread detach not schedule.
- middleware: rtthread-nano,modify console marco dependency.
- middleware: rtthread-nano add declaration in interrupt.S.
- middleware: fix trace recorder IAR build error
- middleware: hpm_sdmmc fix errors reported by clang-tidy.
- middleware: hpm_sdmmc: hpm_sdmmc_sd Fix logic issue for getting card flag and read last sector.
- middleware: hpm_mcl_v2: Fix wrong sector number.
- middleware: hpm_sdmmc ensure the ADMA3 table is 8-byte aligned.
- samples: multicore_hello: change core1 demo from pwm to gptmr.
- samples: rgb_led: use pwmv2 to support led control.
- samples: rom_api: xpi_nor_api correct the read_status instruction seq.
- samples: usb: fix segger compile error
- samples: i2c_components: add initialize the i2c clock
- samples: i2c_components: rename the cmakelists file to CMakeLists
- samples: uart_lin_salve: add board lin transceiver control.
- samples: drivers: gpio: Fixed the problem of not working properly on both edge trigger mode
- samples: tinyusb/usbx: host: fix build warning
- samples: tsn: tsn_time_aware_scheduling: fix comment error
- samples: lwip: common: multiple: fix compiling error with zcc toolchain
- samples: femc: sram: use macro BOARD_FEMC_ASYNC_SRAM_AD_MUX_MODE and BOARD_FEMC_ASYNC_SRAM_SIZE
- samples: femc: sram: use macro BOARD_FEMC_ASYNC_SRAM_CS_INDEX
- samples: update section .fast_ram to .fast_ram.non_init and .noncacheable to .noncacheable.non_init
- samples: lwip: fix the comment for ICMP checksum
- samples: lvgl_audio_player: fix build error for update lvgl v9.2
- samples: lvgl: rtos: fix compilation error for using RECURSIVE_MUTEXES in lvgl.
- samples: spi_components: half_duplex: dma: for master, Need to determine SPI transmission completion when send
- samples: pmbus: change SMBUS related macro definitions to PMBUS
- samples: drivers: gptmr: timer_basic: fixed the issue the time information was not printed
- samples: drivers: pllctlv2 Correct UART buadrate after preset switching.
- samples: drivers: pllctl Avoid access to FLASH during clock transition.
- samples: motor_ctrl: bldc_lvgl: fix compiler error
- samples: lwip: ports: rtthread-nano: multiple: arch: sys_arch.c: fix that value stored to 'ret' is never read
- samples: lwip_tcpecho_multi_ports_rtthread-nano: tcp_echo.c: fix that valued stored is never read
- samples: motor_ctrl: use pwmv2_issue_shadow_register_lock_event.
- samples: rdc: fix rdc desynchronization causing accuracy errors.
- samples: lwip: mhd_wifi_demo fix zcc compiling error.
- samples: drivers: pllctl force XTAL on in case RC24M is not trimmed.
- samples: rtthread rvbacktrace tshell thread stack overflow under zcc.
- samples: rvbacktrace, add volatile keyword to prevent optimization.
- samples: opener/motor: set motor speed to zero at start
- samples: fix multicore/erpc/motor project link error
- samples: enable gptmr clock in OpENer/motor sample
- samples: disable dhcp in sntp sample by default
- samples: mbedtls: fix program exception blocking
- samples: lwip_https_server: fix function error
- samples: separate rev and pos data in 53xx soc
- samples: rom_api: xpi_nor_api place flash API into RAM.
- samples: modbus: tcp: fix lwip init warning for IAR build type
- samples: add some info to trace recorder samples
- samples: pwmv2: fix one clock cycle of pulses at startup.
- samples: spi_sdcard: add SPI transfer completion judgment for DMA transmission
- samples: enet: pps: fix no output
- samples: jpeg_decode: fix extract jpeg head failed
- samples: lwip_tcpecho_multi_ports_rtthread-nano: fix DHCP failure
- samples: bldc_foc: fix speed loop parameters.
- samples: image: fix udisk build failure
- samples: tsn: tsn_credit_based_shaper: fix getting phy link status logic
- samples: qeo_dac: add dac clock enable in sample.
- samples: uart lin slave buadrate adaptive fix readme.
- samples: drivers: dma: dma_use_gptmr_event_transfer: adjust the clock_add_to_group API call order for gptmr
- samples: plb doc: index change to glob
- samples: ecat_foe/ecat_cia402 add missing macro.
- samples: ecat: rename eeprom_update image file
- samples: fix canopen release type PDO block.
- samples: canopen add to sample list.
- samples: exclude OpENer motor sample from hpm6750evk2 and hpm6300evk
- samples: motor_ctrl: motor running noise.
- samples: i2s_emulation: fixed the abnormal playback issue if there is no recorded content
- samples: rom_api: xpi_nor_api Fix crashing when using zcc toolchain.
- samples: usbx: msc: fix doc description error
- samples: cdc_acm_uart_com: fix readme max baudrate description
- samples: tsn: fix log format for RX-Time.
- samples: tsn: tsn_frame_preemption_egress: fix FPE indication value error.
- samples: tsn: frame_preemption_ingress: fix that eth smac doesn't match with arp smac.
- samples: tsn: tsn_frame_preemption_ingress: fix that the preemption logic is not expected with flash_sdram_xip in release configuration.
- samples: lwip_tcpecho_multi_ports_rtthread-nano: fix the main thread stack overflow with the zcc toolchain
- samples: plic button sometimes does not work.
- samples: fix trace recorder doc
- samples: exclude unsupported sample
- samples: image: encoder: fix encoder flow
- samples: uart_tamagawa: change hardware trig way
- samples: fix compilation error related to struct timeval with andesight toolchain
- samples: motor_ctrl: bldc_offline_param: Fixing Printing Information Errors.
- samples: motor_ctrl: Fixing speed switching causing motor stalling
- samples: SEI: add missing clear interrupt flag code
- docs: readme: fix plb pin descriptor
- docs: get_started: replace hpm6750evk with hpm6750evkmini
- docs: rvbacktrace, add rvbacktrace docstree to the sample docstree.
- docs: add motor related information in readme
- docs: rdc: Add description of initial position.
- docs: hpm6e00evk: fix plb filter pins descriptor
Added:
- soc: add clock_get_core_clock_ticks_per_us() and clock_get_core_clock_ticks_per_ms() APIs
- soc: clock driver add clock_wait_source_stable API.
- drivers: i2c: add i2c_set_direction API
- drivers: i2c: add enable and disable stop phase APIs for master
- drivers: i2c: add enable and disable data phase APIs for master
- drivers: i2c: add enable and disable address phase APIs for master
- drivers: i2c: add enable and disable start phase APIs for master
- drivers: i2c: add i2c_master_set_slave_address API
- drivers: i2c: add i2c_master_issue_data_transmission API
- drivers: i2c: add i2c_set_data_count API
- drivers: i2s: add i2s_config_multiline_transfer() API
- drivers: sdxc add api for interrupt_signal retrieval.
- drivers: adc12: fix using a wrong calibration value
- drivers: ffa: add long data support.
- drivers: qeiv2: add qeiv2_config_phmax() and qeiv2_config_phparam() APIs
- drivers: sdm: add new feature GATE/Timestamp API.
- components: add i2c component
- components: enet_phy: add enum enet_phy_link_unknown in enet_phy_link_status_t
- components: spi: add the spi slave is not support QSPI and DSPI judgment
- components: add plb filter component
- components: add plb lin clock detection.
- boards: add macro BOARD_BUTTON_PRESSED_VALUE
- boards: hpm6750evk2: pinmux: fix build warning in init_sdxc_clk_data_pins() with zcc toolchain
- middleware: hpm_sdmmc add sdio support.
- middleware: modify rvbacktrace resources file.
- middleware: add RvBacktrace resources.
- middleware: add trace recorder rtthread support
- middleware: add trace recorder support
- middleware: add uC/OS-III gptmr support
- middleware: usb: add macro CONFIG_USB_DEVICE_FORCE_FULL_SPEED instead of CONFIG_USB_DEVICE_FS
- middleware: usb: add macro CONFIG_USB_HOST_FORCE_FULL_SPEED to force usb host working in full speed
- middleware: add OpENer support
- middleware: fatfs: sdxc add support for interrupt-driven mode.
- middleware: hpm_sdmmc add support for interrupt-driven mode and osal.
- middleware: hpm_mcl: add 3p3z convert pid function.
- middleware: wifi add the MHD wifi stack.
- samples: add rtthread rvbacktrace under using fp register.
- samples: add baremetal rvbacktrace under no using fp.
- samples: add baremetal rvbacktrace using fp.
- samples: add info to OpENer samples's doc
- samples: add rtthread trace recorder sample
- samples: add trace recorder freertos sample
- samples: add uC/OS-III hello world using gptmr as systick source
- samples: add master and slave samples for i2c dma components
- samples: add master and slave samples for i2c polling components
- samples: add OpEner multicore motor control
- samples: add OpEner motor control
- samples: add OpENer blinky
- samples: spi_components: slave: add notice content for all slave samples readme doc
- samples: drivers: spi: add notice content for all spi slave readme doc
- samples: sdxc add support for interrupt-driven mode.
- samples: lwip: add conditional compilation for application macros
- samples: lwip: add a lwip_udpecho_freertos_socket sample
- samples: lwip: add a lwip_udpecho_rtthread-nano
- samples: lwip: add a lwip_udpecho_freertos sample
- samples: lwip: add a lwip_udpecho
- samples: lwip: lwip_tcpclient_freertos_socket: add a macro name of task priority for netif_update_link_status
- samples: lwip: lwip_tcpecho_freertos_socket: add a macro name of task priority for netif_update_link_status
- samples: cherryusb: add cdc acm host sample
- samples: motor_ctrl: bldc_xxx & step_motor_foc: add missing diff_sel passed into adc12_init
- samples: ethercat: ecat_cia402: motor: bldc_foc: add missing diff_sel passed into adc12_init
- samples: drivers: adc: adc12: add missing diff_sel passed into adc12_int
- samples: tsn: tsn_ethernet: lwip_tcpecho: add interrupt usage
- samples: plb: add plb filter sample
- samples: optimize demo current loop time.
- samples: lwip: mhd_wifi_demo add wifi demo for ap6256.
- samples: add uart lin slave buadrate adaptive samples.
- samples: cherryusb: add uvc demo
- samples: lwip: common: single: add an API for getting the DHCP ready staus when enabling DHCP
- samples: lwip: add a lwip_ping_freertos_socket sample
- samples: tsn: add tsn_psfp_egress
- samples: tsn: add tsn_stmid_frer_ingress
- samples: tsn: add tsn_stmid_frer_egress
- samples: tsn: add tsn_frame_preeemption_ingress
- samples: tsn: add tsn_frame_preemption_egress