Change Log

[1.7.0] - 2024-09-30:

Main changes since 1.6.0 Tested Segger Embedded Studio Version: 8.16a Tested Zcc toolchain 3.2.4

Changed:

  • soc: HPM6E00: HPM6E80: add tsw section

  • soc: add hpm_otp_table.h

  • soc: enet: add a macro for DMA bus width

  • soc: system.c: set bpor.por_confing retention bit to avoid bgpr data loss

  • soc: pcfg: add pcfg_wakeup_src_t enum and pcfg_update_periph_clock_mode API

  • soc: hpm5300: exclude fgpio region from dlm

  • soc: add CONFIG_ENABLE_BPOR_RETENTION macro to control bpor retention

  • soc: linker: icf: update cherryusb_usbh_class_info section placement

  • soc: HPM6300/HPM6700: delete pcfg_dcdc_set_current_hys_range() API

  • ip: i2s: add and use clk_i2s_src_audn instead of clk_i2s_src_aud0/1/2/3

  • boards: remove hpm6750evk support

  • boards: hpm6e00evk: update femc pinmux

  • boards: pinmux: set max frequency slew rate for SPI GPIO

  • boards: hpm5301evklite: Change cap1 and comp1 pins of gptmr0

  • boards: hpm5301evklite: change i2c2 to i2c3 for BOARD_APP_I2C

  • boards: add board_init_gptmr_channel_pin API for all board

  • boards: hpm6e00evk: update core1 debugger console readme

  • boards: all: add board_init_acmp_pins API

  • boards: hpm6800evk: adc16: update clock bus name for clock initialization

  • boards: adc16: rename api parameter clk_src_ahb to clk_src_bus

  • boards: add BOARD_APP_ADC16_CLK_BUS definition

  • boards: hpm6e00evk: update board readme

  • boards: hpm6e00evk: bump up DCDC voltage to 1250mv

  • boards: add enet pps input feature and pinmux setting API

  • boards: add missing board feature and pin descriptions for enet pps output pin

  • boards: xxxx.yaml: rename board feature name related to enet pps pin

  • boards: add BOARD_MASTER_I2S and BOARD_SLAVE_I2S

  • boards: add board mic and speaker i2s definition

  • boards: doc: pwm: add pwm pin descriptions.

  • boards: hpm6800evk reduce ddr io leakage.

  • boards: hpm6800evk: pps: adjust pinmux settings

  • drivers: tsw: optimize the logic of sending and receiving APIs

  • drivers: tsw: add APIs for speed, interface, and clock delay settings

  • drivers: tsw: split tsw_ep_enable_mac_ctrl API to two APIs for enableing and disabling

  • drivers: usb: update usb phy init for suspend

  • drivers: qeiv2: update comments

  • drivers: i2c: auto ack needs to be enabled after the transmission is completed for i2c_master_transfer API

  • drivers: adc16: split adc16_set_pmt_queue_enable() into enable and disable API

  • drivers: gptmr: add opmode cntmode monitor configuration member for gptmr_channel_config API

  • drivers: spi: add the judgment that the frequency ratio cannot be greater than 510 for spi_master_timing_init API

  • drivers: enet: add retry logic in DMA initialization

  • drivers: spi: Add slave mode judgment for spi_control_init API

  • drivers: spi: add spi busy state judement for transfer APIs

  • drivers: uart: add disable rx timeout trigger dma function

  • drivers: i2s: add buff data align with frame feature

  • drivers: acmp: add acmp_channel_config_cap_selection

  • drivers: acmp: update acmp_channel_config_dac API

  • drivers: usb: update usb phy init and deinit

  • drivers: enet: add auxiliary snapshot APIs and struct definitions

  • drivers: usb: update usb_force_port_resume() annd add usb_hcd_disable_ase_pse() APIs

  • drivers: tsw: update the prefix of apis starting with tsn to tsw

  • drivers: qeiv2: update qeiv2_config_adcx_adcy_param()

  • drivers: usb: update usb_hcd_disable_ase_pse() & usb_hcd_enable_ase_pse()

  • components: enet_phy: rtl8211: optimize logic for initialization config

  • components: ppi: add assert check for cs_index and cmd_start_index

  • components: ppi: update AD-MUX mode config to decrease address latch

  • components: smbus: i2c_master_write replaces i2c_master_transfer for all smbus write APIs

  • components: serial_nor: Added configuration return judgment for transfer API

  • components: serial_nor: judge DMA sending completion for hpm_spi_transfer_via_dma API

  • components: spi: add spi busy state judgment for hpm_spi_transfer_init API

  • components: i2s_over_spi: add hpm_i2s_master_over_spi_tx_buffer_nonblocking API

  • components: i2s_over_spi: optimized hpm_i2s_master_over_spi_tx_stop API

  • components: i2s_over_spi: add hpm_i2s_master_over_spi_tx_is_busy API

  • middleware: hpm_math: support zcc new version

  • middleware: cherryusb: update to v1.4.0

  • middleware: lwip: CMakeLists.txt: add cmake flag for apps

  • middleware: cherryusb: don’t clean csc bit when init

  • middleware: cherryusb: msc host: support multi msc device

  • middleware: fatfs: cherryusb: support two msc device

  • middleware: reduce netx mem usage

  • middleware: cherryusb: host: update usb_hc_deinit()

  • middleware: usbx: host: delete mode setting in usb_host_mode_init()

  • middleware: hpm_sdmmc: sdcard: added retransmission to improve SPI SD card compatibility

  • middleware: tinyengine: rename old function

  • samples: audio_codec: change default codec setting in CMakeLists.txt

  • samples: adc16 & motor_ctrl: update adc16 preemption queue enable control APIs

  • samples: ppi: parallel_adc: update function name

  • samples: ppi: async_sram: update to support AD Mux Mode

  • samples: lwip & modbus: add judgement for the return value of enet controller initialization

  • samples: lwip: lwip_iperf: exclude flahsh_uf2 & flash_uf2_release targets

  • samples: lwip: add conditional compilation for RMII port

  • samples: cherryusb: msc host: adapter to fatfs update

  • samples: drivers: acmp: replace init_acmp_pins API with board_init_acmp_pins API

  • samples: ecat: read mailbox ram buff by ram alias address

  • samples: ecat: set PHY offset

  • samples: ecat_phy: disable PHY addr 00 broadcast response

  • samples: drivers: adc16: reference APP_ADC16_CLOCK_BUS instead of clk_adc_src_ahb0

  • samples: ecat_io: update flash_eeprom data address

  • samples: ecat: update SSC config xml and ESI xml

  • samples: lwip: ports: rtthread-nano: single&multiple: add sys_arch_protech()/sys_arch_unprotect()

  • samples: power_mode_switch: move sysctl_enable_cpu0_wakeup_source_with_irq() to stop mode settings

  • samples: power_mode_switch: keep puart clock and wakeup enable visible

  • samples: acmp: add a macro TEST_ACMP_DAC_MAX_VALUE for better compatibility

  • samples: drivers: enet: pps: app.yaml: rename dependency

  • samples: ppi: parallel_adc: use macro BOARD_PPI_ADC_CS_INDEX

  • samples: i2s: use BOARD_MASTER_I2S and BOARD_SLAVE_I2S

  • samples: audio_codec: use board speaker macros

  • samples: cherryusb: audio: use board mic and speaker macros

  • samples: lwip & cherryusb/host/usbnet: use the external struct timeval definition from compile system

  • samples: esc: update esc read to 32bit access

  • samples: ecat_foe: update log and README

  • samples: ecat_foe: foe flash read cache maintenance

  • samples: ppi: use macros to select pins

  • samples: drivers: gptmr: cntmode: volatile to key parameter variables to prevent them from being optimized

  • samples: spi_sdcard: Added delay function registration

  • samples: cherryusb: mouse_wakeup: update printf log

  • samples: cherryusb: midi: update readme

  • samples: i2s: change HDMA to XDMA

  • samples: tflm: optimized speed.

  • samples: tflm: add zcc compile options.

  • samples: spi_component: full_duplex: Add known issues in the master readme

  • samples: spi_components: half_duplex: reduce SPI SCLK frequency to adapt to different slave boards

  • samples: spi_components: full_duplex: reduce SPI SCLK frequency to adapt to different slave boards

Fixed:

  • soc: HPM6800: HPM6880: fix the clock bus name for wdg

  • soc: SPI_SOC_TRANSFER_COUNT_MAX Definition error for HPM6E00

  • soc: preserve kept symbols while -flto is enabled

  • soc: hpm6880: fix clk bus name for adc from ahb0 to axis0

  • soc: HPM6300: fix get get_frequency_for_i2s_or_adc() problem

  • soc: HPM6700: fix clock_set_i2s_source() check condition

  • soc: romapi: Fix unexpected data fetch error during flash init/write.

  • soc: linker: gcc: fix fast_ram postion

  • boards: hpm5301evklite: add a missing macro BOARD_APP_ADC16_CLK_BUS

  • boards: i2c init: clock_add_to_group() should be before board_i2c_bus_clear()

  • boards: hpm6800evk pinmux PRS set wrong value

  • boards: hpm6750evkmini: fixed the iomux errata causes the slave to not work issue

  • boards: hpm6750evk2: fixed the iomux errata causes the slave to not work issue

  • boards: hpm6750evkmini: add the missing implement of enabling enet irq

  • boards: hpm6750evkmini: fix touch reset timing.

  • drivers: i2c: correct API name

  • drivers: gptmr: fix cmp value can’t set 0xFFFFFFFF problem

  • drivers: pwmv2: fix counter burst set error.

  • drivers: enet: fix return value of enet_dma_init()

  • drivers: usb: fix usb_dcd_remote_wakeup() api

  • drivers: enet: fix enet max frame size

  • drivers: spi: Fixed mode variable assignment error for spi_slave_get_default_format_config API

  • drivers: i2s: fix fill dummy data in slave mode

  • drivers: adc16: fix ADC16 conversion results in single-ended mode

  • drivers: enet: fix that TSIS interrupt is disabled by default

  • drivers: femc: fix cmd_data_width comment error

  • drivers: spi: fixed offset digit error problem for spi_get_rx_fifo_valid_data_size and spi_get_tx_fifo_valid_data_size APIs

  • drivers: spi: fixed possible packet loss during reception for spi_read_data API

  • drivers: usb: fix phy init for host

  • drivers: touch: gtxx: fix reset timing

  • drivers: mipi dsi: fix bandwidth low

  • drivers: mcan: fix wrong offset in can_rx_message_t.

  • drivers: adc12: fix using a wrong calibration value

  • components: ppi: fix config variable init value

  • components: serial_nor: Fixed the nonblock APIs naming error

  • components: serial_nor: spi: fixed formating issue for write API

  • components: eeprom_emulation, add “fence.i” after nor_flash init

  • components: spi: fixed the waring of no return value for hpm_spi_transfer_init API

  • middleware: fix Nan calculation error.

  • middleware: lwip: apps: lwiperf: fix the type of clk_id from int to clockid_t

  • middleware: fix tickless mode cannot work

  • middleware: eclipse_threadx: netxduo: fix confilicting types for ‘enet_mask_interrupt_event’

  • middleware: tinyengine: zcc compile error.

  • middleware: cherryusb: fix msc class miss return

  • middleware: motor_monitor: fix nds toolchain error

  • middleware: hpm_mcl: pwm output exception.

  • samples: sdm: correct gptmr trigger time

  • samples: gptmr: cmp0 and cmp1 should be setting together

  • samples: i2s_emulation: fixed playback is not actually stopped issue

  • samples: pwmv2: fix pwm period error.

  • samples: drivers: dac: fix output stop after restart in buffer mode

  • samples: fatfs: fix driver_num_buf don’t have EOF

  • samples: dac: buffer mode: fix DAC output of negative narrow pulse nearly to zero at the top of sinewave

  • samples: lwip: fix enet receive buffer size setting

  • samples: lwip: fix some memroy-related issues when using socket/netcon API

  • samples: cherryusb: audio: fix mute problem when audio open

  • samples: power_mode_switch: fix hpm62xx/63xx/67xx into shutdown mode can’t be woke up

  • samples: i2s: fix pdm record data buff size according board

  • samples: lwip_ptp: v1 & v2: fix compiling error with gnu gcc toochain in v13.0

  • samples: i2s_emulation: fixed build error for nds gcc

  • samples: drivers: spi: interrupt: Abnormal working for IAR release build

  • samples: lwip: lwip_ptp_v2: fix function error with flash_sdram_xip_release

  • samples: drivers: spi: dma: master: fixed can not work sometimes with release build issue

  • samples: i2s_emulation: fixed can not stop when playing issue

  • samples: drivers: gptmr: opmode: fixed can not work with release build type

  • samples: dsp: Calculation error in dsp demo.

  • samples: lwip: lwip_ptp_v2: fix function error with flash_sdram_xip_release

  • samples: drivers: uart: uart_hardware_rx_idle: fiexd can not work with zcc release build type

  • samples: bldc offline detection: fix release run error.

  • samples: mono: fix value get logic on zcc.

  • samples: fix sample slave tamagawa’s trx error handling method

  • samples: ecat: fix build ZCC error

  • samples: lower power: hpm6300 and hpm6700 can’t use pcfg_dcdc_set_current_hys_range() API

  • cmake: ide: correct glob source adding

  • cmake: zcc: correct arch setting to enable dsp

  • scripts: add errors=ignore and encode=utf8 parameters to avoid python unicode build error.

  • 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()

  • doc: fix threadx doc title

Added:

  • soc: HPM6300: add pps1_en

  • drivers: add hrpwm recovery method.

  • drivers: trgmux: add hrpwm calibration driver.

  • drivers: sei: add sei_set_dma_req_enable() API

  • drivers: ppi: add and use ppi_ns2cycle() API

  • drivers: i2c: add I2C_WRITE_CHECK_ACK flag for i2c_master_transfer API

  • drivers: i2c: add i2c_master_seq_transmit API

  • drivers: plb: add new plb interface

  • drivers: tsw: add tas, cbs and pps APIs

  • drivers: tsw: add tx-timestamp-fifo APIs

  • components: tsw_phy add RTL8211 and JL1111 drivers

  • components: add pmbus

  • components: ppi: add README.md docs

  • components: add plb abz encoder.

  • middleware: add hpmicro monitor.

  • middleware: motor_ctrl: add motor parameter detection.

  • middleware: add tsn

  • samples: tsn: add lwip_tcpecho

  • samples: bldc_foc: add motor monitor demo.

  • samples: motor_ctrl: add bldc parameter detection demo.

  • samples: drivers: pwmv2: add hrpwm calibration demo.

  • samples: cherryusb: add mouse remote wakeup sample

  • samples: gptmr: add opmode/monitor/cntmode sample

  • samples: add pmbus samples

  • samples: cherryusb: dual_host: support two msc device

  • samples: ecat: add ecat_foe samples

  • samples: ecat: add ecat_cia402 samples

  • samples: ecat: add ecat_foe driver

  • samples: ecat: update hpm_ecat_hw driver

  • samples: drivers: enet: add pps_capture sample

  • samples: add plb encoder demo.

  • samples: tsn: add tsn_time_aware_scheduling

  • samples: tsn: add tsn_ptp_freertos(master&slave)

  • samples: tsn: add tsn_credit_based_shaper

  • samples:ecat_cia402: add virtual motor support

[1.6.0] - 2024-06-28:

Main changes since 1.5.0 Tested Segger Embedded Studio Version: 8.10d Tested IAR Embedded Workbench for RISC-V Version: 3.30.1

Known Issue:

  • some IAR projects does not work properly when optimization level is increased

Changed:

  • soc: reorganize the directory structure

  • soc: hpm6750: declare get_frequency_for_source API for clock drver header file

  • soc: update soc cmakelists to add b ext info

  • soc: hpm6750: add feature for ioc pad ctrl setting issue

  • soc: toolchains: gcc: correct LMA for NOLOAD sections

  • soc: move eh_frame into separate section

  • boards: hpm6750xxxx apply workaround for E00029.

  • boards: change hpm5301evklite adc16 channel

  • boards: board.h: adc16: add marco BOARD_APP_ADC16_HW_TRIG_SRC_CLK_NAME

  • boards: adjust function position of adc pin initialization

  • boards: hpm6300evk and hpm6e00evk: sdram use px07 as femc dqs pin

  • boards: hpm6e00evk: rename init_sdram_pins to init_femc_pins

  • boards: hpm6e00evk: change board i2c instance to I2C0

  • drivers: can/mcan add parameter check for low-level bit timing.

  • drivers: enet: add bitfield ENET0_RMII_TXCLK_SEL for hpm6300

  • drivers: i2c: add DATACNT high byte process

  • drivers: pwm: update HRPWM process

  • drivers: spi: optimize reading speed for spi_read_data API

  • drivers: spi: add set/get data phase format APIs for spi master

  • drivers: spi: delete the spi startand operation APIs

  • drivers: adc16: remove an unused member conv_duration from adc16_config_t

  • drivers: enet: update for enet_interrupt_enable_t

  • drivers: mcan reduce unnecessary register access in mcan_read_rxfifo.

  • drivers: mtg: add calculate function param clock

  • drivers: mtg: add several calculate functions

  • drivers: mcan lookeup the mcan msg ram base via mcan_soc_msg_buf variable if the MSG_BUF is in AHB RAM.

  • drivers: adc16: disable improvement logic of adc16 for continuous sampling maximum voltage

  • drivers: mcan improve transmitter delay compensation setting logic.

  • drivers: femc: rename data_width_in_byte to cmd_data_width

  • drivers: femc: update ns2cycle() to align up

  • drivers: common: add packed attribute

  • drivers: femc: delete duplicate config

  • drivers: mtg: change the default parameters to the low order filter

  • drivers: adc16: add API adc16_set_seq_hw_trigger_enable()

  • drivers: spi : convert enumeration return in that gets parameters APIs

  • drivers: pwm: add fault recovery code.

  • driver: pwm: change pwm trig time

  • components: enet_phy: dp83867/rtl8211: move the macro definition RGMII to board-level CMakeLists.txt

  • components: eeprom_emulation: Add ATTR_RAMFUNC for all function

  • components: eeprom_emulation: add power-off protection mechanism.

  • components: dma_mgr: add burst in fixed transfer size and swap feature

  • components: spi: add full_duplex and half_duplex operating APIs

  • components: spi: support 1 to 32 bits width transfer for nonblocking APIs

  • components: usb: device: support iso transfer mult feature

  • middleware: hpm_sdmmc add emmc sleep & wakeup function.

  • middleware: tinyusb: ehci: support chain transfer

  • middleware: threadx: add low power support

  • middleware: cherryusb: update for advance descriptor

  • middleware: hpm_sdmmc: optimized to support multiple cards

  • middleware: cherryusb/tinyusb/usbx: enable suspend isr

  • middleware: FreeRTOS: update to 202210.01 lts

  • middleware: cherryusb: update to v1.3.0

  • middleware: freertos: modify missed timer count num

  • middleware: freertos: update IAR port file

  • middleware: freertos: delete fence operations

  • middleware: freertos: make the calculation more simple.

  • middleware: hpm_sdmmc add cache control macro.

  • middleware: hpm_sdmmc: improve the logic for detecting CMD23 support.

  • middleware: freertos: add tickless stop mode support

  • middleware: freertos: add user custom process function call

  • middleware: hpm_mcl_v2: add hpm smc control.

  • middleware: freertos: place xPortxxx to isr_vector section

  • middleware: hpm_math: add dsp support for zcc

  • middleware: microros: add zcc support

  • middleware: rtos: asm adjustment for zcc toolchain

  • middleware: hpm_mcl_v2: add pwm dead area compensation.

  • middleware: hpm_mcl_v2: add dq axis decoupling function

  • middleware: cherryusb: add macro USBH_USE_CUSTOM_ISR/USBD_USE_CUSTOM_ISR

  • middleware: lvgl: upgrade to v9

  • middleware: lvgl: rewrite the scissor.

  • middleware: lvgl: upgrade allocate algorithm for draw_buf.

  • samples: rdc: remove unused dac driver in sample

  • samples: lwip/netxduo/modbus: add conditional compile for reference clock setting in RMII mode

  • samples: audio_codec: common: change FIL_SEARCH_NUM from 10 to 20

  • samples: dhyrstone: surpress build warnings

  • samples: dhrystone Optimize performance.

  • samples: coremark Optimize performance.

  • samples: drivers: spi: interrupt: transmission optimization. The transmission will start after the configuration is completed.

  • samples: adapt spi components to drive and move to the samples dir for spi sdcard samples

  • samples: cherryusb: device: change descriptor string to HPMicro

  • samples: cherryusb: device: use advanced descriptor to support high/full speed

  • samples: rename jpeg to image

  • samples: drivers: sdxc: sd_fatfs: add card hotplug support

  • samples: cherryusb: host: usbnet: replace block to noblock for read terminal char

  • samples: cherryusb: host: usbnet: decrease lwip MEM_SIZE

  • samples: cherryusb: move host hid info print code to thread

  • samples: audio_codec: refactoring code

  • samples: spi: dma: SPI master transmission optimization

  • samples: mtg: make the open_loop_trajectory sample more readable

  • samples: drivers: adc16: add some misc optimization

  • samples: drivers: adc16: add pwmv2 support

  • samples: motor_ctrl: bldc_foc_hw: remove hardware control

  • samples: drivers: mcan add tips for the usage of tdc.

  • samples: vglite: update rtos config file to fit gptmr tickless mode

  • samples: lwip/modus/netxduo: add a function call to get the enet default interrupt config

  • samples: sdm: using pwm to provide clock for sdm sensor.

  • samples: spi_components: half_duplex: updated to support 1 to 32bits width transfer

  • samples: spi_components: full_duplex: updated to support 1 to 32bits width transfer

  • samples: add freertos tickless stop mode sample

  • samples: benchmark: update compile options for zcc

  • samples: drivers: adc16: optimize the process logic of sequence and preemption

  • samples: drivers: sei: device: tamagawa: update eeprom cmd

  • samples: adc12: optimization for trigger mux and trigger frequency settings

  • samples: sei: device: tamagawa: support EEPROM protocol

  • samples: mcl: add pwm dead area compensation.

  • samples: motor_ctrl: add dq axis decoupling function

  • samples: cherryusb: move dual_port samples to dual_port folder

  • samples: cherryusb: adapter to cherryusb v1.3.0

  • samples: drivers: adc12/adc16/dac: support abort feature in interactive terminal

  • samples: lwip: lwip_iperf: support abort feature to reselect the test mode

  • samples: lwip: common: multiple: add definitions of remote ip addresses for iperf

  • samples: motor_ctrl: bldc_lvlg_foc: add lvgl v8.3.5 for this demo

  • samples: tinyusb: uac2: support full speed

  • samples: power_mode_switch: update readme

  • samples: cherryusb: uac2: change default samplerate order

  • samples: bldc_foc: update bldc_foc_angle_align() for hardware loop

  • cmake: toolchain: add ar option to remove timestamp

  • cmake: toolchain: suppress output while querying spec

  • cmake: lld: update link option for zcc

  • cmake/scripts/soc: support b ext convertion to tools

  • cmake: sdk_app_src_glob: modify to recursive

Fixed:

  • soc: update USE_NONVECTOR_MODE defined used

  • soc: initialize .fast_ram.* section

  • soc: iar linker: fix safe stack init

  • soc: add missing ptmr clock

  • soc: hpm6880: fix get_frequency_for_i2s error

  • soc: hpm6880: Modify the value of SPI_SOC_FIFO_DEPTH from 4 to 8. for hpm_soc_feature.h

  • soc: toolchain: iar fix iar ram_stress issue in ram_debug build.

  • boards: hpm5301evklite: fixed can’t output work for gptmr samples such as pwm_generate

  • drivers: enet: fix the clearing of DMA PBL setting

  • drivers: dma: fix dma_clear_transfer_status() API

  • drivers: sdxc Fix timeout calculation issue and DMA enabling logic.

  • drivers: adc16: fix the logic of adc16_set_pmt_queue_enable() when the parameter enable is false

  • drivers: mbox: fix error that BEIE can’t be operated by interface

  • drivers: spi: fixed assignment value error for spi_set_clock_phase and spi_set_clock_polarity APIs

  • drivers: lcdc: fix ST and DMA_ST clear api.

  • drivers: mipi_dsi: fix MIPI_DSI_FMT_RGB565 config.

  • drivers: spi: fixed assignment error issue for enable/disable address phase APIs

  • drivers: i2c: fix return value type of i2c_get_data_count()

  • components: usb device/enet_phy: fix unwanted files in localize folder

  • components: panle: fix panel timing.

  • components: eeprom_emulation: demo flash crashed.

  • middleware: cherryusb: ehci: delete timeout clear before give sem

  • middleware: uC/OS-III: modify fpu context save&restore

  • middleware: cherryusb: fix freertos enter/exit critical

  • middleware: audio_codec: fix hpm_wav_decode() single channel pbuf data

  • middleware: mclv2: fix andes toolchain compiler error.

  • middleware: cherryusb: fix ehci_qh_pool init miss busid for v1.3.0

  • middleware: lwip: apps: lwiperf: fix the bug of failing to restart iperf in TCP/UDP server mode

  • middleware: tinyusb: fix _usbd_dev.speed error to support full speed

  • middleware: hpm_mcl_v2: fix uncontrolled after large changes in motor speed.

  • samples: dhyrstone: fix build issue for release type using nds toolchain

  • samples: lwip: lwip_tcpclient: fix TCP commnuication error after DHCP enabled

  • samples: lwip: lwip_tcpclient_freertos_socket: fix connection error before IP assigned from DHCP

  • samples: correct cmsis_os2/mem_pool project name

  • samples: multicore: common Fix SDP memcpy blocking issue in ram_build.

  • samples: lwip: lwip_tcpecho_xxx_rtthread_nano: fix failing to get IP by DHCP serivice

  • samples: spi_sdcard: fixed the place section name error issue

  • samples: cherryusb: audio: fix wm8960 codec volume max value

  • samples: img: jpeg_decode: fix decode when only one qtab exist.

  • samples: tflm: mlperf: remove unnecessary codes.

  • samples: fix cherryusb mic no sound error

  • samples: spi_components: polling: fixed doesn’t work for polling samples

  • samples: tamagawa: fix delay times is zero.

  • samples: bldc_foc: fix hardware_foc position loop error

  • cmake: link ndsgcc itf for application

  • cmake: localize_sdk: use utf-8 as default encoding

  • cmake: ide: keep preprocessing definition

Added:

  • soc: add zcc toolchain support

  • soc: clock_driver Add clock_set_wdg_source API.

  • soc: gcc linker: add fast_ram.init section size overflow check

  • soc: add FreeRTOS vector mode support

  • soc/board: add HPM6E80 support

  • drivers: common: add macros for .fast_ram.*

  • drivers: enet: add an API enet_get_default_interrupt_config

  • drivers: enet: add MII mode support

  • drivers: common add api for converting tick to us or ms.

  • drivers: pllctlv2 add new API to configure PLL.

  • drivers: uart: add uart_modem_write_rts_pin API

  • drivers: uart: add get/clear addr match flags APIs such as addr_match, addr_match_idle, data_lost

  • drivers: add lobs drivers

  • drivers: usb: add some APIs for low power future usage drivers: spi: add spi_slave_set_user_status API

  • drivers: usb: add suspend/resume APIs

  • drivers: usb: add enter/exit lower power suspend APIs

  • drivers: spi: add read SPI RX/TX FIFO size APIs

  • drivers: usb: add usb_set_port_test_mode() API

  • drivers: sdp add new apis.

  • drivers: mcan add new api for canceling pending transmission.

  • drivers: mtg: add get&clear event irq interface

  • drivers: qeiv2: add oneshot mode

  • drivers: add clc driver

  • drivers: add vsc driver

  • drivers: spi: add get/set shift direction APIs

  • drivers: uart: add an new API uart_try_receive_byte()

  • drivers: pixelmux: add api that set mipi dsi date type.

  • drivers: gptmr: add monitor function APIs

  • drivers: gptmr: add opmode APIs

  • drivers: gptmr: add qeimode APIs

  • components: add i2s_over_spi

  • components: codec: add wm8978

  • components: enet_phy: add jl1111 driver

  • components: add ppi components

  • components: touch: add gt9271 driver.

  • components: debug_console: add a new API console_try_receive_byte()

  • middleware: add lodepng

  • middleware: add minimp3

  • samples: cherryusb: device: add WinUSB 1.0 and WinUSB 2.0 samples

  • samples: lwip: add LPI interrupt mask setting

  • samples: add i2s_emulation sample

  • samples: lvgl_audio_player: support mp3 decoder

  • samples: uart: add uart_rx_line_status sample

  • samples: add half_duplex samples for spi_components

  • samples: add full_duplex samples for spi_components

  • samples: drivers: sdxc: emmc add new sameple for eMMC sleep & awake.

  • samples: drivers: add lobs sample

  • samples: drivers: spi: sd/sd_fatfs: support DMA transfer

  • samples: threadx: add low power mode sample

  • samples: image: add png encoder sample

  • samples: image: add png decoder sample

  • samples: audio_codec: add decoder_mp3 sample

  • samples: ppi: add parallel adc sample

  • samples: ppi: add async_sram sample

  • samples: qeov2: add wave_out sample

  • samples: qeov2: add abz_out sample

  • samples: pwm: add async fault demo

  • samples: motor_ctrl: add hardware foc

  • samples: drivers: pwmv2: add pwmv2 pair waveform

  • samples: dmav2: add dmav2_fixed_burst_swap sample

  • samples: qeiv2: add oneshot mode sample

  • samples: add smix_dao sample.

  • samples: add ecat_io sample.

  • samples: cherryusb: add one host and one device dual port sample

  • samples: add pwm/hrpwm fault mode

  • samples: lwip: add lwip_iperf_multi_ports

  • samples: drivers: tsw: add a tsn_switch sample

  • cmake: add symbol HPM_BUILD_TYPE to specify build type

  • docs: add generated cmake_intro.rst

  • docs: getting started: add zcc support related information

[1.5.0] - 2024-03-29:

Main changes since 1.4.0

Tested Segger Embedded Studio Version: 7.32a Tested IAR Embedded Workbench for RISC-V Version: 3.20.1

Known Issue:

  • some IAR projects does not work properly when optimization level is increased

Changed:

  • soc: iomux: update macro prefix in pmic_iomux and batt_iomux.

  • soc: feature: change usb endpoint max number from 8 to 16

  • soc: correct svd files and add subpart module list

  • drivers: usb: change usb_phy_get_line_state() to external function

  • drivers: qeiv2: update filter length setting

  • drivers: adc12/adc16: add sanity check for sample cycle

  • drivers: femc: add delay_cell_disable config option

  • drivers: i2s: change fifo threshold parameter.

  • drivers: i2c: replace and use the macro definition of hpm_soc_ip_feature.

  • drivers: uart: supplementary description of uart_check_status API.

  • components: enet_phy: lan8720/rtl8201/rtl8211: unify the default config with type bool

  • components: enet_phy: remove unused included header file

  • components: enet_phy: rtl8201/rtl8211: update register description

  • components: dma_mgr: change isr handler from static to public

  • middleware: tinyusb: host: use echi drivers

  • middleware: tinyusb: rename CFG_TUSB_HOST_DEVICE_MAX to CFG_TUH_DEVICE_MAX

  • middleware: tinyusb: update to v0.16

  • middleware: rtthread-nano: use soc reset_handler and define MAIN_ENTRY as entry

  • middleware: fatfs: tinyusb: adapter to tinyusb update

  • middleware: threadx: use TX_TIMER_TICKS_PER_SECOND to config work ticks

  • middleware: threadx: use samples tx_user.h

  • middleware: uC/OS-III: enable sw interrupt in OSCtxSw/OSIntCtxSw

  • middleware: ucos: ports: Added IAR portable layer for ucos.

  • middleware: cherryusb/azure_rtos: add defined ICCRISCV for iar

  • middleware: hpm_math: simplify libdsp path.

  • middleware: cherryusb: update to v1.1.0

  • middleware: rtthread-nano:halt cpu when exception occur.

  • middleware: hpm_math: simplify libnn path.

  • middleware: threadx: move frequently called function to ram.

  • middleware: tinyusb: change endpoint number from 8 to 16

  • middleware: usbx: change endpoint number from 8 to 16

  • middleware: cherryusb: msc device: update to support multi lun and deinit

  • middleware: eclipse_threadx: update license

  • middleware: fatfs: tinyusb: add osal_task_delay() when use rtos wait

  • middleware: tinyusb: update CMakeLists.txt and delete custom osal_task_delay()

  • middleware: tinyusb: add debounce in port change isr

  • samples: erpc: add middleware src use middleware CMakeLists.txt

  • samples: multicore: core1: use board_init_core1() API

  • samples: multicore: coremark: delete custom reset_handler and use app_main as MAIN_ENTRY

  • samples: tinyusb: update samples to adapter tinyusb v0.16

  • samples: usbx: host: delete unused hpm_usb_host.h

  • samples: usb: delete CONFIG_USB_HOST set

  • samples: lvgl_coremark: disable freqswitch_btn when coremark running

  • samples: mono: move to driver directory.

  • samples: freertos: change configMAX_PRIORITIES from 7 to 32

  • samples: rtthread: delete unused macro RT_THREAD_PRIORITY_32

  • samples: cherryusb: usbnet: decrease rtos stack config size

  • samples: lwip: all: unify logs about IP information

  • samples: lwip: lwip_https_server: remove an unused file

  • samples: lwip: all: update DHCP progress logic

  • samples: lwip: common: remove s_pxNetIf

  • samples: lwip: adjust the directories of netconf.c/netcof.h

  • samples: lwip: common: optimize speed for getting IP from DHCP server

  • samples: lwip: rename common_lwip.c to common.c

  • samples: lwip: common: adjust the call logic of netif_set_up/netif_set_down

  • samples: lwip: common: change the time of invoking netif_user_notification

  • samples: lwip: common: rename user_notification to netif_user_notification

  • samples: lwip: adjust directory structures to be compatible with single and multiple network ports

  • samples: use generate_ide_projects for new samples

  • samples: cherryusb: device: cdc acm: reorganize directory structure

  • samplse: gptmr: t_shape_accel_decel: modify the source address mode of DMA.

  • samples: cherryusb: device: change readbuf size from 2048 to CDC_MAX_MPS

  • samples: drivers: femc: update sdram dqs config

  • samples: update app.yaml to use ip_feature

  • samples: drivers: uart: change to app uart

  • samples: audio_codec: update wm8960 I2S protocol.

  • samples: drivers: cam: change cam sample to cam_dvp sample.

  • samples: usbx: device: msc: decrease ram disk size to 16KB

  • samples: cherryusb: msc device: update to support multi lun

  • samples: driver: uart_lin: support LIN transceiver on board.

  • samples: adc: temp: rename temp to adc16_temperature

  • samples: bldc block: Compatible with both hall and qeiv2 peripherals.

  • samples: motor_ctrl: Modify the value of pwm reload.

  • samples: lwip: common: single/multiple: update the size passed into sys_mbox_new()

  • samples: lwip: common: single/multiple: replace enet_get_link_status with netif_is_link_up

  • samples: lwip: lwip_https_server: remove unused header file

  • samples: lwip: rename macro TCP_XXX_PORT

  • samples: lwip: add cmake flag for netconn/socket api

  • samples: decode_wav: sd_fafts: update sd_choose_music.

  • samples: power_mode_switch: maintain xpi0 clock on switching preset

  • samples: dhrystone Change the optmization level to O3.

  • samples: tinyusb: hid_generic_inout: delete redundant image

  • samples: power_mode_switch: hpm67/hpm63: preserve femc clock at wait/stop mode

  • samples: erpc: core1: use optimization -os

  • samples: update uart_tamagawa to use software trig if TRGM not exist.

  • samples: eeprom_emulation: reduce management area

  • samples: sdxc: use block_size instead of 512

  • samples: erpc: add -fno-exceptions compile option

  • samples: tinyusb: disable debug log print

  • boards: hpm5300evk and hpm6800evk: add delay after USB_PWR Pin init for power stable

  • boards: hpm6750evkmini: modify gptmr pins.

  • boards: hpm6200evk: modify gptmr pins.

  • boards: hpm6200evk: modify the i2c pins.

  • boards: hpm6750xxx: update sdram dqs config

  • boards: hpm6800evk:pinmux Increase drive strength for sdxc pins

  • boards: iomux: update macro prefix for pmic_iomux and batt_iomux.

  • boards: rename board feature

  • boards: update BOARD_APP_UART definition

  • boards: rename console definitions

  • boards: hpm5301evklite: update uart clock in board.c.

  • boards: hpm6750evkmini: change BOARD_GPTMR_PWM_DMA_SRC definition.

  • docs: samples: use glob in high level readme.

  • docs: update top level readme.

  • docs: netxduo: update sntp readme.

  • docs: threadx: update threadx hello readme.

  • docs: lwip: align pictures to the left

  • docs: pip: add cmake doc dependency

  • docs: add changelog to sphnix-doc.

  • scripts: ses: generate asm after build by default.

  • scripts: update linked project path logic.

  • scripts: check_board_cap.py: check ip feature’s availability

  • cmake: remove CMP0116 setting.

  • cmake&scripts: clarify the error caused by core1 compiling failure.

  • scripts: ses/iar: use relpath in project file

Added:

  • soc: hpm6360/hpm6750/hpm6800: add MAC-related definitions in OTP section

  • soc: reset: add MAIN_ENTRY macro to custom define main entry

  • soc: add hpm6850 and hpm6830 part.

  • soc: soc_modules.list: add tamper drivers

  • soc: Add IAR toolchain support.

  • soc: add ip feature to soc_modules.list

  • soc: add hpm_soc_ip_feature.h

  • soc: driver: ppor: add reset hold operation APIs

  • soc: clock_driver add the clock_get_divider API.

  • soc: sysctl: add apis to control clock preservation

  • soc: toolchains: gcc: ram linker: add ILM last address overflow check

  • drivers: mcan Add timeout counter support.

  • drivers: tamper: add tamper driver

  • drivers: cam: add cam_update_buffer2 API

  • drivers: opamp: Add user configuration code.

  • drivers: lcdc: add stride for layer config.

  • drivers: pdma: add pdma_blit_ex.

  • drivers:pllctl add out-of-bound check in pllctl driver.

  • components:uart_lin: add hpm_uart_lin_send_wakeup() API

  • components: enet_phy: add LAN8720 driver

  • components: enet_phy: add definition of enet_phy_link_status_t

  • middleware: cherryusb: host: add dual port support

  • middleware: cmsis_os2: adapter to rtthread wrapper

  • middleware: cmsis_os2: update freertos files

  • middleware: cmsis_os2: adapter to threadx wrapper

  • middleware: cmsis_os2: adapter to ucOS-III wrapper

  • middleware: hpm_sdmmc Add eMMC config partition API.

  • middleware: cherryusb Add IAR toolchain support

  • middleware: erpc Fix IAR RISC-V support issue

  • middleware: tflm: add IAR riscv support in flatbuffer

  • middleware: FreeRTOS: portable:Added IAR portable layer.

  • middleware: segger_rtt Added EWRISCV support

  • middleware: hpm_math Add nds_dsp library for IAR.

  • middleware: lwip: cc: add PACK_STRUCT_XXX definitions for IAR platform

  • middleware: uC/OS-III: enable plicsw in IAR asm code

  • middleware: add tinyengine

  • middleware: threadx: add support for gptmr.

  • middleware: threadx: add profile support.

  • middleware: add agile_modbus.

  • middleware: add cherryrb.

  • middleware: cherryusb Add missing swap32/swap16 implementation.

  • middleware: hpm_mclv2: add block type drive motors

  • middleware: cherryusb: fix usbh_core ep0 buffer index

  • boards: hpm6200xxx and hpm6750xxx: add board_init_core1() API

  • boards: add tamper feature and pins init

  • boards: hpm5300evk: add board_init_console() declaration in board.h

  • boards: hpm6750evk/hpm6750evk2: add board_dual_usb feature

  • boards: openocd: add windows guide to *_all_in_one.cfg

  • boards: openocd: soc: add reset_soc proc

  • board:add pgpio configuration on hpm5301evklite

  • samples: drivers: add mono sample.

  • samples: drivers:mcan Add timeout counter sample.

  • samples: drivers: tamper: add tamper sample

  • samples: cmsis_os2: blinky: add rtthread samples

  • samples: cmsis_os2: add msg_queue sample

  • samples: cmsis_os2: add mem_pool samples

  • samples: cmsis_os2: msg_queue: add ucOS-III support

  • samples: cmsis_os2: blinky: add ucOS-III support

  • samples: lwip: common: add a task netif_update_link_status

  • samples: lwip: add MAC address load from OPT MAC area

  • samples: cherryusb: device: cdc acm: add cdc_acm_uart_com sample

  • samples: cherryusb: device: add msc sdcard sample

  • samples: tinyengine: add person detection.

  • samples: rtos: add threadx gptmr sample.

  • samples: modbus: tcp: add tcp samples.

  • samples: modbus: rtu: add rtu sample.

  • samples: add cherryrb sample.

  • samples: cherryusb: host: add dual port sample

  • samples: cherryusb: device: add dual port sample

  • samples: cherryusb: device: add dual lun msc sample

  • samples: lwip: ports: rtthread-nano: multiple: add arch-related files

  • samples: lwip: ports: freertos: multiple: add arch-related files

  • samples: lwip: common: multiple: osal: add osTaskFunction definition

  • samples: lwip: add a lwip_tcpecho_multi_ports_rtthread-nano sample

  • samples: lwip: add a lwip_tcpecho_multi_ports_freertos

  • samples: lwip: lwip_tcpecho_xxx: add definitions for task priorities

  • samples: lwip: lwip_tcpecho_freertos_socket: newly add

  • samples: lwip: lwip_tcpclient: newly add

  • samples: lwip: add lwip_tcpclient_freertos_socket

  • samples: vglite: add sample of rotate tiger.

  • samples: lwip: lwip_tcpclient_freertos_socket: fix failure to run

  • samples: lwip: lwip_tcpclient: fix failure to run with some release-related type

  • samples: jpeg: jpeg_encode: add debounce for button.

  • docs: add cmake doc

  • docs: hpm5300evk: add qeiv2 sin/cos pins

  • scripts: support sdk project localization.

  • cmake: add nds-gcc options to sdk_lib for nds-gcc.

  • cmake/scripts: add IAR project generation support

  • cmake: add symbols to specify linker for tools.

  • cmake: add sdk_*_src_glob.

  • cmake: add custom targets for localization.

Fixed:

  • soc: hpm6750: fix segger linker vectors order

  • soc: hpm_interrupt.h Fix compiling warning for DSP related macros

  • soc: hpm6750: otp Fix OTP program and read logic

  • soc: hpm6880: clock Fix wrong enum value for TSNS clock.

  • soc: clock driver: correct the clock name value for pll clocks.

  • soc: HPM6280: fix adc/dac clock setting

  • soc: ppor: fix ppor clear reset flag and set reset type API error

  • soc: HPM6880: fix i2s clock config driver

  • drivers: adc12: fix calibration setting error

  • drivers: cam: DMASA_FB2 need to be assigned whether FB2 buffer is enable or not.

  • drivers:can correct the logic of disabling re-transmission for ptb & stb.

  • drivers: qeo: fix driver error

  • drivers: i2s: ensure valid BCLK before call software reset.

  • drivers: pdma: fixed OUT_PS[] config.

  • components: wm8960: invert LRCLK to align with soc I2S.

  • middleware: uC/OS-III: fix register t0 unsafe.

  • middleware: ptpd: fix netShutdown error in ptpd initialization

  • middleware: cmsis_os2: task should call exit interface before exit

  • middleware: threadx: fix threadx profile RA register save and restore bug.

  • middleware: hpm_mcl: fix divide-by-zero error. refs: hpm_sdk-#1091

  • middleware: cherryusb/tinyusb/usbx: device: fix transfer_len not reset

  • middleware: cherryusb/usbx: fix dtd return problem

  • middleware: cherryusb/tinyusb/usbx: fix usb device interrupt should be check active status

  • middleware: tinyusb: fix ehci cap_reg address error

  • middleware: tinyusb: fix hid report id

  • middleware: cherryusb: fix usbd_ep_close not reset ep_enable flag

  • middleware: cherryusb: fix rndis message length check

  • middleware: freertos: fix implementation error in xPortIsInsideInterrupt.

  • boards: hpm6200evk: fix tamper pin config

  • board: openocd: all_in_one: hpm6800 config file is missed.

  • boards: openocd: all_in_one: hpm5300: correct soc config name.

  • samples: threadx hello: fix printing errors.

  • samples: drivers: ad12/adc16: fix initialization sequence for trigger source, trigger mux and trigger target config

  • samples: lwip: lwip_ptp: fix netSend error before link-up

  • samples: dma: fix dma uart init position

  • samples: drivers:spi:master_trans_large_amound_of_data Fix logic error if SPI support 4GB transfer size

  • samples: sdxc: add boundary protection for last 1024 blocks test

  • samples: lwip: common: multiple: fix typo of enet_update_dhcp_state()

  • samples: lwip: common: single/multiple: fix timeout passed into sys_arch_mbox_fetch()

  • samples: e2prom: bugfix: base read fail if run perf firstly .refs:hpm_sdk-#1499

  • samples: modbus: tcp: use volatile to prevent the compiler from optimizing out key variables

  • samples: modbus: rtu: fixed failed to run after turning on optimization issue.

  • samples: power_mode_switch: hpm68xx: fix ddr access issue for wait/stop mode

  • samples: cherryrb: fixed stack overflow issue

  • samples: lwip: lwip_tcpecho_multi_ports_ports_rtthread-nano: fix failure to run

  • sample: jpeg: jpeg_encode: fix that udisk can’t be mounted when first capture.

  • cmake: correct board search path symbol for core1.

  • cmake: gcc: fix system include path.

  • cmake: fix sdk_link_libraries failed to link std lib.

  • cmake: EXTAR_LD_FLAGS to be added as ld options.

  • docs: lwip_ptp: v1: salve: fix format error

  • docs: samples: ppor: change title from sysctl to ppor

  • docs: hpm6750evk2: fix table display error

[1.4.0] - 2023-12-29:

Main changes since 1.3.0

Tested Segger Embedded Studio Version: 7.32

Changed:

  • soc: hpm5301: add hpm5301

  • soc: hpm6880: add hpm6880

  • soc: HPM6750: pcfg: update dcdc dcm mode config

  • soc: clock driver: update clock_set_source_divider() and clock_get_source()

  • boards: add hpm5301evklite

  • boards: add hpm6800evk

  • boards: update clock_set_source_divider() to use clk_src_t type param

  • boards: hpm6750evkmini: use the same uart port as core1 for some samples.

  • drivers: dao: update driver support new feature on hpm6800

  • drivers: adc16: update comment about cal_avg_cfg in calibration

  • drivers: qeiv2: change adc trigmux name x to 0 and y to 1

  • drivers: femc: add overflow protect to time config

  • drivers: mcan Enlarge the range of CAN_EVENT_ERROR.

  • components: serial_nor: add subdirectory in cmakelists

  • middleware: cherryusb: update to v0.10.2

  • middleware: cherryusb: rename host and device isr

  • middleware: FreeRTOS: xPortIsInsideInterrupt() using CSR_MSCRATCH

  • middleware:hpm_sdmmc Enhanced all speed modes support for SD and eMMC.

  • middleware: usbx: device: support chain transfer

  • samples: cherryusb: host: rndis: integrate dhcp thread into ping thread for host rndis ping and iperf sample

  • samples: adc: temp: add isr for temp out of thresholds

  • samples: drivers: acmp: optimization for comparing input voltage

  • samples: lwip: add DHCP macro definition in CMakeLists.txt

  • samples: lwip_ptp: enable DHCP feature in PTP samples

  • samples: drivers: qeiv2: update API for adc-qeiv2 pin initialization

  • samples: bldc_foc: change adc buffer size from 40 words to 48 words

  • samples: remove explicitly c++ standard setting.

  • samples: driver: cam: set default cmake build type

  • samples: lwip: update to Class C static IP adress

  • samples: tinyuf2: remove unnecessary cache ops.

  • samples: lwip: lwip_tcpecho_freertos: optimization for API call in a thread-safe way

  • samples: lwip: lwip_ptp: v1: slave: update static ip

  • samples: lwip: optimize DHCP enable logic

  • samples: lwip: opts: adjust the allocation strategy of memory pool

  • samples: lwip: lwip_iperf: adjust MEM_SIZE for saving memory consumption

  • samples: lwip: lwip_tcpecho_multi_ports: update the second IP with C class

  • samples: enet: optimization for PHY selections

  • samples: dma: update uart rx circle transfer buffer size

  • samples: drivers: sdxc/emmc Correct doc for emmc sample.

  • cmake: sdk_link_libraries link libraries for supported tools.

  • cmake: add project name for hpm_sdk sub directory.

  • cmake: decouple CMAKE_BUILD_TYPE and linker script.

  • cmake: ses: remove -Ox from gcc option list.

  • cmake: set default c++ standard to c++11.

  • Update CONFIG_HAS_xxx to HPMSOC_HAS_xxx.

  • segger: enable all warnings.

  • segger: release: release optimization level use cmakelist config

  • scripts: ses: set intermediate dir in project file.

  • docs: remove quick start guide from top level readme

  • docs: change doc structure.

Added:

  • soc: HPM5361: add trgm filter shift length feature

  • soc & drivers: hpm5300: add DMAMUX_SOC_WRITEONLY and TRGM_SOC_HAS_DMAMUX_EN features

  • drivers: lcb: add lcb driver.

  • drivers: sdxc add more APIs for timing and power control.

  • drivers: mipi_csi: add mipi csi.

  • drivers: cam: add cam_stop_safely API

  • components: usb: device: add dtd chain transfer

  • components: panel: enable panel component.

  • components: camera: ov5640: add mipi interface.

  • middleware: rtthread-nano: add v3.1.5

  • middleware: rtthread-nano: add FPU support.

  • middleware: tinyusb: device: update to support chain transfer

  • middleware: cherryusb: device: update to support chain transfer

  • middleware: vglite: add 4.0.49.

  • middleware: cherryusb: add USB_OSAL_WAITING_FOREVER for sem and mq use

  • middleware: add hpm_mcl_v2

  • middleware: lwip: add ptpd v1 & v2

  • middleware: cmsis_os2: add source files.

  • samples: mcl: add step motor.

  • samples: lwip: lwip_ptp: v2: support IEEE1588 V2

  • samples: cherryusb: add audio_v2_mic_speaker_rtthread sample

  • samples: cherryusb: host: add hid and msc rtthread samples

  • samples: cherryusb: host: usbnet: add support ec20 module sample.

  • samples: cmsis_os2: add blinky sample.

  • samples: driver: mipi_csi: add mipi_csi.

  • samples: mcan Support MCAN4-7 loopback testing.

  • cmake: support custom output file name.

Fixed:

  • soc: fix cache maintenance at startup

  • soc: hpm53xx Correct exip API tree offset.

  • soc: toolchain: missing .fast.* in gnu ld linker script.

  • soc: fix tbss and tdata section not initialized.

  • soc: sysctl: sysctl_enable_group_resource() should be check LOC_BUSY

  • soc: hpm5300 Correct Cache size and Cacheline size.

  • boards: hpm6750evkmini Fix the issue that eMMC is still 3.3V even 1.8V is selected.

  • boards: hpm5301evklite correct jlink script device number.

  • components: camera: power_up is enable by default for ov5640/ov7725.

  • docs: samples: drivers: add numberic index.

  • drivers/soc: fix build warning

  • drivers: i2c: add slave device response judgment for master read/write APIs

  • drivers: opamp: fix opamp vssa connect error.

  • drivers: pllv2: fix pllctlv2_pll_is_stable() API

  • drivers: qeiv2: fix invalid argument check

  • drivers: dac: fix the upper limit value setting for DAC_OUTPUT

  • drivers: jpeg: fix pixel format index for out buffer.

  • drivers: uart: fix not support oversample 32 for rx idle detection on hpm5300

  • middleware:ftafs Fix SD card init crash.

  • middleware: mcl: fix path plan error.

  • middleware: hpm_sdmmc Fix the issue that IO initialization work unstable on HPM6300.

  • middleware: hpm_sdmmc Fix voltage switch setting issue for SD and eMMC.

  • middleware: hpm_sdmmc Fix the PWR and VSEL IO initiaization issue. refs:hpm-sdk-#863

  • samples: sei: fix nikon sample crc calc error.

  • samples: cherryusb: msc device: add pre-format fat12 file system in u disk

  • samples: adcx: replace const with a macro for ADC sample cycle

  • samples: tinyusb:fix the usb host pin init.

  • samples: motor_ctrl: bldc_littlevgl_foc: program crash.

  • samples: qeiv2: uvw: fix uninitialized pointer usage

  • samples: cherryusb: fix semaphore give in isr

  • samples: drivers: Fix the issue that can error example may block.

  • samples: uart_irq: fix unable to limit receive large than buffer size.

  • samples: drivers:sdxc:emmc remove infinite loop for emmc initialization.

  • samples: drivers: i2s: fix tx underflow during tx start

  • samples: lwip: lwip_tcpecho_multiple_ports: fix no echo data when receiving large amounts of data

  • samples: mcl: pwm duty set error.

  • samples: cherryusb: host: usbnet: fixed when performing a stress test with a large amount of iperf data, will send fai.

  • samples: cherryusb: audio_v2_mic_speaker_rtthread: fix mic no voice problem

  • samples: jpeg_decode: add delay after usb pins init for waiting power stable

  • samples: hfi: hpm6750evk2: fix the motor shake.

  • cmake: segger: remove workstation specific path info.

  • cmake/soc: fix heap/stack size setting for andes toolchain.

  • cmake: ses: correct device name for core1.

[1.3.0] - 2023-09-28:

Main changes since 1.2.0

Tested Segger Embedded Studio Version: 7.32

Changed:

  • boards: hpm6200evk/hpm6300evk: delete unwanted clock_ahb div set

  • boards: hpm6750xxx: switch dcdc work mode to dcm mode

  • docs: sdk: boards: hpm6750evk2: add pps pin information

  • component: wm8960: support sysclk pre-divider

  • components: serial_nor: add serial nor flash.

  • openocd: probes: ft2232: remove trst and srst config.

  • ip: cam:remove 0x5c MAX_WN_CYCLE register in regs.h

  • driver: cam: remove invalid register

  • drivers: i2s: update API

  • drivers: adc: adc12/adc16: rename adc16_get_busywait to adc16_is_nonblocking_mode

  • drivers: adc: adc12/adc16: update adcx_init API

  • drivers: pllctrl: update pllctrl drivers

  • drivers: spi : add spi enable and disable datamerge

  • drivers: spi : add spi_set_address_len API

  • drivers: pdgo Add missing APIs

  • drivers: uart: update uart rx idle flag process and fifo control

  • soc: delete_unnecessary_ppor_reset_bit_field

  • soc: hpm_gpiom_soc_drv.h: delete gpiom_gpio_t soc name

  • soc: delete DMA_SOC_BUS_NUM Macro

  • soc: pcfg: update pcfg SCG_CTRL related drivers

  • soc: hpm6750:startup Enable LMM1 clock before access to LMM1

  • soc: gcc ld: add memory used size check

  • middleware: cherryusb: update to v0.10.1

  • middleware: guix: demo adapts to 800 * 480 resolution

  • middleware: guix: improve demo display performance

  • middleware: cherryusb: update for midi descriptor define

  • middleware: cherryusb: update for midi

  • samples: drivers: adc: adc12/adc16: speed optimization for oneshot reading

  • samples: drivers: adc: adc12/adc16: update API call used for nonblocking judgement

  • samples: drivers: adc: adc12/adc16: update API call related to blocking setting in oneshot mode

  • samples: drivers: adc: adc12/adc16: reduce the input parameters of init_trigger_target function

  • samples: drivers: adc: adc12/adc16: update init_oneshot_config

  • samples: drivers: adc: adc12/adc16: optimization for clearing interrupt status

  • samples: drivers: pwm: Add pwm clock jitter demo

  • samples: cherryusb: hid host: separate mouse and keyboard urb

  • samples: hrpwm: Add demo for updating hrpwm frequency

  • samples: drivers:mcan Add CAN error handling and refined logic.

  • samples: mbx: move dualcore mbx sample to multicore folder

  • samples: cherryusb: update for v0.10.1

  • samples: motor_ctrl: bldc smc: gcc toolcahin enable fpu.

  • samples: lwip: lwip_tcpecho_freertos: optimization in a thread-safety way

  • samples: qeo: update qeo abz frequency configuration

  • samples: gptmr: add sent_signal sample.

  • samples: lwip: lwip_ptp: remove the dependency on pps0 pinout

  • samples: dma_manager: update for use dma_mgr_setup_channel()

  • samples: drivers: gptmr: pwm_measure: support use dma

  • samples: lwip: lwip_httpsrv/lwip_https_server: rename project names for uniform naming

  • samples: multicore: lvgl_coremark: delete custom linker files and using andes toolchain

  • samples: flash_algo: update device size.

  • samples: cherryusb: host: hid: use ep_mps to fill urb

Added:

  • cmake: ses: support specify custom openocd board cfg file.

  • cmake: support specifying minimum sdk version in app.yaml.

  • boards: add hpm5300evk

  • components: eeprom_emulation: add hpm nor-flash support

  • components: eeprom_emulation: add eeprom emulation component

  • soc: add APIs for get or set sysctl resource status

  • drivers: common: add HPM_ALIGN_DOWN and HPM_ALIGN_UP define

  • drivers: adc: ad12/adc16: add adcx_set_blocking_read/adcx_set_nonblocking_read

  • drivers: add encoder position driver

  • drivers: lcdc: add enable/disable background in alpha blender.

  • drivers: usb: add api to set dp/dm pin pulldown resistance

  • drivers: spi: add spi_get_rx_fifo_valid_data_size and spi_get_tx_fifo_valid_data_size APIs

  • drivers: spi: add directIO function APIs

  • drivers: enet: add rx resume API

  • drivers: adc16: add resolution setting in adc16_get_default_config API

  • drivers:rtc Add rtc_get_timeval API.

  • drivers:mcan Add mcan_transmit_via_txfifo_nonblocking API.

  • drivers: usb: add usb_hcd_set_power_ctrl_polarity() API

  • drivers: plb: add plb drivers

  • drivers: linv2: add linv2 driver

  • drivers: sei: add sei driver

  • drivers: dmav2: add dmav2 driver

  • drivers: qeo: add qeo driver

  • drivers: qeiv2: add qeiv2 driver

  • drivers: mmc: add mmc driver

  • drivers: rdc: add rdc driver

  • drivers: add opamp driver

  • drivers: bgpr: add related APIs for bgpr

  • middleware: FreeRTOS: add xPortIsInsideInterrupt() API

  • middleware: threadx: add definition automatically when enable traceX

  • middleware: freeRTOS: add use gptmr to generate interrupt

  • middleware: hpm_mcl: add hfi

  • samples: drivers: adc: adc12/adc16: add wdog feature

  • samples: add opamp demo

  • samples: cherryusb: rndis: host: add iperf sample.

  • samples: cherryusb: rndis: host: add ping sample.

  • samples: drivers: adc: adc12/adc16: add hw trigger configuration in sequence mode

  • samples: eeprom_emulation: add eeprom emulation perf test sample

  • samples: eeprom_emulation: add base api demo

  • samples: tracex: add demo for traceX usage

  • samples: cherryusb: add audio_v1_mic_speaker_midi sample

  • samples: cherryusb: add midi device sample

  • samples: drivers: sei: add sei samples

  • samples: drivers: plb: add plb demo

  • samples: drivers: mmc: add mmc demo

  • samples: drivers: qeiv2: add qeiv2 demo

  • samples: drivers: qeo: add qeo demo

  • samples: drivers: dmav2: add dmav2 demo

  • samples: drivers: linv2: add linv2 demo

  • samples: drivers: rdc: add rdc demo

  • samples: drivers: pdgo Add PDGO samples

  • samples: drivers: ewdg Add EWDG sample

  • samples: lwip: add a lwip_tcpecho_multi_ports sample

  • samples: motor_ctrl: add hfi

Fixed:

  • cmake: fix segger default heap and stack size config

  • cmake: fix add_subdirectory_ifdef arg processing.

  • doc: boards: hpm6300evk: fix acmp pin info.

  • boards: hpm6750evkmini: fix board_init_rgb_pwm_pins() problem

  • boards: hpm6200evk: fix BOARD_G_GPIO_CTRL defined in wrong position

  • openocd: hpm6750-dual-core: fix expression warning.

  • component: wm8960: fix clock tolerance process

  • soc: toolchains: segger: block tls add with fixed order

  • soc: toolchain: gcc: fix Thread-Local Storage problem

  • soc: segger linker files: fix heap and ctors initialize

  • soc: fix interrupt complete operation

  • soc: pcfg: fix DCDC_PROT[OVERLOAD_LP] bit access

  • soc: ip: adc12: fix ADC12 threshold setting

  • soc: HPM6750: fix clock setting and frequency obatining error

  • soc: HPM6360: fix clock source definitions for ADC16

  • soc: HPM6280: fix clock source definitions for ADC16

  • soc: HPM6360: fix obtaining clock source error for DAC

  • soc: HPM6280: fix obtaining clock source for DAC

  • drivers: adc16: add bus mode enable control APIs

  • drivers: adc16: fix ahb setting

  • drivers: cam: clear the status of CAM should not affect other bits

  • drivers: trgmux: filter function can’t work.

  • drivers: src: adc16: fix end count setting

  • drivers: adc/dac: fix interrupt status clearing

  • drivers: adc16: fix DMA access format

  • drivers: sdm: fix over sample rate and signal sync problem

  • drivers: pwm: fix pwm xcmp enable setting

  • drivers: pwm: correct external fault polarity setting.

  • drivers: pwm: add update hrpwm reload shadow api

  • drivers: spi: fix can’t set change data_bits use spi_set_data_bits API

  • drivers: ptpc: fix ptpc_clear_irq_status API issue.

  • drivers: i2c: fix i2c_clear_status API issue.

  • drivers: gptmr: fix gptmr_clear_status API issue.

  • middleware: erpc: rpmsg_lite: fix platform_in_isr() error

  • middleware:hpm_sdmmc Fix the issue sdsc cards are not supported.

  • middleware: threadx: fix D extend asm code error

  • samples: usbx: add multi devices and hot plug support

  • samples: motor_ctrl: fix adc trig invalidate.

  • samples: lwip: fix TCP reception error when size over 2KB

  • samples: lwip: DHCP failure in lwip_tcpecho_freertos

  • samples: drivers: adc: adc12: fix the status flag judgement in isr process

  • samples: rgb_led: fix cmp shadow error

  • samples: gptmr: pwm_generate: fix inaccurate duty in high frequency

  • samples: lwip: low_level_input: fix the network storm issue

  • samples: timer_basic: fix inconsistent use of defines

  • samples: drivers: adc: adc16: fix the bit of interrupt status clearing in sequence mode

  • samples: power_mode_switch: trigger system lowpower for standby mode

  • samples: touch_panel: fix error data when 5 fingers touch screen at same time.

  • samples: jpeg: jpeg_decode: fixed lcd display is tore when decoder is running

  • samples: jpeg: jpeg_decode: malloc out of memory on gcc

  • samples: drivers:can Fix abnormal behavior on can error sample.

  • samples: segger_rtt: call board_init_clock.

  • samples: drivers: acmp: fix one toggle value but multi toggle pulses

  • samples: lwip_tcpecho_freerstos: fix code stuck with gcc toolchain

  • samples: jpeg: fix JPEG_USE_UDISK compile error

  • samples: bldc_foc: fix input value range.

  • samples: cherryusb: rndis: udp_echo: fix echo extra char

  • samples: usbx: fix global var placement

  • samples: power_mode_switch: set to preset_1 after exiting wait mode.

  • samples: pla: fix pla first pulse abnormal.

  • samples: plb: fix the first pulse is abnormal.

[1.2.0] - 2023-06-30:

Main changes since 1.1.0

Tested Segger Embedded Studio Version: 7.22

Changed:

  • boards: hpm6750evk*: decrease core frequency from 816MHz to 648MHz

  • openocd: soc: hpm6280: simplify dual core release core1 approach.

  • cmake: segger: configure optimization level according to gcc level.

  • soc: dmamux: move it from ip to soc

  • soc: interrupt: adjust irq api. #659

  • soc: improve svd file

  • soc: hpm_soc_feature.h: remove ADC16_SOC_TEMP_CH_EN for some specified Socs

  • components: enet_phy: update the common enet phy header file

  • components: sgtl5000 and wm8960: update clock setting

  • drivers: uart: update uart driver

  • drivers: pdma: improve quality of scale

  • drivers: adc: adjust wait_dis type in adc16_config_t struct

  • drivers: enet: update rmii reference clock setting API for ENET

  • utils: hpm_swap: escape for andes toolchain.

  • middleware: hpm_sdmmc: add spi sdcard

  • middleware: motor_ctrl: change the file organization

  • middleware: motor_ctrl: remove slide control content from foc

  • middleware: lvgl: upgrade to v8.3.5 (with pdma)

  • middleware: lvgl: Add direct mode

  • middleware: cherryusb: update version to v0.8.0

  • samples: I2S_DMA and I2S Interrupt: update sample behavior

  • samples: cherryusb: hid host: separate mouse and keyboard urb

  • samples: cherryusb: increase max interface and endpoint number Configuration

  • samples: cherryusb: uac2: move setting sampling freq to isr

  • samples: cherryusb: audio: update descriptor for identification

  • samples: audio_codec: set codec voice to max and increase irq priority

  • samples: multicore: lvgl_coremark: delete custom linker files and using andes toolchain

  • samples: lvgl_audio_player: update CMakeLists.txt to using noncacheable framebuffer

  • samples: spi: clean the redundant code

  • samples: i2c: improve the processing of FIFO in ISR

  • samples: drivers: uart: update uart_rx_timeout demo

  • samples: drivers: gptmr: split sample into multiple function samples

  • samples: drivers: adc: optimization for all macro definitions in applications

  • samples: drivers: adc: update struct member names

  • samples: update clock divider setting for ADC-related examples

  • samples: cherryusb: move vid/pid etc definition to usb_config.h

  • samples: cherryusb: device: update vid to hpmicro 0x34B7

  • samples: cherryusb: change API update for v0.8

  • samples: cherryusb: device: audiov1: change to full speed mode

  • samples: tinyusb: uac2: update descriptor and sample

  • samples: lwip: disable mmc interrupt settings

  • samples: lwip: lwip_ptp: v1: sync precision improvement

Added:

  • cmake: toolchains: add isa spec 20191213 support.

  • cmake: ses: support set ses raw option in CMakeLists.txt

  • cmake: add option to specify board search path.

  • cmake: generate compile_commands.json file

  • soc: hpm_soc_feature: add a common macro for ADC12 and ADC16

  • drivers: cam: add new APIs

  • drivers: spi: add new APIs

  • drivers: i2c: add new APIs

  • drivers: I2S: add i2s_check_data_line_status API

  • drivers: dma: add dma_set_transfer_src_width_byte_size() API

  • drivers: gptmr: add output capture APIs

  • drivers: gptmr: add gptmr_channel_get_dma_request_event api

  • drivers: adc: add adc16_trigger_pmt_by_sw API

  • drivers: enet: add some APIs related to interrupt settings

  • drivers: enet: add a new API for transmisstion

  • drivers: usb: add macro CONFIG_USB_DEVICE_FS to set full speed mode

  • components: uart_lin: add uart lin component

  • components: add smbus

  • components: add sccb

  • middleware: lvgl: add macro HPM_LVGL_FRAMEBUFFER_NONCACHEABLE

  • middleware: add AzureRTOS (threadx/usbx/netx/guix)

  • middleware: hpm_mcl: sensorless over-zero

  • middleware: add smc

  • middleware: hpm_sdmmc Add eMMC support

  • middleware: hpm_math: add bit conversion function

  • middleware: add uC/OS-III

  • middleware: cherryusb: audio: add feedback descriptor

  • middleware: cherryusb: audio: add param to set endpoint bmAttributes

  • middleware: microros: add microros foxy sources

  • samples: drivers: spi: add spi_sdcard_fatfs sample

  • samples: drivers: spi: add sd sample

  • samples: add uart_lin

  • samples: motor_ctrl: sensorless: over-zero demo

  • samples: cherryusb: add rndis host dhcp samples

  • samples: drivers: sdxc :emmc Added eMMC sample

  • samples: drivers: adc12: update irq pattern for sequence usage

  • samples: drivers: pla: add pla tamagawa demo

  • samples: drivers: gptmr: add counter_sync sample

  • samples: drivers: gptmr: add timer_basic sample

  • samples: drivers: gptmr: add t_shape_accel_decel sample

  • samples: drivers: dma/gptmr: add trigger dma transfer using gptmr event sample

  • samples: drivers: uart add uart_rx_timeout sample

  • samples: i2c: add smbus samples

  • samples: lwip: lwip_tcpecho_freertos: add self-adaption

  • samples: cherryusb: hid host: move usbh_submit_urb() out of condition

  • samples: cherryusb: add composite freertos sample

  • samples: cherryusb: add rndis freertos sample

  • samples: cherryusb: add msc freertos sample

  • samples: cherryusb: add audio v2 mic speaker freertos sample

  • samples: cherryusb: add hid mouse freertos sample

  • samples: cherryusb: add hid keyboard freertos sample

  • samples: cherryusb: add cdc acm freertos sample

  • samples: cherryusb: add rndis tcp server sample

  • samples: cherryusb: add rndis device udp_echo sample

  • samples: cherryusb: add rndis device http_server sample

  • samples: cherryusb: device: add audio_v2_speaker_sync sample

  • samples: add several uC/OS-III samples

  • samples: smc: add smc demo

  • samples: microros: add subscriber, sevice and publisher

  • samples: uC/OS-III: mutex

Fixed:

  • cmake: ses: fix __SEGGER_RTL_vfprintf issue with nds tool in SES 7.20.

  • soc: hpm6280: Modify the number of PWM cmps.

  • soc: reset.c: __dso_handle needs to be declared for nds toolchain.

  • soc: fix max buffer length in sequence mode for ADC

  • soc: HPM6750: enet soc drv: fix set clock delay settings

  • soc:hpm6360:sdxc Correct clock divider settting issue

  • drivers: pla: missing Union Field

  • drivers: spi: fix the problem of CMD and ADDR configuration order

  • drivers: i2c: fix clock frequency error rate problem

  • drivers: i2c: clear CMPL bit in API to avoid blocking the trans

  • drivers: i2c: fix i2c slave device read and write fail

  • drivers: i2c: fix read data unexpected multi transition.

  • drivers: i2c: fix w1c clear status error

  • driver: usb: fix w1c clear flag error

  • drivers: gptmr: fix dma request enum definition

  • drivers: adc: fix logics for judging the validity of arguments

  • component: uart_lin: fix break signal problem

  • middleware: cherryusb: fix buffer size error

  • middleware: lvgl: fix fbbuffer option

  • samples: gptmr: fix pwm_measure sample compile waring

  • samples: jpeg: fix interchange format of exif support

  • samples: jpeg: fix jpeg decode

  • samples: drivers: spi: fix the problem of CMD and ADDR configuration order

  • samples: drivers: mcan: can_fd loopback test setting is incorrect

  • samples: cherryusb: http_server_freertos: fix printf content error

  • samples: cherryusb: audio: change endpoint attributes for support MACBOOK

  • samples: tinyusb: msc: increase block numbers for windows format

  • samples: lwip: lwip_httpsrv: fix reload or refresh error

[1.1.0] - 2023-03-31:

Main changes since 1.0.0

Tested Segger Embedded Studio Version: 7.10

Changed:

  • docs: add new docs for rtd project.

  • soc: ip: enet: update the enet register file

  • soc: ip: adc16: update the adc16 header file

  • soc: hpm_romapi - Add APIs for configuring remapping, exip regions

  • drivers: enet: improve APIs related to PPS

  • drivers: adc: change adc bus blocking interface

  • drivers: adc: optimize getting oneshot result

  • drivers: src: update the default config for ADC12&ADC16

  • boards: rename board-level APIs related to enet

  • components: enet_phy: rtl8201: update the register file

  • middleware: hpm_math: update dsp version

  • middleware: erpc: update to v1.10.0

  • samples: uart: rename uart_dma_rx_idle to uart_software_rx_idle

  • samples: uart: add hardware rx idle detection sample

  • samples: multicore: erpc: core1 add sdk_compile_options(-O1)

  • samples: drivers: gptmr: update sample output.

  • samples: lwip: common: arch: ethernetif: update a calling function name

  • samples:drivers: adc: optimize oneshot handler

Added:

  • arch: add FPU related APIs

  • soc/board: add HPM6280 support

  • soc: HPM6750: acmp: add ACMP section

  • components: add mt9m114 support

  • drivers: add raw8 pixel format support

  • drivers: csr - Implement CSR driver

  • drivers: adc: adc16: support resolution setting

  • drivers/samples: add SDM/PLA/CRC/MCAN

  • drivers: I2C: add new API

  • drivers: adc: adc16: support resolution setting

  • drivers: enet: add enet control config for transmission

  • middleware: cherryusb: audio: update class driver and demo template

  • middleware: add mbedtls lib files with SDP acceleration

  • freeRTOS: add support for static allocation

  • samples: drivers: enet: add a pps demo

  • samples: cherryusb: add audio samples

  • samples: add the resolution parameter in all demos with ADC16

  • samples: add rfft demo

  • sampels: i2c: add interrupt b2b samples

  • samples: drivers: i2s: add an i2s_master demo

  • samples: drivers: i2s: add an i2s_slave demo

  • samples : rom_api : add sw_gm_api filter

  • samples: add the resolution parameter in all demos with ADC16

Fixed:

  • openocd: hpm6300evk: update sdram initialization.

  • drivers: trgmux: trigmux edge filter setting error

  • drivers: enet: fix register access error

  • drivers: adc16: fix the config error of ADC16_CONFIG1

  • drivers: i2c: fix i2c timing configuration

  • drivers: SPI: fix SPI status API

  • drivers: fix gptmr cmp value don’t minus one

  • drivers: mcan: correct the mcan ext_id filter issue

  • drivers: I2C: fix issue in i2c_master_address_read API

  • drivers: Self_ACK cannot be set in CAN driver

  • drivers: rtc rtc_config_alarm always return error code

  • cmake: correct source code compilation

  • soc: toolchain: gcc: initialize heap for SES

  • soc: gcc linker files: add NOLOAD keyword to noncacheable.bss section

  • soc: HPM6360: gcc: ld: correct noncacheable region name.

  • drivers: qei: Fix speed display always zero

  • middleware: freertos: disable global irq before vTaskStartScheduler

  • freeRTOS: fix trap when enable float feature

  • freeRTOS: fix tick lost

  • freeRTOS: fix segger project build warning

  • samples: drivers: i2s: fix CFGR config

  • samples: drivers: fix acmp toggle error

  • samples: lwip: fix the DHCP issue

  • samples: uart: fix irq_id judgment

  • samples: fix the order of uart pin configuration and clock configuration

  • samples: update spi dma sample

  • samples: drivers: sysctl: correct reset enable approach.

  • samples: fix dma_general_transfer sample memory out of bounds

  • samples: drivers: wdog: Fix logic issue on finding the nearest interrupt interval

  • sample: audio_codec: decoder_wav: add ‘\0’ to fatfs path

[1.00.0] - 2022-12-31:

Main changes since 0.14.0

Tested Segger Embedded Studio Version: 7.10

Changed:

  • boards: add version info in banner.

  • board: lcdc: move panel para to board

  • components: spi component to support to transfer different width of data in dma handshake mode

  • drivers: rename dram to femc

  • middleware: cherryusb update to v0.7.0

  • middleware: erpc: update for support rtos

  • middleware: hpm_mcl: update api naming

  • samples: erpc: rename erpc_matrix_multiply_rpmsg to erpc_matrix_multiply_rpmsg_bm

  • samples: erpc: reorganize erpc_matrix_multiply_rpmsg samples

  • samples: erpc: move samples folder to erpc_matrix_multiply_rpmsg

  • samples: update i2c/spi dma channel and dmamux channel definition

  • ses: project template: use demo.* as output file naming.

  • soc: HPM6750: toolchains: update linker files

  • soc: HPM6360: toolchains: update linker files

Added:

  • arch: riscv: add read_clear_csr() API

  • component: add wm8960 support

  • component: add usb device iso transfer support

  • drivers: hpm_common: include hpm_sdk_version.h.

  • drivers: common: add NOP and WFI.

  • drivers: uart: add api to recv/send byte directly.

  • soc: HPM6750 linker files: rename rpmsg_sh_mem to sh_mem

  • cmake: add sdk version header file generation.

  • middleware: tinyusb: add audio class

  • middleware: hpm_math: add NN library

  • samples: erpc: add erpc_two_way_rpc_rpmsg_rtos sample

  • samples: erpc: add erpc_matrix_multiply_rpmsg_rtos sample

  • samples: add power mode switch demo. #282

  • samples: drivers: adc: add a temperature measurement demo

  • samples: drviers: femc: add sram sample

  • samples: lwip demo for FreeRTOS

  • samples: lwip demo of interrupt usage

  • samples: tinyusb: add uac2 demo

  • samples: tflm: add face detection demo

  • samples: tflm: add MLPerf Tiny benchmark demo

  • samples: lwip: common: feature: add a LPI interrupt process

Fixed:

  • drivers:interrupt: Fix FPU context crashing in nested irq case

  • drivers: src: adc: fix adc result in period mode

  • segger: update app directory structure in SES.

  • soc: disable irq during cache maintenance

  • middleware: lvgl: fps calculation to No.

  • samples: get off level based on board api.

  • samples: multicore: hello: core1 rgb led does not change correctly.

[0.14.0] - 2022-10-31:

Main changes since 0.13.0

Tested Segger Embedded Studio Version: 6.34a

Changed:

  • drivers: inc: update adc driver

  • drivers: gptmr: update reload value

  • components: enet_phy: optimize APIs

  • components: enet_phy: dp83867: rename functions

  • components: conditionally add debug_console

  • middleware: add cherryusb (0.6.0)

  • middleware: littlevgl: update to v8.3.1

  • middleware: fatfs: file name encoding in utf-8

  • middleware: freertos: support nested irq handling

  • middleware: hpm_mcl: Optimized motor control foc speed

  • samples: drivers: dma src move to dma_general_transfer folder

  • samples: lwip: update all static addresses and all gateway addresses

  • samples: lwip: lwip_iperf: optimize the interactive log

  • samples: tinyusb: device: hid_generic_inout: optimize the python script

  • openocd: HPM6750A1 silicon in hpm6750-dual-core.cfg

  • header file: update the enet/conctl register files

  • header file: Update TRGMUX0 pin input source definition

  • header file: update the ADC12 header files

  • scripts: ses: organize file in ses according to real path.

  • cmake: split gcc and ses source

  • board: bump HPM6750 DCDC voltage to 1200mv

Fixed:

  • drivers: pdma: fix scale api issue

  • drivers: i2c: update DATACNT processing

  • drivers: i2s: fix i2s interrupt workaround in i2s_init

  • drivers: pwm: fix pwm capture function error

  • drivers: pwm: fix pwm capture configuration error

  • drivers: clock: fix error in clock_set_xxx_source

  • drivers: wdg: timeout calculation error

  • drivers: trgm_drv: bugfix: include error

  • drivers: romapi: call fencei after flash erase/write operation

  • drivers: watchdog: overflow

  • drivers: usb: host controller initialization issue

  • drivers: i2s: i2s_enable() issue fix

  • middleware: tinyusb: src: class: fix the HID report desc macro

  • samples: drivers: adc: optimize all ADC demos

  • samples: drivers: adc: fix all channel initializations without a default value

  • samples: motor_ctrl: hardware trigger api usage error

  • samples: audio_codec: update clock process for 44100 sample rate

  • samples: lcdc: boundary pixel is incorrenct

  • samples: multicore: BOOT_HEADER was missing in multicore core0 example

  • samples: drivers: i2s: correct audio data if depth < 32bit.

  • samples: hpm_math: fft_perf_test: Fix error printing information

  • samples: fix pdm2dao noise problem

  • samples: lwip: fix the enet throughput degradation

  • soc: correct address overlapping SES XIP linker file

  • soc: correct the interrupt context switch issue

  • soc: fix Lack of interrupt claim for swi

  • boards: fix some rmii reference clock APIs

Added:

  • boards: add hpm6750evk2 support

  • soc: add initfini.c

  • drivers: lcdc: add y8 support

  • drivers: spi: update data_length processing

  • drivers: spi: add api to enable/disable spi dma request

  • drivers: pmp: Add pmp_config_entry API

  • components: add ipc_event_mgr

  • component: spi: add cache maintain

  • middleware: add erpc

  • samples: lwip: support self-adaptive port speed and duplex mode

  • samples: jpeg: support grayscale

  • samples: drivers: spi: use api to get data length

  • samples: drivers: spi: add interrupt b2b sample

  • samples: drivers: mbx: add singlecore samples

  • samples: drivers: add dma circle transfer

  • samples: drivers: pwm: add pwm capture demo

  • samples: provide OTP API demo

  • samples: add cherryusb hid/msc/cdc samples

  • samples: add Guomi API example

  • samples: add erpc sample

  • samples: add segger_rtt

[0.13.0] - 2022-07-31:

Main changes since 0.12.1

Changed:

  • drivers: adc: fix sequence and preemption mode

  • drivers: usb: automatically change transceiver type in host mode

  • drivers: pwm: modify the interface for setting the pwm shadow register trigger function

  • drivers: sdxc: driver improvement

  • samples: jpeg demo update

  • samples: motor_ctrl: Optimize motor control performance

  • samples: motor_ctrl: Modify the pwm update method to be hardware triggered

  • samples: audio_codec: wav: Modify the interface

  • samples: audio_codec: add dao support

  • samples: tinyusb: update all USB project names

  • samples: adc: place DMA buffer in noncacheable

  • components: usb: update two struct definitions for the hcd_data_t and the dcd_data_t

  • middleware: littlevgl: update double buffer refresh approach.

  • middleware: fatfs: enable exfat format

  • middleware: fatfs: change ‘USB’ to lowercase

  • middleware: hpm_math: remove cache operations from the ffa interface

  • scripts: ses: update file path using $(HPM_SDK_BASE)

Fixed:

  • drivers: gpiom: fix spelling errors in API names

  • drivers: enet: fix ptp time offset update

  • drivers: cam: fix store mode configuration

  • drivers: can: Fix the issue can timestamp cannot be enabled

  • drivers: gpio: incorrect return type gpio_get_port_interrupt_flags.

  • middleware: audio_codec: decoder_wav: fix wav codec problem

  • middleware: tinyusb: fix the alignment of _hcd_data

  • soc: driver: clock: i2s get clock error

  • soc: hpm_misc.h: fix incorrect system address mapping.

  • soc: SVD files: fix SDP peripheral reset value problem

  • soc: disable vector mode explicitly.

  • boards: correct device name in ses project

  • board: correct the printf format for frequency and register base

  • python: fix ses project generation on windows

  • samples: adc: fix not working in sequence mode and preemption mode

  • ses: set obj path for common configuration.

  • cmake: ses: put app source into separate category in ses.

Added:

  • components: enet_phy: add rtl8211 driver

  • components: hpm_spi: add initial SPI component

  • components: add DMA Manager

  • drivers: cam: add new API

  • drivers: uart: add uart_set_baudrate API

  • drivers: spi: update dma transfer API

  • samples: tinyusb: host: add a hid demo

  • samples: drivers: spi: add master_trans_large_amount_of_data example

  • samples: decoder_wav: Add support for different bit rates and bits

  • samples: drivers: audio: automatic acquisition of i2s clock frequency

  • middleware: tinyusb: update portable file for USB host

[0.12.1] - 2022-07-01:

Main changes since 0.12.0

Fixed:

  • update lwipopt.h for updated enet driver

[0.12.0] - 2022-06-30:

Tested with SES 6.32

Main changes since 0.11.0

Changed:

  • boards: hpm6360evk has been renamed to hpm6300evk

  • boards: Use CSR_CYCLE in the clock_delay function

  • soc: hpm_soc.h: include hpm_common.h

  • driver: rename hpm_pmu_drv.c to hpm_pcfg_drv.h

  • driver: spi: change to non-blocking interfaces

  • driver: dma: update driver to adapt to different DMA instance constraints

  • components: enet_phy: update dp83867 driver

  • components: enet_phy: remove rtl8211 driver

  • cmake: enable nano newlib by default

  • cmake: move distclean to the beginning

  • middleware: littlevgl enable PDMA by default

  • middleware: tinyusb: upgrade to 0.13.0

  • samples: tinyusb: device: cdc_msc: adjust buffer size

  • samples: drivers: plic: use gpio toggle count as nested irq

Fixed:

  • drivers: pwm: fix function name inconsistency bug

  • drivers: enet: remove “board.h” in enet driver

  • drivers: clock: Fix bugs in hpm6360 clock driver

  • drivers: clock: returns wrong adc/dac clock in HPM6360

  • drivers: dram: failed to configure 8bit mode.

  • freertos: fix issue about running on core1

  • boards: hpm6300evk pmp_entry set initial value

  • middleware: littlevgl: fix pdma cache op issue

  • middleware: littlevgl: fix doxygen markdown for pdma driver

  • middleware: lvgl: ses: update ram linker.

  • middleware: hpm_math: fix ffa cache size error

  • samples: audio_codec: remove the wrong dependency

  • samples: FATFS demo cannot support write/read if FATFS passes unaligned buffer address

Added:

  • samples: add memstress and flash stress

  • drivers: clock: add implement common delay function based on mcycle and mcycleh register

  • boards: add hpm6300evk support

  • boards: hpm6750evkmini: motor control support

  • soc: add svd files

  • middleware: lwip: iperf: enable iperf and add udp function

  • samples: lwip: add lwip_iperf

[0.11.0] - 2022-05-31:

Main changes since 0.10.0-hpm6360-er

Changed:

  • readme: change the location of the starting document

  • components: change hal_adc_xx to hpm_adc_xx

  • drivers: update the I2C driver

  • cmake: change default rv_arch to rv32imac

  • cmake: modified in a zephyr-compatible way

  • drivers: uart: redefined struct with zephyr

  • cmake: change soc and board name

  • cmake: ses: support enable ext_dsp in project file.

  • samples/tinyusb/host: optimize the toggle rate of the blinking led

  • samples/tinyusb/device: replace mchtimer with board_timer for led_linking_taskk

  • samples/tinyusb/device: optimize the implement of led_blinking_task

  • soc: update IP header and soc header files

Fixed:

  • samples: motor_ctrl: bldc_block: fix some error

  • middleware: hpm_math: fix andes toolchain compile error

  • middleware: hpm_math: fix libdsp.a error

  • middleware: hpm_math: add ext-dsp for SES

  • samples: openocd_algo: fix func_table placement.

  • boards: hpm6360evk: correct cpu frequency

  • boards: fix warning caused by code irregularities

  • boards: LED status is not the same between hpm6750mini rev-A and rev-B

  • boards: update board_led_write.

Added:

  • driver: add spi_setup_dma_transfer() API

  • middleware: hpm_math: add software fft function

  • middleware: hpm_math: add ffa to hpm_math

  • samples: i2c: update the sample b2b

  • samples: hpm_math: add fft_performance demo

  • samples: add SPI DMA sample

  • samples: multicore coremark using debug console only

  • samples: 1588: add ptp v1 master/slave

[0.10.0_hpm6300] - 2022-05-16:

Main changes since 0.10.0

Changed:

  • ip register header file update

  • ses_proj: using generated complete cpu_regs_xml to replace general cpu registers xml

  • drivers: gpiom: move gpiom_gpio_t into hpm_gpiom_src.h

  • drivers: update the enet driver

  • samples: dram: change sdram test address in dma demo

  • samples: drivers: mbx: exclude flash targets for core0 as well.

  • samples: lwip: update ethernetif.c

Fixed:

  • drivers: ptpc: update ptpc_init_timer_with_initial.

  • drivers: can: bug fix and update

  • soc: correct vector table inclusion and swi name

  • env.sh: fix HPM_SDK_BASE setting problem with msys.

  • samples: sha256_example: failed to run case 13 and 14 with gcc.

Added:

  • soc: add HPM6360 support

  • drivers: add ffa, pllctlv2, dac

  • boards: add hpm6360evk support

  • components: add adcx module

  • components/enet_phy: add the RTL8201 driver

  • samples: drivers: dac, ffa

  • samples: rgb_red: add evkmini ver B support

[0.10.0] - 2022-04-30:

Main changes since 0.9.0

Changed:

  • drivers: gptmr: split irq enable/disable interface

  • drivers: can: 155 Update SJW setting in CAN driver

  • soc: HPM6750: rename safe stack symbol in link script

  • components: debug_console: wait uart tx flag on writing.

Added:

  • drivers: enet: add 1588 support

  • drivers: can: Add TDC support

  • drivers: mchtmr: add counter init API.

  • drivers: dma: add dma_disable_channel() API

  • middleware: add wav decoder

  • samples: lwip: add ptp demos

  • samples: tinyusb: add msc, cdc demo

  • samples: audio_codec: add wav player demo

  • samples: add tinyuf2 initial support

  • samples: add initial uart dma rx idle demo

Fixed:

  • soc: HPM6750: sysctl: fix cpu lp mode API.

  • drivers: uart: correct baudrate calculation.

  • drivers: usb: fix: no response in device mode when a USB cable is pluged out

  • boards: correct the pin setting related to USB

[0.9.0] - 2022-04-01:

Main changes since 0.8.0

Changed:

  • drivers: update WDG, UART, DMA, DMAMUX driver

  • drivers: enet remove enet_intf_selection

  • drivers: can: support configure bit timing via low-level bit timing parameters

  • drivers: optimize gpio driver

  • samples: exclude flash targets for mbx core1

  • samples: adjust SES project setting for coremark

  • samples: jpeg: update and integration jpeg decode samples

  • ses: use relpath for linker script in project file

  • ses: add HPM device name in generated project file

  • soc: HPM6750: add an interface selection api

Added:

  • soc: HPM6750: add ram linker for core1

  • ses: support to use Andes toolchain

  • middleware: add hpm_math (replacing hpm_dsp)

  • samples: add lwip httpd

  • drivers: add section and alignment general instructions in hpm_common.h

Fixed:

  • boards: hpm6750evk: fix bldc adc pinmux error

  • boards : hpm6750evk : pinmux : fix spi init pins error

  • samples: sdp: fix non-cacheable data initialization issue

  • samples: littlevgl: fix wrong picture patch in README

[0.8.0] - 2022-03-04:

All changes since 0.7.3

Changed:

  • rename middleware/sdmmc to middleware/hpm_sdmmc

  • place isr into .isr_vector section for irq non-vector mode

  • change csr functions to support llvm

Fixed:

  • ses: fix issue in register xml

  • freertor: fix trap handler at non-vector mode

  • sdxc: fix software reset issue

Added:

  • add sdk doc

  • add more sample doc

  • add multicore demo

  • i2c/uart: add dma support

  • add tensorflow lite for microcontroller

[0.7.3] - 2022-02-23:

All changes since 0.7.2

Changed:

  • freertos: change exception handling

[0.7.2] - 2022-02-21:

All changes since 0.7.1

Changed:

  • freertos: change freertos irq stack definition, passed in CMakeLists.txt, defined in linker

  • soc: hpm6750: add DISABLE_IRQ_PREEMPTIVE to check if it needs to enable irq preemption

Fixed:

  • freertos: disable irq preemption

[0.7.1] - 2022-02-13:

All changes since 0.7.0

Changed:

  • drivers: adc12: update adc12_prd_config_t

  • samples: can: update case with interrupt and communication between two boards

Fixed:

  • drivers: can: fix blocking transcation issue

  • samples: mbx: support run this example in SES

  • SES: startup: add fpu enable if abi is set to enable hw fp

Added:

  • samples: multicore: add flash based multicore example

  • drivers: can: add apis to recvieve message for non-blocking use

[0.7.0] - 2022-01-30:

All changes since 0.6.2

Changed:

  • update default CPU frequency to 816MHz from 648MHz

  • update the ip headers

  • drivers: gpio: replace gpio_XXX_pins with gpio_XXX_port

  • drivers: gpio: remove pin level enum definition

  • drivers: i2s: driver update to remove mclk_div

  • drivers: ptpc: update driver

  • drivers: common: update get first set bit API

  • drivers: uart: split one enable with parameter into enable and disable interfaces

  • drivers: pwm: change name of output_channel config API

  • drivers: trgm: split separate API to enable/disable io output

  • soc: HPM6750: initialize noncacheable data in startup

  • soc: HPM6750: l1c: update fence.i call

  • samples: hello_world: add LED flashing

  • samples: littlevgl: remove lvgl example

Fixed:

  • hpm6750evkmini: correct refresh cycle number of sdram

  • hpm6750evkmini: Fix the SDRAM memory range issue in flash_sdram_xip linker file

  • SES: remove no_relax option for linker, since segger has provide a patch to its ld for ses v6.10.

  • drivers: gpio: fix read pin issue:

  • drivers: usb: fix usb disconnection under linux environment

  • drivers: sdxc: Fixed the compatibility issue on different SD/eMMC cards in the sdcard_fatfs demo

  • drivers: gptmr: incorrect DMAEN configuration condition

  • drivers: gptmr: clear CNTRST bit after set.

  • SDK_DECLARE_EXT_ISR_M cannot work in the c++ file

  • FreeRTOS: fix ISR_STACK setting

  • components: touch: gt911: fix gpio write pin call

Added:

  • SEG: add register definition file in generated embedded studio project

  • samples: drivers: gpiom: Add example to demonstrate gpiom’s function

  • drivers: common: add macro to put data into noncacheable sections

  • middleware: integrate lwip