초보의 아웅다웅 설계하기 336

STM --cpp 옵션으로 인한 에러

C로 컴파일 할 때는 이상없이 되다가 --cpp 옵션을 넣을 경우 에러가 발생 error: #167: argument of type "void *" is incompatible with parameter of type "xxxxxxxxxxxxxxxxx *" void HAL_HCD_SOF_Callback(HCD_HandleTypeDef *hhcd) { USBH_LL_IncTimer(hhcd->pData); /* void USBH_LL_IncTimer(USBH_HandleTypeDef *phost); */ } => void HAL_HCD_SOF_Callback(HCD_HandleTypeDef *hhcd) { USBH_LL_IncTimer((USBH_HandleTypeDef *)(hhcd->pData)); }

ADSTAR SDCard Boot 시 각종 에러 발생 문제

SD Card를 사용하여 Boot를 하는 경우 지켜져야 하는 조건이 있는 것 같습니다. USB Host를 사용하면 USB_OVC에 100k옴을 달아줘야 하는 것 같습니다. 10k옴을 달았더니 아래의 에러들이 랜덤하게 발생했습니다. (100k옴으로 변경 후 계속 발생하지 않는 걸로 보아 해결된 것으로 보입니다. 아마...=> 계속 테스트 하고 있었는데 3일 만에 나와버리고 말았습니다. => 현재까지는 MCU 변경하다보니 발생하는 MCU가 있고 발생하지 않는 MCU가 있어서 MCU 교체로 해결하고 있습니다.) 내부 플래쉬에 라이팅하는 경우에는 발생하지 않았고, USB Host를 사용하지 않거나 SD Card 포맷시 설정(8192로 하면 동작하고 16kb로 하면 바로 에러가 발생하고 등등)에 따라서 발생 빈도..

NTC(10k) 수식

NTC의 특성 값이나 회로 부분은 변경하여 사용하여야 합니다. #define REF_RESIST 10000 #define VREF 3.3f /******************************************************************************* * Function Name : * Parameters : None * Return : None * Description : 3.3 : 4096 = x : ADC Vout= (x/(x+10000)) * 3.3 *******************************************************************************/ float Calculation_Vout(u16 a_nhADCValue, ..

ADSTAR - Sleep mode

Halt3는 Cpu 코어만 Sleep로 들어가는 모드입니다. 크게 전류 소모량이 줄어드는지는 모르겠습니다. 조금 더 Deep Sleep 하는 모드도 있는데 기본적으로 30mA 전, 후의 전류가 소모된다고 해서 Sleep 모드가 중요하다면 ADSTAR가 아닌 다른 칩을 사용하는게 맞을 것 같습니다. /* Sleep mode enable - halt3 */ #define SleepMode_Config() *(U32*)0x80023C00 |= (1

ADC128S102, DAC128S085

ADC128S102는 첫 데이터가 들어가고 다음 데이터에서 값이 나오는 것 같습니다. 때문에 값을 받을때는 한 채널씩 뒤로 밀리네요. #if 0 /* datalength 8bit */ #if 0 /* Enable SPI and GPIO clocks */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); /* Configure SPI pins: SCK, MISO and MOSI */ GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_SPI2); GPIO_PinAFConfig(GPIOB, GPIO_PinSource14, GPIO_AF_SPI2); GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, G..

SD Card 내에 파일을 읽어서 Ymodem으로 업데이트

SD Card 내에 파일을 읽어서 Ymodem을 사용하여 업데이트하였습니다. MCU는 Adstar을 사용하였습니다.(Download는 미사용) s32 Fats_UpdateFile_Read(char* fname, u8 *FileData, u16 FileSize, u32 FilePosition) SD Card의 파일을 읽는 함수이고 File Name을 읽어오기 위해 아래 함수도 약간 수정하였습니다. void Ymodem_PreparePacket(char* fname, u8 *SourceBuf, u8 *data, u8 pktNo, u32 sizeBlk) /******************************************************************************* * Funct..

[ABOV] A33G52 EVM 보드를 사용한 부트로더

ABOV에 부트로더를 사용한 펌웨어 다운로드 프로그램이 없어 ST의 IAP를 수정하여 적용하였습니다. Silicon Labs의 X-Modem을 올릴까 ST의 Y-Modem을 올릴까 고민하다가 ST에서 제공하는 Y-Modem을 올렸습니다. Silicon Labs에서 제공하는 프로그램은 제 기억에 특정 baudrate가 없이 처음 입력하는 버튼의 길이를 측정하여 baudrate를 자동 설정했던 것으로 기억합니다. 아이디어 진짜 신박하다고 생각했었는데. ㅎㅎ Y-Modem 테스트는 하이퍼 터미널 프로그램을 사용하였습니다.(압축 파일 내에 넣었습니다.) Oanny라고 적힌 부분들을 따라가보면 변경 부분이 쉽게 보입니다. IAP 사이즈를 널널하게 0x5000을 잡아서 Application의 시작점을 0x5000으..

No section matches selector - no section to be FIRST/LAST. 에러

CubeMX로 프로젝트를 생성 후 나오는 에러 start-up 파일(예 - startup_stm32h743xx.s)이 링크되어 있지 않을 경우 발생 XXX.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST. Not enough information to list image symbols. Not enough information to list load addresses in the image map. Finished: 2 information, 0 warning and 1 error messages. "XXX.axf" - 1 Error(s), 0 Warning(s).