/******************************************************************************
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C/C++.
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/
#include <stdio.h>
#include <stdint.h>
#define NUM_SAMPLES 8
#define DMA_DATA_ALIGN_LSB 0
#define DMA_DATA_ALIGN_MSB 1
int main() {
// Simulated 16-bit input data
uint16_t input_data[NUM_SAMPLES] = {0x1234, 0xABCD, 0x00FF, 0x8001, 0x5678, 0xFFFF, 0x0001, 0x7FFF};
// Output buffer for 32-bit converted data
uint32_t output_data[NUM_SAMPLES];
// Simulated DMA alignment setting
uint16_t dma_data_align = DMA_DATA_ALIGN_MSB; // Change to DMA_DATA_ALIGN_LSB to test other case
uint16_t shift_factor = (dma_data_align == DMA_DATA_ALIGN_LSB) ? 0 : 16;
// Conversion loop
for (int i = 0; i < NUM_SAMPLES; i++) {
uint16_t src = input_data[i];
uint32_t converted = ((uint32_t)src) << shift_factor;
output_data[i] = converted;
// Print results
printf("Sample %d: 16-bit = 0x%04X → 32-bit = 0x%08X\n", i
, src
, converted
); }
return 0;
}
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKV2VsY29tZSB0byBHREIgT25saW5lLgpHREIgb25saW5lIGlzIGFuIG9ubGluZSBjb21waWxlciBhbmQgZGVidWdnZXIgdG9vbCBmb3IgQy9DKysuCkNvZGUsIENvbXBpbGUsIFJ1biBhbmQgRGVidWcgb25saW5lIGZyb20gYW55d2hlcmUgaW4gd29ybGQuCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaW5jbHVkZSAgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KCiNkZWZpbmUgTlVNX1NBTVBMRVMgOAojZGVmaW5lIERNQV9EQVRBX0FMSUdOX0xTQiAwCiNkZWZpbmUgRE1BX0RBVEFfQUxJR05fTVNCIDEKCmludCBtYWluKCkgewogICAgLy8gU2ltdWxhdGVkIDE2LWJpdCBpbnB1dCBkYXRhCiAgICB1aW50MTZfdCBpbnB1dF9kYXRhW05VTV9TQU1QTEVTXSA9IHsweDEyMzQsIDB4QUJDRCwgMHgwMEZGLCAweDgwMDEsIDB4NTY3OCwgMHhGRkZGLCAweDAwMDEsIDB4N0ZGRn07CgogICAgLy8gT3V0cHV0IGJ1ZmZlciBmb3IgMzItYml0IGNvbnZlcnRlZCBkYXRhCiAgICB1aW50MzJfdCBvdXRwdXRfZGF0YVtOVU1fU0FNUExFU107CgogICAgLy8gU2ltdWxhdGVkIERNQSBhbGlnbm1lbnQgc2V0dGluZwogICAgdWludDE2X3QgZG1hX2RhdGFfYWxpZ24gPSBETUFfREFUQV9BTElHTl9NU0I7ICAvLyBDaGFuZ2UgdG8gRE1BX0RBVEFfQUxJR05fTFNCIHRvIHRlc3Qgb3RoZXIgY2FzZQogICAgdWludDE2X3Qgc2hpZnRfZmFjdG9yID0gKGRtYV9kYXRhX2FsaWduID09IERNQV9EQVRBX0FMSUdOX0xTQikgPyAwIDogMTY7CgogICAgLy8gQ29udmVyc2lvbiBsb29wCiAgICBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9TQU1QTEVTOyBpKyspIHsKICAgICAgICB1aW50MTZfdCBzcmMgPSBpbnB1dF9kYXRhW2ldOwogICAgICAgIHVpbnQzMl90IGNvbnZlcnRlZCA9ICgodWludDMyX3Qpc3JjKSA8PCBzaGlmdF9mYWN0b3I7CiAgICAgICAgb3V0cHV0X2RhdGFbaV0gPSBjb252ZXJ0ZWQ7CgogICAgICAgIC8vIFByaW50IHJlc3VsdHMKICAgICAgICBwcmludGYoIlNhbXBsZSAlZDogMTYtYml0ID0gMHglMDRYIOKGkiAzMi1iaXQgPSAweCUwOFhcbiIsIGksIHNyYywgY29udmVydGVkKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQoKICAgIA==