1. Gemini Code Assist 설치

: Visual Studio Code가 설치 되어 있어야 한다.(이하 VSC)

: VSC에서 Extension에서 Gemini Code Assist를 검색하여 install

 

2-2. 왼쪽 다이아몬드 모양을 누르면 아래와 같이 사용 가능


2. GitHub Copilot 설치

: VSC에서 Extension에서 GitHub Copilot + GitHub Copilot Chat 검색하여 install

 

2-1. GitHub 계정 연결

: 상단 중앙 또는 하단의 개구리 모양(고글 쓴 로봇)을 누르면 사용 가능

 

Sign in to use Copilot for free 버튼을 클릭하여 Github 계정 연결.

GitHub 계정이 있으면 연결

없으면 Create an account 버튼 눌러서 계정 생성

 

2-2. GitHub Copilot 설정

https://github.com/settings/copilot/features

 

GitHub · Build and ship software on a single, collaborative platform

Join the world's most widely adopted, AI-powered developer platform where millions of developers, businesses, and the largest open source community build software that advances humanity.

github.com

 

: Settings - Copilot - Features

: 처음 접속하면 You are using Copilot for free 라고 뜨는데, 밑에 Start a free trial 버튼 클릭

 

: Copilot in GitHub.com → Enabled

: Copilot in GitHub Desktop → Enabled

 

 

'AI' 카테고리의 다른 글

Claude(클로드)에 Notion MCP Server 연결  (0) 2025.08.28
Claude(클로드)에 Figma MCP Server 연결  (1) 2025.08.26
클라우드 플랫폼이란?  (1) 2025.08.26

 

최근 이런 생각이 들었다.

내가 선택해 쓰는 프로그래밍 언어(이하 언어)와 프레임워크, 앞으로도 살아남을 수 있을까?

서서히 사라져가는 기술에 시간을 쓰는건 아닐까?

 

예전에는 플랫폼 마다 언어가 거의 정해져 있었다.

- PC나 서버에서는 Java, C#, Python 같은 범용 언어들이 주로 사용됐고,

- 센서나 장비 위에서는 C나 C++ 같은 임베디드 전용 언어가 사용됐다.

 

하지만 지금은 상황이 다르다.

- 라즈베리 파이 같은 고성능 보드에서는 Python도 돌아가고,

- Rust나 MicroPython처럼 PC와 임베디드 경계를 넘나드는 언어도 등장했다.

PC와 임베디드의 기술의 경계가 흐려졌고, 선택지도 많아졌다.

 


 

 

기술을 고를 수 있는 폭은 넓어졌지만, 그만큼 ‘오래가지 않는 기술’을 고를 위험도 커졌다.

유지보수가 끊긴 프레임워크, 구인 시장에서 사라진 언어들.

그럴 때마다 생각하게 된다.

지금 나는 어떤 흐름에 올라타야 할까?

 

최근 몇 년간 어떤 언어가 올라가고, 어떤 언어가 내려갔는지 살펴봤다.

내가 자주 보거나 써온 언어들을 중심으로 정리해보니 이런 흐름이 보였다

 

  • Python, JavaScript, TypeScript, Rust는 꾸준히 올라오고 있음
  • Java와 C#은 한때 압도적인 점유율을 보였지만 천천히 하락 중
  • Go는 클라우드, 인프라 분야에서 안정적인 위치를 유지하고 있음
 
언어
등장
주로 쓰이는 곳
요약
Java
1995
서버, 안드로이드
한 시대를 풍미했지만 지금은 조금씩 내려오는 중
C# (.NET)
2002
윈도우 앱, 게임, 백엔드
안정적이긴 한데 앞으로 확 올라가진 않을 듯
Python
1991
데이터, 자동화, AI
요즘엔 안 쓰는 데가 없음
JavaScript
1995
웹 프론트엔드, 풀스택
웹 쪽은 이 언어가 기본
TypeScript
2012
대규모 프론트엔드, 서버
이제는 TS 없이 JS를 말하기 어려움
Go
2009
인프라, 클라우드
특정 분야에서는 잘 버티는 언어
Rust
2010
시스템, 보안, WebAssembly
쓰는 사람은 적지만, 확실히 성장 중
C++
1985
게임, 내장형 시스템
여전히 건재하지만 새로운 진입은 많지 않음

 

요즘 인기 있다는 이유로 언어를 쉽게 바꾸고 싶진 않다.

하지만 적어도, 앞으로도 살아남을 기술에 시간을 쓰고 싶다.

내가 쓰는 언어가 그냥 ‘지금 당장 되는 기술’인지,

아니면 몇 년 뒤에도 여전히 쓸 수 있을 기술인지

한 번쯤 점검할 필요가 있다.

 

프로그래밍 언어는 결국 도구다.

하지만 그 도구가 나의 커리어 방향을 정하기도 한다.

눈앞의 편리함만 쫓지 말고, 지금 내가 타고 있는 흐름이 어디로 향하는지도 같이 봐야 한다고 생각한다.

 

 

Claude(클로드)에 Notion MCP Server 연결

 

1-1. Notion Web : 개인 토큰 생성

Profile - Integrations - New integration - Internal Integration Secret

https://www.notion.so/profile/integrations

 

The AI workspace that works for you. | Notion

A tool that connects everyday work into one space. It gives you and your teams AI tools—search, writing, note-taking—inside an all-in-one, flexible workspace.

www.notion.com

 

 

1-2. Notion Web : 개인 토큰 생성 및 복사

(절대 남에게 공개 하면 안됨)

 

1-3. Notion Web : Integration 설정

 

1-4. Notion Web : Acess page 추가

 

2. Claude Desktop : json 파일 편집

설정 - 개발자 - 로컬 MCP 서버 - 구성 편집

 

3. Claude Desktop : claude_desktop_config.json 파일 편집

2번에서 생성한 개인 토큰을 아래 편집 파일의 your-integration-token에 대체

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["-y", "@suekou/mcp-notion-server"],
      "env": {
        "NOTION_API_TOKEN": "your-integration-token"
      }
    }
  }
}
 

4. Claude Desktop 완전 종료 후 재실행

running 되었음 확인 가능

 

 

'AI' 카테고리의 다른 글

VSCode에 Gemini Code Assist + GitHub Copilot 설치  (0) 2025.09.09
Claude(클로드)에 Figma MCP Server 연결  (1) 2025.08.26
클라우드 플랫폼이란?  (1) 2025.08.26

 

Model Context Protocol (MCP)

Anthropic이 발표한 지능형 에이전트용 개방형 프로토콜. Model Context Protocol (MCP)을 통해 수천 개의 외부 도구와 데이터 소스에 연결할 수 있음

MCP 서버는 Claude Code가 도구, 데이터베이스, API에 액세스할 수 있게 함

 

현재 기준으로 수천 개의 MCP Server가 공개되어 있어, Claude와 다양한 외부 서비스 간의 연동이 가능. 여기는 Figma만 적어 놓았고, MCP Server별로 설정 방법이 다르므로, 다른 MCP Server 사용시 방법 확인 필요.

ChatGPT는 MCP Server를 지원하지 않고, 에이전트 모드라고 만들었는데 유료 버전 부터 사용 가능

 

  • MCP 호스트 : 데이터에 액세스하기 위해 MCP를 사용하는 AI LLM 애플리케이션.
  • MCP 클라이언트 : 호스트 애플리케이션 내부에서 MCP 서버와의 일대일 개별 연결을 유지하는 시스템
  • MCP 서버 : 표준화된 프로토콜을 통해 컨텍스트, 도구, 프롬프트 등 특정 기능과 정보 소스를 제공하며, 데이터와 기능을 MCP 클라이언트에 노출하는 프로그램
  • 로컬 데이터 소스 : 관련 정보를 포함하는 데이터베이스, 파일 및 로컬 서비스
  • 원격 서비스 : MCP 서버가 기능을 확장하기 위해 연결할 수 있는 외부 API 또는 서비스

 

https://docs.anthropic.com/ko/docs/claude-code/mcp

 

MCP를 통해 Claude Code를 도구에 연결하기 - Anthropic

”—” 매개변수 이해하기: -- (이중 대시)는 Claude 자체의 CLI 플래그와 MCP 서버에 전달되는 명령 및 인수를 구분합니다. -- 앞의 모든 것은 Claude의 옵션(--env, --scope 등)이고, -- 뒤의 모든 것은 MCP

docs.anthropic.com

 


 

A. Claude + Figma (직접 통합)

  • 기능 : Figma에서 직접 디자인 생성
  • 작업 방식 : Figma 플랫폼 내에서 Claude의 도움을 받아 디자인 작업 수행
  • 특징 : 실시간 디자인 생성 및 편집 가능

 

명령어 예시

사용자 :

"우리 모바일 앱 프로젝트 Figma 파일에서 로그인 화면 컴포넌트를 찾아서, 그 디자인을 분석하고 HTML/CSS로 구현해줘."

 

Claude :

"죄송하지만 Figma 파일에 직접 접근할 수 없습니다. 대신 다음과 같은 방법으로 도움을 드릴 수 있습니다: 1. Figma에서 로그인 화면을 스크린샷으로 찍어서 공유해 주세요

2. 또는 Figma의 "Copy as CSS" 기능을 사용한 코드를 붙여넣어 주세요

3. 디자인 스펙(색상, 폰트, 크기 등)을 텍스트로 알려주세요 그러면 그 정보를 바탕으로 HTML/CSS 코드를 작성해드리겠습니다."

 


 

B. Claude + Figma MCP Server (서버 기반 통합)

  • 기능 : Claude에서 Figma 관련 작업 요청 및 처리
  • 작업 방식 : Claude 인터페이스에서 "Figma로 안내문 작성해줘"와 같은 자연어 명령으로 Figma 작업 수행
  • 특징:
    • Claude 환경에서 직접 Figma 파일 데이터 조회
    • Figma 이미지 및 에셋 다운로드
    • 자연어를 통한 직관적인 디자인 작업 지시

 

명령어 예시

사용자 :

"우리 모바일 앱 프로젝트 Figma 파일에서 로그인 화면 컴포넌트를 찾아서, 그 디자인을 분석하고 HTML/CSS로 구현해줘."

와 같이 가능해짐.

 


 

Claude(클로드)에 Figma MCP Server 연결

 

0. 사전 준비 사항 : Claude Desktop 설치

https://claude.ai/download

 

1. 코드 복사 : 다음 링크에서 Mac 또는 Windows용 코드를 복사

https://github.com/GLips/Figma-Context-MCP/blob/main/README.ko.md

 

Figma-Context-MCP/README.ko.md at main · GLips/Figma-Context-MCP

MCP server to provide Figma layout information to AI coding agents like Cursor - GLips/Figma-Context-MCP

github.com

 

2. Figma Web : 개인 토큰 생성

Profile - Settings - Security 탭 - Generate new tokens

 

3. Figma Web : 개인 토큰 생성 및 복사

(절대 남에게 공개 하면 안됨)

 

4. Claude Desktop : json 파일 편집

설정 - 개발자 - 로컬 MCP 서버 - 구성 편집

 

 

5. Claude Desktop : claude_desktop_config.json 파일 편집

3번에서 생성한 개인 토큰을 아래 편집 파일의 YOUR-KEY에 대체

{
  "mcpServers": {
    "Framelink Figma MCP": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "figma-developer-mcp", "--figma-api-key=YOUR-KEY", "--stdio"]
    }
  }
}
 

 

6. Claude Desktop 완전 종료 후 재실행

running 되었음 확인 가능



'AI' 카테고리의 다른 글

VSCode에 Gemini Code Assist + GitHub Copilot 설치  (0) 2025.09.09
Claude(클로드)에 Notion MCP Server 연결  (0) 2025.08.28
클라우드 플랫폼이란?  (1) 2025.08.26

 

클라우드 플랫폼이란?

  • 클라우드 플랫폼 = 인터넷으로 제공되는 IT 인프라와 서비스 묶음
  • 원래는 회사가 직접 서버 사서(온프레미스) 운영 → 초기 비용, 관리 부담 큼
  • 클라우드에서는 필요할 때 필요한 만큼 빌려서 사용 (Pay-as-you-go)

 

1. 클라우드 플랫폼으로 할 수 있는 것

1-1. 컴퓨팅 (서버 빌리기)

  • 웹사이트, 앱 서버, 게임 서버, AI 학습 서버 → 클릭 몇 번으로 생성
  • 예: AWS EC2, Azure VM

 

1-2. 저장소 / 데이터베이스

  • 이미지/영상/문서 저장 (드롭박스 같은 기능), 대용량 데이터베이스
  • 예: AWS S3, Azure Blob Storage / AWS RDS, Azure SQL Database

 

1-3. 네트워크

  • 전세계 데이터센터 연결, VPN, CDN(콘텐츠 전송 네트워크)

 

1-4. AI / 머신러닝

  • 음성합성(TTS), 번역, 이미지 인식, 챗봇, 데이터 분석
  • 예: AWS Polly, Rekognition / Azure Speech, Vision, OpenAI

 

1-5. 보안·인증

  • 계정 관리, 암호화, 보안 모니터링
  • 예: AWS IAM / Azure Active Directory

 

1-6. 하이브리드/IoT/빅데이터

  • 공장 IoT 데이터 수집, 빅데이터 분석, 사내 시스템과 연결

웹/앱 운영, 데이터 저장, AI, 보안, 네트워크, 분석 → 전부 클라우드에서 가능

 

2. 대표 클라우드: AWS vs Azure

구분
AWS
Azure
출시
2006년 (클라우드 1세대, 원조)
2010년 (MS 기반으로 성장)
시장 점유율
약 30% (세계 1위)
약 22% (세계 2위)
서비스 수
200개 이상 (가장 다양)
100여개 (MS 생태계에 특화)
강점
스타트업·개발자 친화
문서/커뮤니티 풍부
빠른 혁신
기업·공공기관 강세
MS 제품(Office, Windows, AD)와 자연스러운 연동
하이브리드(온프레미스+클라우드) 최적
컴퓨팅
EC2 (VM), Lambda(서버리스) → 업계 표준
VM, App Service, Functions → Windows/기업 환경에 최적
스토리지
S3 (저장소), Glacier(아카이브)
Blob Storage, Files
AI/ML
SageMaker, Polly, Rekognition
Cognitive Services (Speech, Vision, Language), Azure OpenAI
보안/인증
IAM (세밀하지만 복잡)
Azure Active Directory (기업용 인증 강점)
가격
세분화, 유연하지만 계산 어려움
MS 고객사에 할인/번들 제공

 

3. 선택 기준

  • 스타트업 / 개발자 → AWS
    • 빠른 구축, 커뮤니티 풍부, 기능 다양

 

  • 기업 / 공공기관 → Azure
    • 이미 Office 365, Windows Server, Active Directory 쓰는 조직이면 Azure가 훨씬 유리
    • 온프레미스(사내 서버)와 연동 강점

 

요약

  • 클라우드 플랫폼 = 서버, 저장소, 네트워크, AI 등을 인터넷으로 빌려 쓰는 시스템
  • 할 수 있는 것 = 웹/앱 운영, 데이터 저장·분석, AI, 보안 등 IT 전반
  • AWS = 개발자 친화, 세계 1위, 서비스 다양
  • Azure = MS 생태계 강점, 기업/공공기관 강세, 하이브리드 유리

 

 

Target
Board
Raspberry Pi5
Host
Raspberry Pi5
목표
Raspberry Pi5 - Flutter 개발 환경 구축 B-1

워크플로우 B : 라즈베리파이에서 직접 개발/실행

 

설치 → 빌드/실행 → 배포/자동시작

1. 준비(필수 패키지 설치)

 

sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl unzip xz-utils libglu1-mesa clang cmake ninja-build pkg-config libgtk-3-dev
 

GPU/KMS 사용 권장 (라즈비안 최신은 기본 KMS)
성능 안정화: GPU 메모리 늘리기(선택)

 

2. Flutter SDK 다운로드 및 설치

git clone https://github.com/flutter/flutter.git -b stable ~/flutter
echo 'export PATH="$PATH:$HOME/flutter/bin"' >> ~/.bashrc
source ~/.bashrc
flutter --version
flutter doctor
 

 

3. 프로젝트 준비 & 실행

flutter create myapp
cd myapp
flutter build linux --release
 

 

 

ChatGPT vs Chatbot App 차이

→ 전혀 연관성 없음!!!

출처 입력

 

왜 인지는 모르겠으나 ChatGPT 5를 검색하다가 아래 사이트를 들어가게 되었고, 비슷한 UI에 의심도 없이 회원 가입에 Pro 구매까지 일사천리로 진행.

 

이미 여기서 눈치 챘어야 한다. 왜 회원 가입을 새로 해야 하는지.

 

Pro가 1년 $59.99? 뒤도 안 보고 결제.

 

결재 후 대화를 시도하는데, 이전 대화 내용도 하나도 없고 멍청하기 그지 없음.

이상해서 구글링해 보니 ChatGPT 와 Chatbot App은 전혀 관계 없는 사이트였다.

심지어 결제도 paddle.com이라는 이상한 곳에서 결제 됨.

 

바로 환불 진행.

위 메일이 PADDLE.NET을 누르면 아래와 같은 화면이 나오면 - Look up my purchase 클릭

 

아래 화면에서 영수증 받은 email 주소 입력 - Locate my purchase 클릭

 

아래 화면이 나오면 email로 돌아가서 파란색 Verify and show purchases 클릭

 

그러면 아래와 같이 구매 내역이 확인됨.

나는 이미 환불 완료해서 저 상태고, 저기서 Get help 누르면 채팅창이 뜨는데 거기서 환불 요청 하면 됨.

메시지는 I’d like to cancel my payment. Can I request a refund for my purchase. 와 같이 적으면 됨.

 

환불 완료되는것 확인하고 계정까지 삭제. 아래처럼 협박하는데 무시.

 

여러분~ ChatGPT 정품? 은 아래와 같습니다. 속지 마세요!

https://chatgpt.com/

 

 

VS

1. 사양 비교

항목
CM4
CM5
폼팩터
55 × 40 mm, 2×100핀 커넥터
동일 (기계적 호환)
SoC
Broadcom BCM2711
4× Cortex-A72 @ 1.5 GHz
Broadcom BCM2712
4× Cortex-A76 @ 2.4 GHz
GPU
VideoCore VI
VideoCore VII
RAM
LPDDR4 1 / 2 / 4 / 8 GB
LPDDR4X 2 / 4 / 8 / 16 GB
eMMC
0(Lite) / 8 / 16 / 32 GB
0(Lite) / 16 / 32 / 64 GB
무선
일부 모델 Wi-Fi 5 + BT 5.0
일부 모델 Wi-Fi 5 + BT 5.0
USB
USB 2.0 ×1 (OTG 겸용)
USB 3.0 ×2, USB 2.0 ×2
PCIe
PCIe Gen 2 ×1
PCIe Gen 2 ×1
Ethernet
Gigabit Ethernet (RGMII)
Gigabit Ethernet (RGMII)
HDMI
2x HDMI (최대 4K@60Hz)
HDMI 2.0 ×2
DSI & CSI
1x 2-lane MIPI DSI, 1x 4-lane MIPI DSI
1x 2-lane MIPI CSI, 1x 4-lane MIPI CSI
2x 4-lane MIPI ports(콤보 포트)
GPIO 확장
28핀
28핀
전원 입력
5 V
5 V
I/O 전압
1.8 V 또는 3.3 V 선택
1.8 V 또는 3.3 V 선택 (점퍼)
출시 시기
2020년 10월
2024년 11월
생산 수명
최소 2031년 1월까지 지원
최소 2036년 1월까지 지원

 

2. I/O 구조 변화

  • USB 3.0 추가: CM5는 USB 3.0 ×2 지원, CM4의 CSI0/DSI0 일부 라인이 USB 3.0으로 변경됨
  • MIPI 인터페이스 통합: CAM/DISP0, CAM/DISP1 포트가 카메라·디스플레이 겸용 콤보 형태
  • I/O 전압 선택 가능: CM5는 GPIO_VREF를 1.8 V 또는 3.3 V로 설정 가능
  • M.2 확장: CM5 IO 보드에 M.2 M-Key 슬롯 추가
  • 전원/관리 핀 추가 기능: 전원 버튼, RTC 배터리, 팬 제어 신호 추가

 

3. CM4 → CM5 핀 변경 (주요 변화)

Pin
CM4 신호
CM5 신호
변경 내용
16
SYNC_IN
Fan_tacho
팬 속도 센서 입력
19
Ethernet_nLED1
Fan_PWM
팬 PWM 출력
76
Reserved
VBAT
RTC 배터리 입력
92
RUN_PG
PWR_Button
전원 버튼 입력
94
AnalogIP1
CC1
USB-C 전류 협상
96
AnalogIP0
CC2
USB-C 전류 협상
99
Global_EN
PMIC_ENABLE
PMIC 제어
100
nEXTRST
CAM_GPIO1
부팅 시 nRESET 에뮬
104
Reserved
PCIE_DET_nWAKE
PCIe 웨이크
106
Reserved
PCIE_PWR_EN
PCIe 전원 제어
111
VDAC_COMP
VBUS_EN
USB 3.0 전원 제어
128
CAM0_D0_N
USB3-0-RX_N
USB 3.0 RX−
130
CAM0_D0_P
USB3-0-RX_P
USB 3.0 RX+
134
CAM0_D1_N
USB3-0-DP
USB 2.0 D+
136
CAM0_D1_P
USB3-0-DM
USB 2.0 D−
140
CAM0_C_N
USB3-0-TX_N
USB 3.0 TX−
142
CAM0_C_P
USB3-0-TX_P
USB 3.0 TX+
157
DSI0_D0_N
USB3-1-RX_N
USB 3.0 RX−
159
DSI0_D0_P
USB3-1-RX_P
USB 3.0 RX+
163
DSI0_D1_N
USB3-1-DP
USB 2.0 D+
165
DSI0_D1_P
USB3-1-DM
USB 2.0 D−
169
DSI0_C_N
USB3-1-TX_N
USB 3.0 TX−
171
DSI0_C_P
USB3-1-TX_P
USB 3.0 TX+

 

4. 공식 IO 보드 기능 비교

항목
CM4 IO 보드
CM5 IO 보드
USB
USB 2.0 허브 기반 외부 2포트
USB 3.0 직결 2포트 + USB 2.0
PCIe
PCIe Gen2 ×1
PCIe Gen2 ×1 + M.2 M-Key
디스플레이
HDMI 2.0 ×2
HDMI 2.0 ×2
MIPI
CSI ×2, DSI ×2
콤보 MIPI ×2
네트워크
기가비트 Ethernet + PoE HAT 핀
동일
전원
5 V 입력
5 V 입력(USB-C PD 5 A 지원)
기타
없음
전원 버튼, 팬 커넥터, RTC 배터리

 

5. 설계 시 주의점

  • 기존 CM4용 보드에 CM5를 꽂으면 USB 3.0, 일부 MIPI 포트 동작 불가 가능성 있음
  • USB 3.0·PCIe·HDMI 차동 라인 설계 시 90 Ω 임피던스 매칭
  • GPIO_VREF 설정 필수(1.8 V 또는 3.3 V)
  • 전력 소모 증가 → FAN 추가 장착 등의 발열 대책 필요

 

 

MCU
STM32F103(ST)
IDE
STM32CubeIDE
목표
I2C LCD(SSD1306)를 구동함

 

0. SSD1306

- SSD1306은 단일 칩 CMOS OLED/PLED 드라이버로, 유기/고분자 발광을 위한 컨트롤러

- OLED는 저전력 소비, 높은 대비, 선명한 이미지 품질로 알려져 있어 작은 전자 프로젝트, 웨어러블 기기 및 임베디드 시스템에 이상적

- 다이오드 도트 매트릭스 그래픽 디스플레이 시스템. 128개의 세그먼트와 64개의 공통으로 구성

- SSD 1306에는 256단계 밝기 제어, 디스플레이 RAM 및 오실레이터가 내장

- 일반적으로 다양한 크기로 제공되며, 0.96인치에서부터 더 큰 크기도 있음

- SSD1306 디스플레이를 프로젝트에서 사용하려면 I2C(Inter-Integrated Circuit) 사용하여 통신

 

- SSD1306 Datashet

 

1. STM32CubeIDE - CubeMX

- I2C2 Mode and Configuration : Disable → I2C

- Project - Generate Code


 

2. github에서 library 다운로드

https://github.com/afiskon/stm32-ssd1306

 

GitHub - afiskon/stm32-ssd1306: STM32 library for working with OLEDs based on SSD1306, SH1106, SH1107 and SSD1309, supports I2C

STM32 library for working with OLEDs based on SSD1306, SH1106, SH1107 and SSD1309, supports I2C and SPI - afiskon/stm32-ssd1306

github.com

 

- *.c는 프로젝트 폴더의 Core\Src 폴더 안에 넣음

- *.h는 프로젝트 폴더의 Core\Inc 폴더 안에 넣음

- Build Project 하면 자동으로 Compile 함

- ssd1306.c, ssd1306.h : ssd1306을 사용하기 위한 함수 모음

- ssd1306_fonts.c, ssd1306_fonts.h : 글자를 뿌리기 위한 폰트(크기별)

 

3. STM32CubeIDE - IDE

- main.c의 main() 수정

  /* USER CODE BEGIN 2 */
  ssd1306_Init();
  HAL_Delay(1000);

  ssd1306_SetCursor(0,0);
  ssd1306_WriteString("LINE1", Font_7x10, White);

  ssd1306_SetCursor(0,10);
  ssd1306_WriteString("LINE2", Font_7x10, White);

  ssd1306_SetCursor(0,20);
  ssd1306_WriteString("LINE3", Font_7x10, White);

  ssd1306_SetCursor(0,30);
  ssd1306_WriteString("LINE4", Font_7x10, White);

  ssd1306_SetCursor(0,40);
  ssd1306_WriteString("LINE5", Font_7x10, White);

  ssd1306_SetCursor(0,50);
  ssd1306_WriteString("LINE6", Font_7x10, White);

  ssd1306_UpdateScreen();
  /* USER CODE END 2 */
 

- 실행 결과

 

'ST > STM32F103C8' 카테고리의 다른 글

STM32F103C8 - RAM 48KB + bonus?  (0) 2025.08.08
STM32F103C8 - LL driver + ADC + DMA  (0) 2025.08.08
STM32F103C8 - 1cycle Time  (0) 2025.08.08
STM32F103C8 - I2C HAL driver 오류  (0) 2025.08.08
STM32F103C8 - ADC(DMA interrupt)  (1) 2025.08.08

 

STM32F103xx family의 Flash와 RAM 용량은 다음과 같다.

STM32F103VC datasheet 중

Flash 256KB, RAM 48KB인 STM32F103VCT6을 사용하는데 RAM이 48KB보다 큰것 같다???

 

이런건 참을수 없지! 바로 확인해 보자.

 

1. STM32F103VC_FLASH.ld 수정

_estack = 0x2000C000 → 0x2000CFFF

(C000 = 48KB를 넘어가는 임의의 값 CFFF로 설정)

 

_Min_Stack_Size = 0x400 → 0x9500

(stack 첫 주소가 48KB를 넘어가는 값으로 임의 설정. Descending Satck이라 스택 포인터가 맨 처음에 최상위 어드레스를 지정하고 낮은곳으로 자람)

/* Entry Point */
ENTRY(Reset_Handler)

/* Highest address of the user mode stack */
_estack = 0x2000CFFF;    /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200;      /* required amount of heap  */
_Min_Stack_Size = 0x9500; /* required amount of stack */

/* Specify the memory areas */
MEMORY
{
RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 48K
FLASH (rx)      : ORIGIN = 0x8000000, LENGTH = 256K
}
 

 

2. 컴파일 후에 map 파일을 열어서 stack이 48KB, 0x2000C000을 넘어갔는지 확인한다.

._user_heap_stack
                0x20002cf4     0x9700 load address 0x080114a0
                0x20002cf4                . = ALIGN (0x4)
                0x20002cf4                PROVIDE (end, .)
                [!provide]                PROVIDE (_end, .)
                0x20002ef4                . = (. + _Min_Heap_Size)
 *fill*         0x20002cf4      0x200 
                0x2000c3f4                . = (. + _Min_Stack_Size)
 *fill*         0x20002ef4     0x9500 
                0x2000c3f4                . = ALIGN (0x4)
 

실행 결과 아주 잘 돌아간다.

 

- 같은 계열은 전부 동일한 RAM size로 제작 했을것으로 생각된다. 넉넉한 인심!

(혹시 Flash도 크게 넣어 줬을까?)

(하지만 이런거 필요 없어요, shortage나 좀 해결해줘요)

- ST MCU shortage로 GigaDevice 복제품 테스트시 실행 되지 않는다. RAM 48KB

 

'ST > STM32F103C8' 카테고리의 다른 글

STM32F103C8 - I2C LCD(SSD1306)  (0) 2025.08.08
STM32F103C8 - LL driver + ADC + DMA  (0) 2025.08.08
STM32F103C8 - 1cycle Time  (0) 2025.08.08
STM32F103C8 - I2C HAL driver 오류  (0) 2025.08.08
STM32F103C8 - ADC(DMA interrupt)  (1) 2025.08.08

+ Recent posts