embeded/Cortex-M4 STM2026. 2. 6. 11:15

ART ON/OFF가 보이는데 정작 끄는법이나 켜는 법 혹은 클럭 트리에서 설정법이 안보여서 찾는데..

G4는 아닌 F4 쪽에서는 아래의 명령을 이용해서 켜고 끈다고 한다.

FLASH->ACR = FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;

[링크 : https://community.st.com/t5/stm32-mcus-products/enable-disable-art-accelerator/td-p/551007]

 

 

[링크 : https://www.st.com/resource/en/product_training/STM32G4-Memory-Flash_FLASH.pdf]

 

3.1 Firmware tips and tricks
3.1.1 Common firmware configuration
ART configuration
The ART Accelerator™ is a memory accelerator which is optimized for STM32 ARM® Cortex™-Mx processors. It balances the inherent performance advantage of the ARM Cortex-Mx over Flash memory technologies, which normally requires the processor to wait for the Flash memory at higher operating frequencies. Thanks to the ART Accelerator™, the CPU can operate up to 120 MHz without wait states, thereby increasing the overall system speed and efficiency.
To release the full processor 150 DMIPS performance at this frequency, the accelerator implements an instruction prefetch queue and instruction/data, which enables program execution from Flash memory at up to 120 MHz without wait states.

To avoid extra power consumption it is recommended to configure the ART as follows:
/* Disable prefetch buffer */
 FLASH->ACR & = ~FLASH_ACR_PRFTEN;
/* Enable flash instruction cache */
 FLASH->ACR |= FLASH_ACR_ICEN;
/* Enable flash data cache */
 FLASH->ACR |= FLASH_ACR_DCEN;

The system performance can be adjusted to the current needs. This can be done either from start, according to performance estimations, or on-the-fly on a running system to adjust the performance to the current condition. In this way the prefetch can be enabled or disabled on-the-fly depending on user needs.
Disabling the prefetch buffer avoids extra Flash access that consumes 20 mA for 128-bit line fetching.

[링크 : https://www.st.com/resource/en/application_note/dm00033348.pdf]

 

I read in that document: STMicroelectronics: AN3430 - Application Note of How to achieve the lowest current consumption with STM32F2xx

On page 17 (3.1.1) they say that enabling the buffer prefetch will consume additional 20mA (for 128-bit-line fetching). Maybe at 168 MHz you power supply gets unstable?? Maybe you can try it with lower clock speed (120MHz), where the cpu is very power efficient.

[링크 : https://stackoverflow.com/questions/11358547/how-to-enable-art-accelerator-stm32f407vgt6]

 

그래서 프로젝트에서 검색해보니 이렇게 걸려 나오는데

HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError)
HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit)

__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_OB_DBankConfig(uint32_t DBankConfig)

HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)

 

ICEN은 Program 쪽에서는 빠진다. 아무래도 데이터 쪽이라 그런가?

HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError)
HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit)

__RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_OB_DBankConfig(uint32_t DBankConfig)

'embeded > Cortex-M4 STM' 카테고리의 다른 글

stm32_programmer_cli 를 이용한 option byte 변경  (0) 2026.03.19
NUCLEO-WL55JC  (0) 2026.03.17
stm32g473 flash doubleword  (0) 2026.02.04
STM32G47x dual bank flash  (0) 2026.02.03
STM32F429I-DISC1 with lvgl  (0) 2026.02.03
Posted by 구차니
embeded/ARM2026. 2. 6. 07:43

ARM의 NPU IP

[링크 : https://www.thelec.kr/news/articleView.html?idxno=51835]

 

[링크 : https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u85]

 

이걸 직접 채택한데는 르네사스 외에는 딱히 언급이 안되는 느낌.

그 와중에 구형이다. 신형은 없나..

RA8P1
1GHz Arm Cortex-M85 and Ethos-U55 NPU Based AI Microcontroller

[링크 : https://www.renesas.com/en/products/ra8p1?utm_campaign=mcu_ra8p1-empr&utm_source=businesswire&utm_medium=pr&utm_creative=link&utm_content=pp&utm_term=&utm_type=feat]

[링크 : https://www.edge-ai-vision.com/2025/07/renesas-sets-new-mcu-performance-bar-with-1-ghz-ra8p1-devices-with-ai-acceleration/]

 

M85 계열이면 얘를 탑재했을지도?

 Ethos-U85와 최신의 마이크로컴퓨터용 프로세서 코어 「Cortex-M85」등을 조합한 「Arm Corstone-320」도 발표

[링크 : https://coolenjoy.net/bbs/38/5519658]

 

조금 더 찾아보니 MCU은 아니고 SoC 계열로 i.mx93에 ethos-u65 탑재, i.mx93은 cortex-a55 * 2 + cortex-m33 조합이다.

[링크 : https://www.nxp.com/docs/en/application-note/AN13854.pdf]

'embeded > ARM' 카테고리의 다른 글

mbed studio with 32f469idiscovery  (0) 2026.02.21
mbed studio / cli  (0) 2026.02.20
SVE(Scalable Vector Extension)  (0) 2025.08.28
emmc 파티션 정렬  (0) 2024.02.07
arm asm rev  (0) 2023.09.14
Posted by 구차니
embeded/esp322026. 2. 5. 09:59

윈도우용 인스톨러 보려는데 5.x 만 지원하고, 6.x 를 쓰려면 다른 gui 인스톨러 써보라고 한다. -_-

[링크 : https://dl.espressif.com/dl/esp-idf/?idf=4.3]

 

내가 필요로 하는건 4.3인데 vscode 에서 깔아 보라고 한다. 흐음..

[링크 : https://e8ch.tistory.com/21]

 

5.x 아니면 윈도우는 포기하는게 나을지도?

'embeded > esp32' 카테고리의 다른 글

idf.py help  (0) 2026.02.10
idf 프로젝트 생성하기  (0) 2026.02.08
esp32 와 ili9341 direction  (0) 2026.01.23
esp32-wroom-32 보드 / arduino 개발툴  (0) 2026.01.23
esp32-2432S028 데모 빌드  (0) 2026.01.21
Posted by 구차니
파일방2026. 2. 4. 21:57

어짜다 우연히(?)

EXAONE-3.5-7.8B-Instruct-AWQ

라는 키워드로 검색.

 

Quickstart
We recommend to use transformers>=4.43 and autoawq>=0.2.7.post3.

Here is the code snippet to run conversational inference with the model:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "LGAI-EXAONE/EXAONE-3.5-7.8B-Instruct-AWQ"

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.bfloat16,
    trust_remote_code=True,
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Choose your prompt
prompt = "Explain how wonderful you are"  # English example
prompt = "스스로를 자랑해 봐"       # Korean example

messages = [
    {"role": "system", 
     "content": "You are EXAONE model from LG AI Research, a helpful assistant."},
    {"role": "user", "content": prompt}
]
input_ids = tokenizer.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_tensors="pt"
)

output = model.generate(
    input_ids.to("cuda"),
    eos_token_id=tokenizer.eos_token_id,
    max_new_tokens=128,
    do_sample=False,
)
print(tokenizer.decode(output[0]))

[링크 : https://huggingface.co/LGAI-EXAONE/EXAONE-3.5-7.8B-Instruct-AWQ]

[링크 : https://github.com/LG-AI-EXAONE/EXAONE-3.5]

[링크 : https://www.lgresearch.ai/blog/view?seq=506]

[링크 : https://wikidocs.net/274703]

'파일방' 카테고리의 다른 글

usb device tree viewer  (0) 2026.02.22
podman  (0) 2026.01.25
elinks  (0) 2026.01.20
platformio  (0) 2026.01.17
directFB2  (0) 2026.01.09
Posted by 구차니
embeded/Cortex-M4 STM2026. 2. 4. 17:12

일단 코드 상으로는 FAST는 안 먹어서 찾아봐야겠고, doubleword 로만 써진다.

 

일단은 DBANK는 체크되어 있는게 기본값이고

 

bank1에 0802000에 쓰니 쓰여지긴 한데 64bit wide라서 의도한대로 딱딱 붙어있지 않고 4byte씩 띄엄띄엄 써진다.

 

해당 페이지 삭제하려고 했는데 0x0802 0000이 아닌 0x0804 0000 이고

체크하고 삭제하면 삭제되었다고 메시지는 뜨지만

 

정작 해당 위치를 다시 가면 내용이 남아있다.

그 와중에 0x0804 0000 위치로 가면 비어있는걸로 나온다.

 

먼가 이상한데.. 머가 이상한거라고 딱찝어 말하기 힘드네..

 

CubeProgrammer를 버전업해봐야하나? 2.21 버전이 최신이었던것 같은데..

 

2.21.0 흐음... 

[링크 : https://www.st.com/en/development-tools/stm32cubeprog.html]

 

+

웃긴게 sdk 문제인지

bank 2에 page 0 대신

bank 1 에 page 64로 하면 잘된다. 머냐?

'embeded > Cortex-M4 STM' 카테고리의 다른 글

NUCLEO-WL55JC  (0) 2026.03.17
stm32g473 ART accelerator on/off ?  (0) 2026.02.06
STM32G47x dual bank flash  (0) 2026.02.03
STM32F429I-DISC1 with lvgl  (0) 2026.02.03
32F469IDISCOVERY with lvgl  (0) 2026.02.02
Posted by 구차니
프로그램 사용/VNC2026. 2. 4. 12:06

자꾸 접속했다가 팅겨서 머가 문제인가 하고 보는데

먼가.. 무시무시한 오류가 난다?

$ sudo dmesg -w
[ 4951.341720] traps: RemmRDP:[38815] general protection fault ip:76a9265d58cb sp:76a8fabf3490 error:0 in libwinpr2.so.2.6.1[76a9265b1000+6f000]
[ 5112.540997] RemmRDP:[41287]: segfault at fffffffffffffff7 ip 000073aa12ca5795 sp 000073a9c6ff14a0 error 5 in libc.so.6[73aa12c28000+195000] likely on CPU 1 (core 1, socket 0)
[ 5112.541014] Code: 85 ed 0f 85 05 02 00 00 48 83 c4 28 4c 89 e7 5b 5d 41 5c 41 5d 41 5e 41 5f e9 17 f9 ff ff 0f 1f 80 00 00 00 00 48 85 ed 74 de <48> 8b 45 f8 4c 8d 6d f0 31 db 49 89 c7 49 83 e7 f8 a8 02 75 43 48

 

GPT 에게 물어보니 GPF(general protection fault) 라고 해서 segmentation fault  상위 에러라고 하는데.. 머지?

[링크 : https://en.wikipedia.org/wiki/General_protection_fault]

 

실험적으로는 자동 (32bpp) 대신 GFX RFX가 아닌 설정을 따라가면 된다(트루컬러나 하이컬러, 256색상 등)

다만 GFX RFX 로 하면 죽는건 마찬가지인데, GFX RFX가 멀까?

 

+

RemoteFX, H.264/AVC444, and GFX

[링크 : https://learn.microsoft.com/en-us/answers/questions/2278962/is-it-possible-to-use-gfxredir-extension-for-rdp-s]

 

Microsoft RemoteFX is a Microsoft brand name that covers a set of technologies that enhance visual experience of the Microsoft-developed remote display protocol Remote Desktop Protocol (RDP).[1] RemoteFX was first introduced in Windows Server 2008 R2 SP1 and is based on intellectual property that Microsoft acquired and continued to develop since acquiring Calista Technologies.[2] It is a part of the overall Remote Desktop Services workload.

[링크 : https://en.wikipedia.org/wiki/RemoteFX]

 

읭.. 그냥 graphics를 GFX로 표기했을 뿐?

GFX pl (plural only)
  1. (computing, informal) Abbreviation of graphics.

[링크 : https://en.wiktionary.org/wiki/GFX]

 

이번에 발표된 RemoteFX라는 기술은 서버쪽의 GPU (Graphic Processing Unit)을 이용하여 그래픽 관련 연산을 수행해서 클라이언트에도 동영상등의 서비스도 제공한다는 겁니다.
"쉽게 말해서, 가상 데스크탑환경에서도 동영상 안끊기고 본다."

[링크 : https://bcho.tistory.com/472]

 

RemoteFX vGPU는 단일 물리적 GPU를 여러 가상 머신 간에 공유할 수 있는 그래픽 가상화 기술입니다.

[링크 : https://blackcon.tistory.com/358]

 

RemoteFX는 화면을 캡쳐하고 스트리밍을 할 때, GPU를 이용한 하드웨어 가속을 지원하고, 미디어 스트리밍을 위하여 H.264를 지원하여 적은 트래픽으로도 고품질로 스트리밍이 가능하도록 지원하는 소프트웨어입니다.RemoteFX를 활성화하면, 네트워크가 느린 곳에서도 GPU를 이용한 하드웨어 가속H.264를 통하여 조금 더 깨끗하고 끊김없는 화면을 제공받을 수 있습니다.

[링크 : https://hbesthee.tistory.com/1831]

 

RemoteFX vGPU를 사용하면 여러 가상 머신이 실제 GPU를 공유할 수 있습니다. 이 기능은 Windows 7에 도입되어 Windows Server 2019의 사용자에 대한 옵션으로 제거되었습니다.  이제 RemoteFX vGPU의 현재 구현이 보안 취약성에 취약한 것으로 나타납니다(CVE세부 정보의 FAQ 섹션 참조). 새로 식별된 이러한 취약성은 아키텍처로, 기능은 이미 최신 버전의 Windows에서 제거되어 있기 때문에 2021년 4월 13일 Windows 보안 업데이트 및 모든 Windows 업데이트에는 RemoteFX vGPU 기능이 더 이상 포함되지 않습니다

[링크 : https://support.microsoft.com/ko-kr/topic/kb4570006-windows에서-remotefx-vgpu-구성-요소를-사용하지-않도록-설정하고-제거하기-위한-업데이트-bbdf1531-7188-2bf4-0de6-641de79f09d2]

'프로그램 사용 > VNC' 카테고리의 다른 글

libvncserver without password  (0) 2022.11.08
libvncserver 기본 인자  (0) 2022.11.04
libvncserver 종료 절차  (0) 2022.11.01
libvncserver 로그인  (0) 2022.09.26
libvncserver 접속 끊어짐 문제  (0) 2022.08.16
Posted by 구차니
프로그램 사용/lvgl2026. 2. 3. 23:50

 

요건 도움말을 보던가 문서를 봐야 알 듯.

아무튼 이미지를 추가하고 어떻게 하는것 같은데 감이 올 듯 안 올 듯.. 한다

 

 

[링크 : https://docs.squareline.io/docs/dev_env/animation/]

'프로그램 사용 > lvgl' 카테고리의 다른 글

squareline studio 보드설정  (0) 2026.02.10
lvgl simulator  (0) 2026.02.10
squareline studio / 화면전환  (0) 2026.02.03
nxp gui guider for lvgl  (0) 2026.02.03
lvgl perf mon  (0) 2026.02.03
Posted by 구차니
프로그램 사용/lvgl2026. 2. 3. 23:24

보이는 하나의 디자인을 screen 으로 부르고

스크린간 전환은 

trigger - clicked

action - change screen 으로 하여 구현이 된다.

그래서 메인화면에서 톱니바퀴를 누르면 설정으로 fade on 하여 가게 되는데

 

새로운 이벤트 목록은 아래와 같다.

일단 위의 경우 사용된건 change screen 인데

그 외에는 set opacity나 play animation 정도가 눈에 띈다.

 

fade on 대신 move left / move right 하고

duration 100 msec에서 1000 msec 으로 해주면 좀 슬라이드 되는 느낌이 들게 움직인다.

아래는 move left 전환효과를 순간 캡쳐 한 것.

 

 

---

스크린 변경이 아니라 일부 그룹에 대한 show / hide로 구현된 경우도 있는데

우측 하단의 3개를 누르면 속도는 뜨면서 내용이 변한다.

 

 

아무튼 설정을 보면

action - play 에서 group driving을 딜레이 없이 animation on 을 한다는데,

initial action 에 on으로 정의 된 건 없어서 모르겠다. on/off 의 on 같기도 한데?

 

그리고 BTN BG1 ADD / BTN BG2/3 REMOVE로

선택되었다는 밝은 주황색 배경을 on/off 해준다.

 

 

 

 

 

'프로그램 사용 > lvgl' 카테고리의 다른 글

lvgl simulator  (0) 2026.02.10
squareline studio / 애니메이션  (0) 2026.02.03
nxp gui guider for lvgl  (0) 2026.02.03
lvgl perf mon  (0) 2026.02.03
ebike demo ui 구조 분석 - 속도 슬라이더 및 텍스트  (0) 2026.02.02
Posted by 구차니
embeded/Cortex-M7 STM2026. 2. 3. 18:19

페이지라고 해야하나.. 아무튼 섹터별로 용량이 균등하지 않은 녀석도 있다.

 

그리고 듀얼 뱅크와 싱글 뱅크의 경우 일종의 raid 0 처럼 분할해서 striping 되어 저장된다.

[링크 : https://www.st.com/resource/en/application_note/an4826-stm32f7-series-flash-memory-dual-bank-mode-stmicroelectronics.pdf]

'embeded > Cortex-M7 STM' 카테고리의 다른 글

stm32h757 링커 스크립트  (0) 2026.03.13
stm32h757 메모리(SRAM) 구조  (0) 2026.03.13
stm32f746g-disco with semtech sx1276 and lvgl  (0) 2026.02.03
modbus rtu coil read  (0) 2024.10.10
stm32 __weak  (0) 2024.10.08
Posted by 구차니
embeded/Cortex-M4 STM2026. 2. 3. 17:58

플래시가 연속된 주소가 아니게 보인다.

63번 0x0801 F800

64번 0x0804 0000 신기하네..

 

Option Byte 에는 BFB2 / DBANK 등이 처음보는 녀석이고..

 

내용은 좀 더 봐야 할 듯.

ART/MIF 를 통해서 NVM Bank 1 / 2에 접근하는거라면.. ART를 그럼 사실상 강제하게 되는건가?

 

서로 다른 채널에 read / write 를 동시에 할 수 있다가 dual bank 의 장점인가?

The dual bank memory can be configured and used as a single large NVM block with continuous addressing (with few exceptions, not covered in this document). There are significant advantages when the NVM is configured to serve as two parallel blocks, the most important is the possibility to write on one bank without interrupting reading (and fetching instructions) from the other bank. This is the most important prerequisite to perform the updates without breaking the execution of the code from the program NVM.

[링크 : https://www.st.com/resource/en/application_note/an4767-onthefly-firmware-update-for-dual-bank-stm32-microcontrollers-stmicroelectronics.pdf]

 

Option byte의 DBANK 설정에 따라서

뱅크를 1개 쓰냐 2개 쓰냐인데

0으로 하면 싱글 뱅크, 4 Kbyte Page * 128 이 되고

1으로 하면 듀얼 뱅크, 2 Kbyte Page * 128 * 2가 되는건가?

 

ART를 켜면 올라가는걸 보면 일단 높은 수치가 성능이 좋은거 같은데,

ART OFF 에서 Single Bank가 성능이 더 좋은다고 보면되나?

[링크 : https://www.st.com/resource/en/product_training/STM32G4-Memory-Flash_FLASH.pdf]

 

+

2026.02.04

심심해서(?) DBANK 풀고

 

내부 플래시 구조를 보니

개별 페이지(?)당 용량은 2배로 늘고

총 페이지는 절반으로 줄어들었다.

'embeded > Cortex-M4 STM' 카테고리의 다른 글

stm32g473 ART accelerator on/off ?  (0) 2026.02.06
stm32g473 flash doubleword  (0) 2026.02.04
STM32F429I-DISC1 with lvgl  (0) 2026.02.03
32F469IDISCOVERY with lvgl  (0) 2026.02.02
UM2195 audio streaming Expansion Package for STM32Cube  (0) 2026.01.05
Posted by 구차니