I added the following function to convert an uint8_t array to uint32_t. But west build with warning: array subscript 'uint32_t {aka unsigned int}[0]' is partly outside array bounds of 'uint8_t[1]' {aka 'unsigned char[1]'} [-Warray-bounds]
574 | *regVal = spiData2Uint32(rxBufU8);
uint32_t spiData2Uint32(const uint8_t* pData) { uint32_t data32[4]; for (int i=0; i<4; i++) { data32[i] = *(pData + i); } const uint32_t ui = data32[3] << 16 | data32[2] << 8 | data32[1]; return ui; }
C:\ncs\v2.4.0\nrf\samples\minimal_log_adc>west build -b custom_nrf5340_cpuapp -- west build: generating a build system Loading Zephyr default modules (Zephyr base). -- Application: C:/ncs/v2.4.0/nrf/samples/minimal_log_adc -- CMake version: 3.20.5 -- Using NCS Toolchain 2.4.0 for building. (C:/ncs/toolchains/31f4403e35/cmake) -- Found Python3: C:/ncs/toolchains/31f4403e35/opt/bin/python.exe (found suitable exact version "3.8.2") found components: Interpreter -- Cache files will be written to: C:/ncs/v2.4.0/zephyr/.cache -- Zephyr version: 3.3.99 (C:/ncs/v2.4.0/zephyr) -- Found west (found suitable version "1.0.0", minimum required is "0.7.1") -- Board: custom_nrf5340_cpuapp -- Found host-tools: zephyr 0.16.0 (C:/ncs/toolchains/31f4403e35/opt/zephyr-sdk) -- Found toolchain: zephyr 0.16.0 (C:/ncs/toolchains/31f4403e35/opt/zephyr-sdk) -- Found Dtc: C:/ncs/toolchains/31f4403e35/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6") -- Found BOARD.dts: C:/ncs/v2.4.0/nrf/boards/arm/custom_nrf5340/custom_nrf5340_cpuapp.dts -- Found devicetree overlay: C:/ncs/v2.4.0/nrf/samples/minimal_log_adc/custom_nrf5340_cpuapp.overlay -- Generated zephyr.dts: C:/ncs/v2.4.0/nrf/samples/minimal_log_adc/build/zephyr/zephyr.dts -- Generated devicetree_generated.h: C:/ncs/v2.4.0/nrf/samples/minimal_log_adc/build/zephyr/include/generated/devicetree_generated.h -- Including generated dts.cmake file: C:/ncs/v2.4.0/nrf/samples/minimal_log_adc/build/zephyr/dts.cmake Parsing C:/ncs/v2.4.0/zephyr/Kconfig Loaded configuration 'C:/ncs/v2.4.0/nrf/boards/arm/custom_nrf5340/custom_nrf5340_cpuapp_defconfig' Merged configuration 'C:/ncs/v2.4.0/nrf/samples/minimal_log_adc/prj.conf' Configuration saved to 'C:/ncs/v2.4.0/nrf/samples/minimal_log_adc/build/zephyr/.config' Kconfig header saved to 'C:/ncs/v2.4.0/nrf/samples/minimal_log_adc/build/zephyr/include/generated/autoconf.h' -- Found GnuLd: c:/ncs/toolchains/31f4403e35/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe (found version "2.38") -- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- The ASM compiler identification is GNU -- Found assembler: C:/ncs/toolchains/31f4403e35/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe CMake Warning at C:/ncs/v2.4.0/zephyr/CMakeLists.txt:838 (message): No SOURCES given to Zephyr library: lib__libc__common Excluding target from build. -- Configuring done -- Generating done -- Build files have been written to: C:/ncs/v2.4.0/nrf/samples/minimal_log_adc/build -- west build: building application [1/191] Generating include/generated/version.h -- Zephyr version: 3.3.99 (C:/ncs/v2.4.0/zephyr), build: v3.3.99-ncs1 [58/191] Building C object CMakeFiles/app.dir/src/adc.c.obj ../src/adc.c: In function '_ad7124Uint8ToStatus': ../src/adc.c:543:1: warning: no return statement in function returning non-void [-Wreturn-type] 543 | } | ^ ../src/adc.c: In function '_ad7124RegRead': ../src/adc.c:574:15: warning: implicit declaration of function 'spiData2Uint32' [-Wimplicit-function-declaration] 574 | *regVal = spiData2Uint32(rxBufU8); | ^~~~~~~~~~~~~~ ../src/adc.c: In function '_ad7124RegIdRead': ../src/adc.c:604:63: warning: passing argument 3 of '_ad7124RegRead' from incompatible pointer type [-Wincompatible-pointer-types] 604 | if (_ad7124RegRead(AD7124_REG_ADDR_ID, AD7124_REG_LEN_ID, id) < 0) { | ^~ | | | uint8_t * {aka unsigned char *} ../src/adc.c:546:78: note: expected 'uint32_t *' {aka 'unsigned int *'} but argument is of type 'uint8_t *' {aka 'unsigned char *'} 546 | static int _ad7124RegRead(const uint8_t regAddr, const size_t len, uint32_t* regVal) { | ~~~~~~~~~~^~~~~~ ../src/adc.c: At top level: ../src/adc.c:826:12: warning: '_ad7124RegGainWrite' defined but not used [-Wunused-function] 826 | static int _ad7124RegGainWrite(const ad7124_gain_idx_t idx, const uint32_t gain) { | ^~~~~~~~~~~~~~~~~~~ ../src/adc.c:815:12: warning: '_ad7124RegOffsetWrite' defined but not used [-Wunused-function] 815 | static int _ad7124RegOffsetWrite(const ad7124_offset_idx_t idx, const uint32_t offset) { | ^~~~~~~~~~~~~~~~~~~~~ ../src/adc.c:796:12: warning: '_ad7124RegFilterWriteFs' defined but not used [-Wunused-function] 796 | static int _ad7124RegFilterWriteFs(const ad7124_filter_idx_t idx, const uint16_t fs) { | ^~~~~~~~~~~~~~~~~~~~~~~ ../src/adc.c:776:12: warning: '_ad7124RegConfigWritePga' defined but not used [-Wunused-function] 776 | static int _ad7124RegConfigWritePga(const ad7124_config_idx_t idx, const ad7124_config_pga_t pga) { | ^~~~~~~~~~~~~~~~~~~~~~~~ ../src/adc.c:764:12: warning: '_ad7124RegConfigWrite' defined but not used [-Wunused-function] 764 | static int _ad7124RegConfigWrite(const ad7124_config_idx_t idx, const ad7124_config_t cfg) { | ^~~~~~~~~~~~~~~~~~~~~ ../src/adc.c:745:12: warning: '_ad7124RegAdcCtrlWriteMode' defined but not used [-Wunused-function] 745 | static int _ad7124RegAdcCtrlWriteMode(const ad7124_op_mode_t mode) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/adc.c:736:12: warning: '_ad7124RegCommsWrite' defined but not used [-Wunused-function] 736 | static int _ad7124RegCommsWrite(const uint32_t regVal) { | ^~~~~~~~~~~~~~~~~~~~ ../src/adc.c:721:12: warning: '_ad7124RegWriteMask' defined but not used [-Wunused-function] 721 | static int _ad7124RegWriteMask(const uint8_t regAddr, unsigned int mask, unsigned int val, unsigned int len) { | ^~~~~~~~~~~~~~~~~~~ ../src/adc.c:687:12: warning: '_ad7124RegGainRead' defined but not used [-Wunused-function] 687 | static int _ad7124RegGainRead(const ad7124_gain_idx_t idx, uint32_t* regVal) { | ^~~~~~~~~~~~~~~~~~ ../src/adc.c:677:12: warning: '_ad7124RegOffsetRead' defined but not used [-Wunused-function] 677 | static int _ad7124RegOffsetRead(const ad7124_offset_idx_t idx, uint32_t* regVal) { | ^~~~~~~~~~~~~~~~~~~~ ../src/adc.c:627:24: warning: '_ad7124U32ToConfig' defined but not used [-Wunused-function] 627 | static ad7124_config_t _ad7124U32ToConfig(const uint32_t val) { | ^~~~~~~~~~~~~~~~~~ ../src/adc.c:579:12: warning: '_ad7124RegStausRead' defined but not used [-Wunused-function] 579 | static int _ad7124RegStausRead(ad7124_status_t* status) { | ^~~~~~~~~~~~~~~~~~~ ../src/adc.c:506:17: warning: '_ad7124GetRegFilterFS' defined but not used [-Wunused-function] 506 | static uint16_t _ad7124GetRegFilterFS(const ad7124_power_mode_t mode, const int fAdc) { | ^~~~~~~~~~~~~~~~~~~~~ ../src/adc.c:500:14: warning: '_ad7124GetF3dB' defined but not used [-Wunused-function] 500 | static float _ad7124GetF3dB(const int fAdc) { | ^~~~~~~~~~~~~~ In function '_ad7124RegRead', inlined from '_ad7124RegIdRead' at ../src/adc.c:604:9, inlined from '_ad7124RegIdCheck' at ../src/adc.c:614:9, inlined from 'ad7124Init' at ../src/adc.c:848:9: ../src/adc.c:574:13: warning: array subscript 'uint32_t {aka unsigned int}[0]' is partly outside array bounds of 'uint8_t[1]' {aka 'unsigned char[1]'} [-Warray-bounds] 574 | *regVal = spiData2Uint32(rxBufU8); | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ ../src/adc.c: In function 'ad7124Init': ../src/adc.c:613:13: note: object 'id' of size 1 613 | uint8_t id; | ^~ [181/191] Linking C executable zephyr\zephyr_pre0.elf [185/191] Linking C executable zephyr\zephyr_pre1.elf [191/191] Linking C executable zephyr\zephyr.elf Memory region Used Size Region Size %age Used FLASH: 43684 B 1 MB 4.17% RAM: 10360 B 448 KB 2.26% IDT_LIST: 0 GB 2 KB 0.00%