ÀÓº£µðµå °ü·Ã Áú¹® ÀÔ´Ï´Ù(STM32F4)

isaiah   
   Á¶È¸ 3487   Ãßõ 0    

 STM32F411로 128x128 픽셀 짜리 oled를 가지고 놀고 있는데요.


 메모리에 프레임 버퍼를 두고 갱신한 다음 통째로 올리는 식으로 쓰고 있습니다..

 한 프레임 올리고 나서 다시 버퍼를 전부 0으로 갱신하고 다음 프레임을 올리는 식으로요.


 그런데 memset() 이 너무 오래 걸리더라고요...

 그래서 memset() 하는 동안 다른거 라도 하려고 DMA memory to memory 기능으로 수행하도록 만들었습니다.

 이렇게 하면 CPU는 다른 걸 돌릴 수 있으니까요..


 근데 CPU로 memset()을 했을때 12ms 걸리던게... DMA 올려 놓고 완료 될 때까지 걸리는 시간을 재 봤더니 2ms 밖에 안 걸립니다!

 이거 원래 이런 건가요? 

 뭔가 제가 최적화 되지 않은 잘못된 memset() 을 참조하고 있는걸까요??

 큐브mx가 생성한 프로젝트에 아두이노용 그래픽 라이브러리를 땡겨와서 쓰고 있습니다...

ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
theÃ̳ð 2020-05
DMA°¡ ºü¸¥ °Ç ´ç¿¬ÇÑ °ÍÀÔ´Ï´Ù. ±¦È÷ ¸¸µé¾î³õÀº°Ô ¾Æ´ÏÁÒ.
±×¸®°í ¾ÆµÎÀ̳ë¿ë ¶óÀ̺귯¸®´Â ´Ù¸¥ mcu¿¡¼­ Àß ¾Èµ¹¾Æ°¡´Â ¼ö°¡ ¸¹½À´Ï´Ù. ÃÖÀûÈ­°¡ ¸ñÀûÀÌ ¾Æ´Ï°í ¹ü¿ë¼º°ú °£ÆíÇÑ »ç¿ëÀÌ ¸ñÀûÀÔ´Ï´Ù.
     
isaiah 2020-05
¾Æ.. ¿ø·¡ ±×·±°Í ÀÌ¿´¾î¿ä? ±× ¿·¿¡ °ç´Ù¸®·Î ºÙÀº °ÍÀÌ ÁÖµÈ CPU º¸´Ù ´õ ºü¸¦¸®°¡ ¾ø´Ù°í »ý°¢Çߴµ¥..
 ¿ø·¡ ºü¸¥°Ô ´ç¿¬Çß±º¿ä..
ÂùÀÌ 2020-05
³×.. ¿ø·¡ ±×·¸½À´Ï´Ù.
memset ÀÚü°¡ ¿ø·¡ DMA¸¦ ¾²Áö ¾Ê°í CPU¸¦ ÅëÇØ ¸Þ¸ð¸®¸¦ º¹»çÇÕ´Ï´Ù.
DMA´Â °³¹ßÀÚ°¡ Á÷Á¢ ½á¾ß Çϱ⠶§¹®¿¡ Á÷Á¢ ¼¼ÆÃÇØÁÖ¼Å¾ß ÇÕ´Ï´Ù.
     
isaiah 2020-05
¿ø·¡ ±×·¸±º¿ä... À̹ÌÁö·Î´Â CPU°¡ ÇÏ´Â ÀÏÀÌ ´õ È¿À²ÀûÀÌ°í ºü¸¦°Í °°´Ù°í ´À²¸Àú¼­ ÀÌ»óÇÏ°Ô »ý°¢Ç߳׿ä..
ÀÏÀ» »ç¶÷ÀÇ °üÁ¡¿¡¼­ ÀÌÇØÇϸé 0À¸·Î ü¿ì¶ó°í ½ÃÅ°´Â°Ç ¾îµð¼­ ±¸Áö 000000À» º¹»çÇؼ­ °Å±â ºÙ¿© ³Ö´Â°Í º¸´Ù ºü¸£°Ô ¸¸µé ¼ö ÀÖÀ»°Í °°±âµµ ÇÏ°í ±×·¹¼­¿ä..
          
ÂùÀÌ 2020-05
OS°¡ ÀÖ´Â °æ¿ì¶ó¸é ½Ã½ºÅÛ ÀÚ¿øÀ» OS°¡ °ü¸®ÇÏÁö¸¸ ÀÓº£µðµåÀÇ °æ¿ì °³¹ßÀÚ°¡ ¿ÂÀüÈ÷ ÀÚ¿øÀ» °ü¸®ÇØ¾ß Çϱ⠶§¹®¿¡ ±×·¸½À´Ï´Ù.
memset°¡ Àڱ⸾´ë·Î DMA Ch0À» ¾´´Ù°í ÇÏ¸é °³¹ßÀÚ°¡ DMA Ch0À» ½á¾ß ÇÏ´Â °æ¿ì¿¡ ¸ø¾²°Ô µÇ´Â°ÅÁÒ.
±×¸®°í DMA ä³Î¸¶´Ù »ç¿ëÇÒ ¼ö ÀÖ´Â ¸Þ¸ð¸® ¿µ¿ª(Æ丮Æä·²)ÀÌ ´Ù¸£±âµµ Çϱ¸¿ä.

https://m.cafe.naver.com/ca-fe/web/cafes/10750951/articles/311600
Âü°íÇØ º¸¼¼¿ä~
               
isaiah 2020-05
¾Æ ±×°Ç ³³µæÇÏ°í ÀÖ¾ú´Âµ¥¿ä...
 ÀÌ ¸Þ¸ð¸® IO¶ó´Â°Ç CPUÀÇ Ã³¸® ¼º´É¿¡µµ Á÷°áµÇ´Â ¹®Á¦´Ï±î.. CPU ÄÚ¾î ÂÊ¿¡¼­µµ ÃÖ¼±À» ´ÙÇؼ­ °­È­ ÇÒÅ°í
 ±×·³ °á±¹ °à´Ù¸®·Î ºÙÀº ÄÚ ÇÁ·Î¼¼¼­ °Ý ÀåÄ¡ º¸´Ù´Â ¹¬Á÷ÇÑ Äھ ´õ »¡¸® ó¸®ÇÏÁö ¾ÊÀ»±î ÇÏ´Â ±×·± À̹ÌÁö°¡ À־¿ä...

 ½Ç»óÀº ±×³É °°Àº Ŭ·°À¸·Î Á¢±ÙÇÏ´Ï ¿À¹öÇص尡 ÀûÀº Àü¿ë ±¸Á¶°¡ ´õ ºü¸¥°¡ º¸³×¿ä.. ÂÁ...
¹è»ó0¿ø 2020-05
STM32¸¦ ¾Èµé¿©´Ùº¸°í µå¸®´Â ¸»¾¸ÀÔ´Ï´Ù¸¸, ÀϺΠmcu´Â memory channelÀÌ ±«»óÇؼ­ - 16bit channelÀ̶ó 8bit ¾²±â¸¦ 16bit Àаí 8bit maskingÈÄ 16bit ¾²±â·Î buildµÈ´ÙµçÁö¿ä. µþ·Á¿Â ±âº» crt ÄÚµå´Â ¿µ¿ª¿¡ µû¶ó ±â´É/¼º´É ¹®Á¦°¡ ¸ðµÎ À־ º°µµ·Î ±¸ÇöÇØÁÖ¾ú½À´Ï´Ù. Compiler ÃÖÀûÈ­°¡ º°·Î¿©¼­ ±×·¨´ÂÁö ÇÑÁÙ ÇÑÁÙ¿¡ ¼º´ÉÀÌ ÃãÀ» Ãß´õ±º¿ä.
     
isaiah 2020-05
À¸¾Æ... Àú´Â ±×³É Á¦Á¶»ç ¹Ï°í ±×·¯·Á´Ï ÇÏ°í ½á¾ß °Ú³×¿ä...
¹Ø¹Ù´Ú ±îÁö µé¿©´Ù º¸±â´Â ³Ê¹« Çܵé°Ú´Ù ½Í¾î¼­¿ä...


QnA
Á¦¸ñPage 1020/5686
2015-12   1524098   ¹é¸Þ°¡
2014-05   4988102   Á¤ÀºÁØ1
2017-05   3066   ºí·ç¿µ»ó
2023-05   3066   ÇÑÈ¿¼®
2020-03   3066   green1052
2017-07   3066   chotws
2020-11   3066   ²¬±¸
2017-05   3066   NGC
2017-10   3066   Ai20
2017-07   3066   jang
2017-08   3066   ¹èÁؼ®
2020-03   3066   FreeBSD
2023-04   3067   inquisitive
2020-03   3067   ÀüÁø
2022-04   3067   ocarina
2019-05   3067   LINKINPARK
2018-07   3067   2CPUÃÖÁÖÈñ
2021-06   3067   lico98
2021-05   3067   NaHS
2020-09   3067   ÇÁ¶û
2015-08   3067   ¹æoÈ¿o¹®
2019-06   3067   GyuJiiiiiill