안녕하세요 얼마전에 라즈베리 관련하여 질문 올리고 다시 질문드립니다.
현재 라즈베리호환보드(오랜지파이 H3) 에서 무선통신모듈(Zigbee 등)을 사용하여 시제품 개발을 진행중입니다.
지난 번 질문처럼 개발언어로 C++ 을 사용하려는데.. 검색을 하다보니.. C++ 은 C 에 비해 기능이 많고 방대해서 임베디드에는 C 를 더 많이 사용한다는 얘기를 들었습니다.
그래서 갑자기 걱정이 드는데요.. 주된 이유가 임베디드 장치는 경우에 따라 리소스( cpu, ram 등)가 매우 제한적이라 가벼운 C를 사용하는 것 같은데요..
실제로 임베디드 개발에서 C++ 을 사용하는 경우나 경험자분 계시면 대략 어느정도의 차이나 제약이 있는 지 궁금합니다.
특히 boost / stl 등 c++ 라이브러리를 사용하는데 있어서 문제가 없는지 ..
약간 구체적인 질문인데.. 마땅히 올릴 곳이 없어서 여기에 질문드립니다. ^^
감사합니다.~
서버/하드웨어에 관심이 많습니다
HWÁ¦¾î¿¡ °ü½ÉÀÌ ¸¹¾Æ Çкζ§
°ü·Ã C ÇÁ·Î±×·¥¹ÖÀ» ¹è¿ü¾ú´Âµ¥
´À³¦Àº C¸¦ °¡ÀåÇÑ ¾î¼Àºí·¯
¸Þ¸ð¸® ´©¼ö³ª º¸¾È ¹®Á¦¸¦ ÃÖ¼ÒÈÇÏ·Á¸é C++ ÃֽŠ±Ô°Ý°ú ¶óÀ̺귯¸®¸¦ ¾²´Â ÆíÀÌ ÁÁ½À´Ï´Ù.
ÀڱⰡ ÀÚ½ÅÀÖ°Ô ´Ù·ê ¼ö ÀÖ´Â ¾ð¾î·Î Á¦ÀÛÇÏ´Â°Ô ÁÁ¾Æ º¸ÀÔ´Ï´Ù..
Çϵå¿þ¾î¿¡ ÀÇÁ¸ÀûÀÎ °æ¿ì, ÇÁ·Î±×·¥¿¡ µ¿¿µ»óÀ» Àç»ýÇÏ´Â ±â´ÉÀ» ³Ö¾ú´Âµ¥, ÇØ´ç Çϵå¿þ¾î¿¡¼ µ¿¿µ»ó Àç»ý ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù¸é, µ¿¿µ»óÀº Àç»ýÀÌ ¾ÊµÈ´Ù°í ºÁ¾ß °ÚÁÒ...(¿¹Àü ¾ÆÀÌÆùÀ» »ý°¢ÇÏ½Ã¸é µË´Ï´Ù. mpeg4 µðÄÚ´õ¸¸ Çϵå¿þ¾î¿¡ ³Ö¾îµÎ°í, ´Ù¸¥ Çü½ÄÀÇ µ¿¿µ»óÀº Àç»ýÀ» Áö¿øÇÏÁö ¾Ê¾ÒÁö¿ä)
¹°·Ð, Çϵå¿þ¾î°¡ Áö¿øÇÏÁö ¾Ê´õ¶óµµ, ±â´ÉÀº ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸, Çϵå¿þ¾î°¡ Áö¿øÇÏ´Â ±â´ÉÀ» ±¸ÇöÇÒ ¶§ 4ÁÙÀÇ ¸í·É¾î·Î µÇ´Â°ÍÀÌ Áö¿øÇÏÁö ¾Ê´Â Çϵå¿þ¾î¿¡¼´Â 2K~3KÁ¤µµÀÇ ¶óÀÎÀ¸·Î ±¸ÇöµÈ´Ù°í »ý°¢ÇØ º¸¼¼¿ä. È¿À²ÀûÀÌÁö ¾Ê½À´Ï´Ù.(ÄÄÆÄÀÏµÈ ¾î¼À·¹º§¿¡¼ 50ÁÙ°ú 1¹é¸¸ÁÙÀÇ Â÷ÀÌ°¡ ³¯ ¼ö ÀÖ½À´Ï´Ù. ±â´ÉÀºµÇ³ª ´À¸±È®À²ÀÌ »ó´çÈ÷ ³ô½À´Ï´Ù.)
±×¸®°í, ÄÄÆÄÀÏÀÌ Á¤»óÀûÀ¸·Î µÇ°í, Á¤»óÀûÀÎ ½ÇÇàÀÌ µÇ´ÂÁö »ùÇÃÀ» ÄÄÆÄÀÏÇÏ¿© È®ÀÎÇÏ°í, Çϵå¿þ¾îÀÇ ÇѰ輺À» È®ÀÎÇØ º¼ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.
(Ã¥ÀÚ¿¡ µÈ´Ù´Â ±â´ÉÀÌ ½ÇÁ¦·Î ÀÛ¾÷½Ã ¾ÈµÇ´Â °æ¿ì°¡ Çã´ÙÇϸç, Á¦Á¶»ç¿¡ µûÁö´Ùº¸¸é Æß¿þ¾î(¶Ç´Â OS) ¾÷±×·¹À̵å ÈÄ, Áö¿øÇÏÁö ¾Ê´Â´Ù,,, ÀÌ·± ´äº¯µµ ÈçÇÏ°Ô µè°ÔµË´Ï´Ù.)
ÄÄÆÄÀϽð£Àº ´õ·´°Ô ¿À·¡°É¸®°í ÀÇÁ¸¼ºÀ¸·Î ÀÎÇÑ »çÀÌÁî´Â Å©Áö¸¸ ¼º´ÉÀº ±¦Âú½À´Ï´Ù
Â÷ÈÄ¿¡ ¾ç»ê´Ü°è¿¡¼ µðÅ×ÀÏÇÑ Ä¨¼Â µîÀ» ¼±Á¤Çϱâ Àü¿¡ ´Ù½Ã Çѹø È®ÀÎÇØ¾ß ÇÒ µí ÇÕ´Ï´Ù.
°¨»çÇÕ´Ï´Ù.
°°Àº ¼öÁØÀ¸·Î ±¸ÇöÇßÀ» ¶§ OpenGLÀÌ D3Dº¸´Ù ¼º´ÉÀÌ ¶³¾îÁø´Ù´øÁö, ÀüÀÚȸ·Î¸¦ ¸¸µé¶§ 0.1uFÀ» ¾²Áö ¾ÊÀ¸¸é ¹«½ÄÇϴٴµî
¿Ö? ¿Ö ±»ÀÌ ±× ¿ë·®Àΰ¡ ¶ó°í Áú¹®Çϸé Á¦´ë·Î ¼³¸íÇÏ´Â »ç¶÷À» ã±â Èûµç ±×·± ºÎ·ùÀÔ´Ï´Ù.
±×¸®°í STL°ú Àß ÀÛ¼ºµÈ ´Ü¼ø C¸¦ ºñ±³ÇÏ¸é ¿¹¿Ü³ª ¹üÀ§ ±¸ºÐµîÀÌ µé¾î°¡ ÀÖ´Â STLÀÌ ´À¸°°Ç ´ç¿¬ÇÏÁö¸¸ ÀÌ°Ç ¾ð¾îÀÇ Â÷ÀÌ°¡ ¾Æ´Ï¶ó ¾ÈÁ¤¼ºÀ» º¸ÀåÇϱâ À§ÇÑ È®ÀεîÀÌ µé¾î°£ °Í ÀÔ´Ï´Ù. MSÀÇ STL Á¶±Ý¸¸ ¶â¾îº¸¸é ¹Ù·Î È®ÀÎ °¡´ÉÇÑ Ãʺ¸ÀûÀÎ ³»¿ëÀÔ´Ï´Ù.
C++11ÀÌ ±¸½ÄÀÌ µÇ¾î°¡´Â Áö±Ý½ÃÁ¡¿¡¼´Â ¿ÀÈ÷·Á C++¸¸À¸·Î ÀÛ¼ºÇ϶ó, ¶Ç´Â C·Î¸¸ ÀÛ¼ºÇ϶ó´Â ¿ä±¸»çÇ×À» ¸ÂÃâ¼ö ÀÖ´Â ¿£Áö´Ï¾î¸¦ ã±âµµ Èûµé°Ì´Ï´Ù..
´Ù¸¸, STL°ú BOOST´Â Á¶±Ý ¾Ö¸ÅÇÑ°ÍÀÌ.. STLÀÇ ¼º´É´Â C++/C·Î °¥¸®´Â°ÍÀÌ ¾Æ´Ï¶ó ÄÄÆÄÀÏ·¯¿Í ±× ·±Å¸ÀÓÀ» Á¦°øÇÏ´Â ÂÊÀÇ ´É·Â¿¡ ´Þ·ÁÀÖ°í
BOOST ¿ª½Ã ¾ð¾îÀÇ Â÷ÀÌ°¡ ¾Æ´Ï¶ó ±× ¶óÀ̺귯¸®¸¦ Á¦°øÇÏ´Â ÂÊÀÇ ´É·Â¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù.
ÀνºÆ®·°¼Ç ¼öÁرîÁö º´¸ñ ã¾Æ ºÐ¼®ÇÏ°í ÇÔ¼öÆ÷ÀÎÅÍ¿¡ ¾î¼ÀµîÀ» ÀÚÀ¯·Ó°Ô ¾²¸é¼ Ÿ°Ù ½Ã½ºÅÛ¿¡ ¸ÂÃç ÃÖÀûȸ¦ ÇÒ ¼ö ÀÖ´Â ¼öÁØÀÇ °í¼ö°¡ ÇÏ´Â ¸»ÀÌ ¾Æ´Ï¶ó¸é
´õÇؼ, ÁÖ ¸ñÀûÀÌ ÃÖÀûÈ°¡ ¾Æ´Ï¶ó ±¸Çö ÀÚü¶ó¸é, ±»ÀÌ ±Í ±â¿ï¿© µéÀ» ÇÊ¿ä´Â ¾øÀ»°Í °°½À´Ï´Ù.
¸¶Áö¸·À¸·Î, ½Ã½ºÅÛÀ» ¿ÏÀüÈ÷ ÆľÇÇÏ°í ÀÖ´Â °æ¿ì¶ó¸é C°Ç C++ÀÌ°Ç Ç¥ÁØÀ¸·Î Àß ÀÛ¼ºÇÑ°ÍÀÌ STLµîÀ¸·Î ¸¸µç°Í º¸´Ù ¼º´ÉÀº ÁÁ½À´Ï´Ù. ÀÓº£µðµå¶ó¸é ±× Â÷ÀÌ´Â ´õ Å®´Ï´Ù.
STLµî, ¼ÒÀ§ ¶óÀ̺귯¸®´Â ÀϹÝÀûÀÎ °æ¿ìµé¿¡ ´ëÇØ °ËÅäÇÏ´Â ·çƾµîÀÌ µé¾î°¡ ÀÖÁö¸¸, Á¤È®È÷ °í·ÁµÇ¾î ¿¹¿Ü ÆǺ°À» »èÁ¦ °¡´ÉÇÏ´Ù¸é ±× ÆǺ°¿¡ °É¸®´Â ½Ã°£¸¸Å ¸®¼Ò½º¸¦ Àý¾àÇÒ¼ö ÀÖ´Â°Ç ´ç¿¬ÇÕ´Ï´Ù.
C/C++ ÀÇ Â÷ÀÌ´Â °ÅÀÇ ¾ø´Ù°í ºÁµµ ¹«¹æÇϱº¿ä.. ÄÄÆÄÀÏ·¯³ª ·±Å¸ÀÓÀº ¾ÆÁ÷ Ÿ°Ùº¸µå ½ºÆåÀÌ È®Á¤ÀÌ µÇÁö ¾ÊÀº »óŶó.. ¿ì¼±Àº ½ÃÁßÀÇ arm7 ±â¹Ý º¸µå·Î °³¹ßÀ» ÁøÇàÁßÀÔ´Ï´Ù.
³ªÁß¿¡ ºñ¿ë¹®Á¦¸¸ ¹ß»ýÇÏÁö ¾ÊÀ¸¸é ºñ½ÁÇÑ »ç¾çÀ¸·Î °áÁ¤³¯ µí Çѵ¥¿ä.. ¾ÆÁ÷Àº °ÅÀÇ ½ÇÇèÀûÀÎ ´Ü°è¶ó¼..
´Ù½Ã Çѹø ´äº¯ °¨»çµå¸³´Ï´Ù~