블로그 이미지
안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday

달력

« » 2025.5
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

공지사항

최근에 올라온 글

warning C4800: 'BOOL' : forcing value to bool 'true' or 'false' (performance warning)
성능저하 경고 메세지
bool타입이 아닌 값을 bool 타입으로 변경하기위해서는 비교문이 자동으로 추가된다.
비교문은 성능을 저하시키는 원인중 하나이다.
비교문(if)은 생각보다 성능이 많이 떨어진다.

예)
class xx
{
   int m_cnt;
   bool is_empty();

};
bool xx::is_empty()
{
    return m_cnt;
}

bool xx::is_empty()
{
    return m_cnt;   //return (m_cnt==0);  비교문이 추가된다.
}

Posted by 안녕1999
, |

warning: cannot find entry symbol Reset_Handler

스타트업 파일을 못찾아서 발생.

gcc 명령에서 main.c, 스타트업파일은 gcc 파라메터로 적어주면된다. -I가 아니다.
예) 
arm-none-eabi-gcc -g -O3 -mthumb -mcpu=cortex-m0 -fdata-sections -ffunction-sections -Wl,--gc-sections ^
-DCORTEX_M0 ^
-DUSE_STDPERIPH_DRIVER ^
-I%prjpath% ^
-I%incpath% ^
%prjpath%\main.c ^
%incpath%\startup_W7500.S ^
-T %incpath%\gcc_W7500.ld ^
-o main.o -v

Posted by 안녕1999
, |

SERCOM

C언어,ARM / 2019. 11. 17. 19:18

개념 : USART,SPI,I2C등의 기능을 통합(추상화)한것.
예전 CPU들은 UART,SPI,I2C등의 개수가 고정되어 있어서, 일반적인 개수가 아닌경우에는 더 큰 CPU를 찾아봐야했다.
그러나 SERCOM은 UART,SPI,I2C로 맞추어서 사용할 수 있어 편리하다.
그러나, 설정이 좀 복잡하다.(USART,SPI는 RX,TX핀도 설정해줘야한다)
설정방법을 공부해야한다 ㅡ,.ㅡ

SERCOM은 최대 6개까지 지원됨.
48핀 패키지에서도 2~3개정도 사용가능

SERCOM은 PAD[0...3]핀이 있음.
RX,TX등의 기능을 설정할 수 있어 이름이 PAD[0...3]으로 되어 있음(설정을 변경해야하는 붚련함)
USART,SPI는 RX,TX,CLK등의 핀번호를 설정해주어야함

모드설정
USART,SPI,I2C중에 어떤것으로 사용할지 설정
"SERCOM – Serial Communication Interface"
"SERCOM USART"
"SERCOM SPI"
"SERCOM I2C"

Table 25-1. SERCOM Modes
CTRLA.MODE Description
0x0 USART with external clock
0x1 USART with internal clock
0x2 SPI in slave operation
0x3 SPI in master operation
0x4 I 2C slave operation
0x5 I 2C master operation
0x6-0x7 Reserved


각 모드별로 레지스터 설정
"SERCOM USART"
"SERCOM SPI"
"SERCOM I2C"

i2c핀은 PAD0,PAD1로 고정되어 있다.
28.4 Signal Description Signal
Name Type Description
PAD[0] Digital I/O SDA
PAD[1] Digital I/O SCL
PAD[2] Digital I/O SDA_OUT (4-wire operation)
PAD[3] Digital I/O SCL_OUT (4-wire operation)


i2c는 마스터, 슬래이브용 레지스터가 별도로 있다.


Write protection
11.6.2.3.1 Write-Protect Clear
Name:  WPCLR
Offset:  0x00
Reset:  0x00800000


Bits 7:2 – SERCOM[5:0]
Writing a zero to these bits has no effect.
Writing a one to these bits will clear the Write-Protect bit for the corresponding peripherals.

Value Description
0 Write protection is disabled
1 Write protection is enabled



질문]PAD0~3중에 2,3개핀만 사용할 수 있는 경우에도 SERCOM으로 사용가능한가?
예) I2C는 2핀만 사용하면 된다.
=>YES. i2c는 2핀만 사용(PAD0,PAD1로 고정되어 있다)


ATSAMD21E15L-QFN32,TQFP32의 경우, USART는 TX,RX만 사용할 경우, i2s를 제외하고도 4개를 사용할 수 있음(XIN/XOUT사용안할 경우)

http://ww1.microchip.com/downloads/en/DeviceDoc/SAMD21-Family-DataSheet-DS40001882D.pdf

Posted by 안녕1999
, |

Yes.

gcc옵션에 -fdata-sections -ffunction-sections -Wl,--gc-sections 추가

'C언어,ARM' 카테고리의 다른 글

warning: cannot find entry symbol Reset_Handler  (0) 2019.11.20
SERCOM  (0) 2019.11.17
ST-LINK Utility  (0) 2019.10.05
ST USB driver - VCP_V1.5.0_Setup_W7_x64_64bits  (0) 2019.10.05
STSW-LINK009  (0) 2019.10.05
Posted by 안녕1999
, |

ST-LINK Utility

C언어,ARM / 2019. 10. 5. 23:59
Posted by 안녕1999
, |
Posted by 안녕1999
, |

STSW-LINK009

C언어,ARM / 2019. 10. 5. 21:34
Posted by 안녕1999
, |

warning: incompatible implicit declaration of built-in function 'memset'

#include "string.h" 추가하면 됨

Posted by 안녕1999
, |

윈도우 시리얼번호는 종이에 적혀있다.

윈도우 정품인증 절차를 걸쳐서 입력해주어야 한다.


라떼판다 껏다켰다 몇번하니, 윈도우 부팅이 안되어, USB메모리에 부트이미지 넣고, Power On.

자동으로 윈도우 이미지 재설치.

exit누르면, 재부팅되고, USB메모리가 그대로 있다면, 또다시 재설치한다.

그러므로, exit하라고 하면, 라떼판다를 Off시키고, USB메모리를 제거하라.


윈도우 재설치 이미지는 아래 주소에서 받을 수 있다. 5~6G크기의 rar압축파일이다.

http://docs.lattepanda.com/content/1st_edition/os/


rar압축파일에는 폴더가 하나 있고, 폴더안에 많은 파일들이 들어 있는데, USB메모리에 압축을 풀때는 많은 파일들이 최상위폴더(루트)에 있어야한다.

USB메모리 최상위 폴더에 폴더 1개만 있다면, 윈도우 재설치가 안된다.

Posted by 안녕1999
, |
m_TabCtrl.Insert(...)
m_TabCtrl.Update();//화면갱신


m_TabCtrl.Delete(..);
m_TabCtrl.Update();//화면갱신
Posted by 안녕1999
, |

최근에 달린 댓글

글 보관함