{"id":37916,"date":"2019-10-31T22:20:31","date_gmt":"2019-10-31T19:20:31","guid":{"rendered":"https:\/\/prohoster.info\/blog\/sip-telefon-na-stm32f7-discovery\/"},"modified":"2019-10-31T22:20:31","modified_gmt":"2019-10-31T19:20:31","slug":"sip-telefon-na-stm32f7-discovery","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","title":{"rendered":"SIP telefon STM32F7-Discovery-n.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hell\u00f3 mindenkinek.<\/p>\n<p>N\u00e9h\u00e1ny id\u0151vel ezel\u0151tt <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/259721\">\u00edrt\u00e1k<\/a><\/noindex> arr\u00f3l, hogyan siker\u00fclt egy SIP telefont ind\u00edtani STM32F4-Discovery alaplapon, 1 MB ROM-mal \u00e9s 192 KB RAM-mal, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\">Embox<\/a><\/noindex>. Meg kell eml\u00edteni, hogy az a verzi\u00f3 minim\u00e1lis volt, \u00e9s k\u00f6zvetlen\u00fcl k\u00e9t telefont kapcsolt \u00f6ssze szerver n\u00e9lk\u00fcl, \u00e9s csak egy ir\u00e1ny\u00fa hang\u00e1tvitellel. Ez\u00e9rt \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy egy teljes\u00e9rt\u00e9k\u0171bb telefont ind\u00edtunk, amely azonos\u00edt\u00f3kon kereszt\u00fcl h\u00edv, a hang\u00e1tvitel pedig k\u00e9t ir\u00e1nyban t\u00f6rt\u00e9nik, de m\u00e9gis a lehet\u0151 legkisebb mem\u00f3ria m\u00e9retet szeretn\u00e9nk el\u00e9rni.<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"W6wuEIZJf8o\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/W6wuEIZJf8o\/hqdefault.jpg\" alt=\"Vide\u00f3 lej\u00e1tsz\u00e1sa\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nA telefonhoz az al\u00e1bbi alkalmaz\u00e1st v\u00e1lasztottuk: <i>simple_pjsua<\/i> a PJSIP k\u00f6nyvt\u00e1r keret\u00e9ben. Ez egy minim\u00e1lis alkalmaz\u00e1s, amely k\u00e9pes a szerveren regisztr\u00e1lni, h\u00edv\u00e1sokat fogadni \u00e9s h\u00edvni. Az al\u00e1bbiakban azonnal bemutatom, hogyan lehet ezt elind\u00edtani STM32F7-Discovery-n.<\/p>\n<h3>Hogyan ind\u00edtsuk el<\/h3>\n<p><\/p>\n<ol>\n<li> Konfigur\u00e1ljuk az Embox-ot\n<pre><code class=\"bash\">make confload-platform\/pjsip\/stm32f7cube<\/code><\/pre>\n<\/li>\n<li>A conf\/mods.config f\u00e1jlban be\u00e1ll\u00edtjuk a sz\u00fcks\u00e9ges SIP fi\u00f3kot.\n<pre><code class=\"bash\">\ninclude platform.pjsip.cmd.simple_pjsua_imported(\n    sip_domain=\"server\",\n    sip_user=\"username\",\n    sip_passwd=\"password\")\n<\/code><\/pre>\n<p>\nahol <i>server<\/i> \u2014 ez a SIP szerver (p\u00e9ld\u00e1ul sip.linphone.org), <i>username<\/i> \u00e9s <i>password<\/i> \u2014 a felhaszn\u00e1l\u00f3n\u00e9v \u00e9s a jelsz\u00f3, amely a fi\u00f3khoz tartozik.\n<\/li>\n<li>Az Embox-ot a k\u00f6vetkez\u0151 parancs seg\u00edts\u00e9g\u00e9vel \u00e9p\u00edtj\u00fck: <i>make<\/i>. A t\u00e1bl\u00e1k firmware-j\u00e9r\u0151l van inform\u00e1ci\u00f3nk a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\/wiki\/Running-Embox-on-STM32xxDiscovery\">wiki<\/a><\/noindex> \u00e9s a <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/349034\/\">a Spotify d\u00f6nt\u00e9shozatali m\u00f3dszertan\u00e1r\u00f3l. Egyre t\u00f6bb felhaszn\u00e1l\u00f3 prefer\u00e1lja a zenehallgat\u00e1st mobilon a streaming szolg\u00e1ltat\u00e1sban, de a c\u00e9gn\u00e9l t\u00falnyom\u00f3r\u00e9szt webprogramoz\u00f3k dolgoznak. A Spotify elemezte ezt a helyzetet, \u00e9s \u00fagy d\u00f6nt\u00f6tt, hogy t\u00f6bb mobilfejleszt\u0151t vesz fel, valamint \u00e1tnevezi a webes szakembereket \u00faj ir\u00e1nyba:<\/a><\/noindex>.\n<\/li>\n<li>Ind\u00edtsuk el az Embox konzolj\u00e1ban a \u201csimple_pjsua_imported\u201d parancsot.\n<pre><code class=\"bash\">\n00:00:12.870    pjsua_acc.c  ....A SIP outbound \u00e1llapota a 0. fi\u00f3kn\u00e1l nem akt\u00edv\n00:00:12.884    pjsua_acc.c  ....sip:alexk2222@sip.linphone.org: regisztr\u00e1ci\u00f3 sikeres, \u00e1llapot=200 (Regisztr\u00e1ci\u00f3 siker\n00:00:12.911    pjsua_acc.c  ....Keep-alive id\u0151z\u00edt\u0151 ind\u00edtva a 0. fi\u00f3kn\u00e1l, c\u00e9l: 91.121.209.194:5060, intervallum: 15s\n<\/code><\/pre>\n<p>\n<\/li>\n<li>V\u00e9g\u00fcl csatlakoztatni kell a hangsz\u00f3r\u00f3kat vagy a f\u00fclhallgat\u00f3t a hangkimenethez, \u00e9s besz\u00e9ljek k\u00e9t apr\u00f3 MEMS mikrofonnal a kijelz\u0151 mellett. H\u00edvunk Linuxr\u00f3l a simple_pjsua, pjsua alkalmaz\u00e1son kereszt\u00fcl. Vagy b\u00e1rmilyen m\u00e1s hasonl\u00f3t, mint a linphone.\n<\/li>\n<\/ol>\n<p>\nMindez le van \u00edrva a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\/wiki\/AUDIO-on-STM32\">wiki<\/a><\/noindex>.<\/p>\n<h3>Hogyan jutottunk ide<\/h3>\n<p>\nTeh\u00e1t el\u0151sz\u00f6r felmer\u00fclt a k\u00e9rd\u00e9s, hogy melyik hardverplatformot v\u00e1lasszuk. Mivel vil\u00e1gos volt, hogy az STM32F4-Discovery nem megfelel\u0151 mem\u00f3ri\u00e1ja miatt, az STM32F7-Discovery-t v\u00e1lasztottuk. Ennek 1 MB flash mem\u00f3ri\u00e1ja \u00e9s 256 KB RAM-ja van (+ 64 KB speci\u00e1lis gyors mem\u00f3ria, amit szint\u00e9n haszn\u00e1lni fogunk). Ez sem sok a szerveren kereszt\u00fcli h\u00edv\u00e1sokhoz, de \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy megpr\u00f3b\u00e1lunk elf\u00e9rni.<\/p>\n<p>Felt\u00e9telesen t\u00f6bb szakaszra osztottuk a feladatot:<\/p>\n<ul>\n<li>A PJSIP futtat\u00e1sa QEMU-n. Ez k\u00e9nyelmes volt a hibakeres\u00e9shez, plusz m\u00e1r volt AC97 codec t\u00e1mogat\u00e1sunk ott. <\/li>\n<li>A hang r\u00f6gz\u00edt\u00e9se \u00e9s lej\u00e1tsz\u00e1sa QEMU-n \u00e9s STM32-n. <\/li>\n<li> Az alkalmaz\u00e1s port\u00e1l\u00e1sa <i>simple_pjsua<\/i> a PJSIP keret\u00e9ben. Ez lehet\u0151v\u00e9 teszi a SIP szerveren val\u00f3 regisztr\u00e1l\u00e1st \u00e9s a h\u00edv\u00e1st. <\/li>\n<li>A saj\u00e1t Asterisk alap\u00fa szerver\u00fcnk telep\u00edt\u00e9se \u00e9s tesztel\u00e9se rajta, majd k\u00fcls\u0151 szerverek, mint a sip.linphone.org kipr\u00f3b\u00e1l\u00e1sa. <\/li>\n<\/ul>\n<p>\nA hangz\u00e1s az Embox-ban a Portaudio-n kereszt\u00fcl m\u0171k\u00f6dik, amelyet a PISIP is haszn\u00e1l. A QEMU-n\u00e1l jelentkeztek az els\u0151 probl\u00e9m\u00e1k \u2013 a 44100 Hz-es WAV f\u00e1jlok j\u00f3l lej\u00e1tsz\u00f3dtak, de 8000 Hz-en valami nyilv\u00e1nval\u00f3an nem m\u0171k\u00f6d\u00f6tt. Kider\u00fclt, hogy a probl\u00e9ma a frekvencia be\u00e1ll\u00edt\u00e1s\u00e1ban volt \u2013 alap\u00e9rtelmez\u00e9s szerint a hardver 44100 Hz-re volt konfigur\u00e1lva, \u00e9s ezt szoftveresen nem v\u00e1ltoztattuk meg. <\/p>\n<p>Itt tal\u00e1n \u00e9rdemes egy kicsit tiszt\u00e1zni, hogyan t\u00f6rt\u00e9nik val\u00f3j\u00e1ban a hang lej\u00e1tsz\u00e1sa. A hangk\u00e1rty\u00e1nak meg lehet adni egy mutat\u00f3t egy mem\u00f3ria ter\u00fcletre, ahonnan le kell j\u00e1tszani vagy amelyre r\u00f6gz\u00edteni kell egy el\u0151re be\u00e1ll\u00edtott frekvenci\u00e1n. Miut\u00e1n a puffer elfogyott, megszak\u00edt\u00e1s keletkezik, \u00e9s a v\u00e9grehajt\u00e1s a k\u00f6vetkez\u0151 pufferr\u0151l folytat\u00f3dik. A probl\u00e9ma az, hogy ezeket a puffereket el\u0151re kell t\u00f6lteni, m\u00edg az el\u0151z\u0151 lej\u00e1tsz\u00e1s alatt vannak. Ezzel a probl\u00e9m\u00e1val m\u00e9g tal\u00e1lkozunk a STM32F7-n\u00e9l. <\/p>\n<p>Ezut\u00e1n b\u00e9relt\u00fcnk egy szervert, \u00e9s telep\u00edtett\u00fck r\u00e1 az Asterisk-t. Mivel sok mindent kellett debuggolni, \u00e9s sokat besz\u00e9lni a mikrofonn\u00e1l nem akartunk, sz\u00fcks\u00e9g volt automatikus lej\u00e1tsz\u00e1sra \u00e9s r\u00f6gz\u00edt\u00e9sre. Ehhez a simple_pjsua-t \u00fagy m\u00f3dos\u00edtottuk, hogy f\u00e1jlokat lehessen \u00e1tkonfigur\u00e1lni a hangk\u00e9sz\u00fcl\u00e9kek helyett. A PJSIP eset\u00e9ben ez viszonylag egyszer\u0171en megoldhat\u00f3, mivel van elv\u00fck, hogy a port lehet ak\u00e1r egy eszk\u00f6z, ak\u00e1r egy f\u00e1jl. Ezeket a portokat rugalmasan csatlakoztathatjuk m\u00e1s portokhoz. A k\u00f3dot meg lehet n\u00e9zni a pjsip-n\u00e9l. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/pjsip\">t\u00e1rhelyen<\/a><\/noindex>. A v\u00e9gs\u0151 fel\u00e1ll\u00e1s a k\u00f6vetkez\u0151 volt. Az Asterisk szerveren k\u00e9t fi\u00f3kot hoztam l\u00e9tre \u2013 egyet Linux sz\u00e1m\u00e1ra \u00e9s egyet az Embox sz\u00e1m\u00e1ra. Ezut\u00e1n az Embox-on a k\u00f6vetkez\u0151 parancsot hajtjuk v\u00e9gre: <i>simple_pjsua_imported<\/i>, az Embox regisztr\u00e1l a szerveren, majd Linuxr\u00f3l h\u00edvunk az Embox-ra. A kapcsolat kezdet\u00e9n ellen\u0151rizz\u00fck az Asterisk szerveren, hogy minden kapcsolat l\u00e9trej\u00f6tt-e, \u00e9s egy id\u0151 ut\u00e1n hallanunk kell az Embox-on a Linuxb\u00f3l \u00e9rkez\u0151 hangot, mik\u00f6zben a Linuxon elmentj\u00fck azt a f\u00e1jlt, amely az Embox-b\u00f3l j\u00e1tsz\u00f3dik.<\/p>\n<p>Miut\u00e1n ez m\u0171k\u00f6d\u00f6tt a QEMU-n, \u00e1t\u00e1lltunk a STM32F7-Discovery-ra val\u00f3 portol\u00e1sra. Az els\u0151 probl\u00e9ma az volt, hogy 1 MB ROM-ba nem f\u00e9rt bele a m\u00e9ret miatt a ford\u00edt\u00f3 optimaliz\u00e1l\u00e1s\u00e1nak \"-Os\" bekapcsol\u00e1sa n\u00e9lk\u00fcl. Ez\u00e9rt bekapcsoltuk az \"-Os\"-t. Tov\u00e1bb\u00e1, egy patch-kel letiltottuk a C++ t\u00e1mogat\u00e1st, mivel arra csak a pjsua-nak van sz\u00fcks\u00e9ge, m\u00edg mi a simple_pjsua-t haszn\u00e1ljuk. <\/p>\n<p>Miut\u00e1n siker\u00fclt elhelyezn\u00fcnk <i>simple_pjsua<\/i>, \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy most m\u00e1r van es\u00e9ly a sikeres ind\u00edt\u00e1sra. De el\u0151sz\u00f6r meg kellett \u00e9rten\u00fcnk a hang r\u00f6gz\u00edt\u00e9s\u00e9t \u00e9s lej\u00e1tsz\u00e1s\u00e1t. A k\u00e9rd\u00e9s az volt \u2013 hova r\u00f6gz\u00edts\u00fcnk? A k\u00fcls\u0151 mem\u00f3ri\u00e1t v\u00e1lasztottuk \u2013 SDRAM (128 MB). Ezt ti is kipr\u00f3b\u00e1lhatj\u00e1tok:<\/p>\n<p>Stere\u00f3 WAV l\u00e9trehoz\u00e1sa 16000 Hz-es frekvenci\u00e1val \u00e9s 10 m\u00e1sodperces hosszal:<\/p>\n<pre><code class=\"bash\">\nrecord -r 16000 -c 2 -d 10000 -m C0000000\n<\/code><\/pre>\n<p>\nLej\u00e1tsz\u00e1s:<\/p>\n<pre><code class=\"bash\">\nplay -m C0000000\n<\/code><\/pre>\n<p>\nItt k\u00e9t probl\u00e9ma mer\u00fclt fel. Az els\u0151 a kodekkel - a WM8994-et haszn\u00e1lj\u00e1k, amelynek van egy fogalm\u00e1nak, amely slotokra vonatkozik, \u00e9s ezekb\u0151l n\u00e9gy van. Teh\u00e1t alap\u00e9rtelmezetten, ha ezt nem \u00e1ll\u00edtj\u00e1k be, akkor a playback mind a n\u00e9gy slotban t\u00f6rt\u00e9nik. Ez\u00e9rt 16000 Hz-en 8000 Hz-et kaptunk, m\u00edg 8000 Hz eset\u00e9n a lej\u00e1tsz\u00e1s egyszer\u0171en nem m\u0171k\u00f6d\u00f6tt. Amikor csak a 0 \u00e9s 2-es slotokat v\u00e1lasztottuk ki, akkor \u00fagy m\u0171k\u00f6d\u00f6tt, ahogy kellett. Egy m\u00e1sik probl\u00e9ma az audio interf\u00e9sz volt az STM32Cube-ben, ahol az audio kimenet az SAI (Sorozat Audio Interf\u00e9sz) r\u00e9v\u00e9n szinkronban m\u0171k\u00f6dik az audio bemenettel (nem mer\u00fclt\u00fcnk el a r\u00e9szletekben, de \u00fagy t\u0171nik, hogy k\u00f6z\u00f6s \u00f3ra osztj\u00e1k meg, \u00e9s amikor az audio kimenet inicializ\u00e1l\u00f3dik, valahogy az audio bemenethez kapcsol\u00f3dik). Teh\u00e1t nem lehet \u0151ket k\u00fcl\u00f6n-k\u00fcl\u00f6n elind\u00edtani, ez\u00e9rt a k\u00f6vetkez\u0151ket tett\u00fck - mindig m\u0171k\u00f6dik (bele\u00e9rtve a megszak\u00edt\u00e1sok gener\u00e1l\u00e1s\u00e1t) az audio bemenet \u00e9s az audio kimenet. De amikor a rendszer nem j\u00e1tszik le semmit, akkor egyszer\u0171en egy \u00fcres puffert adunk az audio kimenethez, \u00e9s amikor a lej\u00e1tsz\u00e1s elindul, \u0151szint\u00e9n elkezdj\u00fck felt\u00f6lteni.<\/p>\n<p>Ezut\u00e1n szembes\u00fclt\u00fcnk azzal, hogy a hang a hangfelv\u00e9tel sor\u00e1n nagyon halk volt. Ez az\u00e9rt t\u00f6rt\u00e9nik, mert a MEMS mikrofonok az STM32F7-Discovery-n valahogy rosszul m\u0171k\u00f6dnek 16000 Hz alatti frekvenci\u00e1kon. Teh\u00e1t 16000 Hz-re \u00e1ll\u00edtjuk be, ha m\u00e9g 8000 Hz \u00e9rkezik is. Ehhez viszont sz\u00fcks\u00e9g volt egy frekvencia \u00e1talak\u00edt\u00f3 program hozz\u00e1ad\u00e1s\u00e1ra.<\/p>\n<p>Ezut\u00e1n meg kellett n\u00f6velni a halom m\u00e9ret\u00e9t, amely a RAM-ban tal\u00e1lhat\u00f3. Sz\u00e1m\u00edt\u00e1saink szerint a pjsip k\u00f6r\u00fclbel\u00fcl 190 Kb-ot ig\u00e9nyelt, m\u00edg nek\u00fcnk csak k\u00f6r\u00fclbel\u00fcl 100 Kb maradt. Itt egy kis k\u00fcls\u0151 mem\u00f3ri\u00e1t - SDRAM-ot (k\u00f6r\u00fclbel\u00fcl 128 Kb) kellett ig\u00e9nybe venni.<\/p>\n<p>Mindezek ut\u00e1n l\u00e1ttam az els\u0151 csomagokat a Linux \u00e9s az Embox k\u00f6z\u00f6tt, \u00e9s hallottam a hangot! De a hang borzalmas volt, egy\u00e1ltal\u00e1n nem olyan, mint a QEMU-n\u00e1l, semmit nem lehetett \u00e9rteni. Akkor arra gondoltunk, mi lehet a probl\u00e9ma. A hibakeres\u00e9s bemutatta, hogy az Embox egyszer\u0171en nem tudja bet\u00f6lteni\/kiszedni az audio puffereket. Am\u00edg a pjsip egy keretet dolgoz fel, addig 2 megszak\u00edt\u00e1s t\u00f6rt\u00e9nt a pufferek feldolgoz\u00e1s\u00e1nak befejez\u00e9s\u00e9r\u0151l, ami t\u00fal sok. Az els\u0151 gondolat a gyors\u00edt\u00e1sra a ford\u00edt\u00f3 optimaliz\u00e1l\u00e1sa volt, de ez m\u00e1r be volt kapcsolva a PJSIP-ben. A m\u00e1sodik - hardveres lebeg\u0151pontos, amir\u0151l m\u00e1r besz\u00e9lt\u00fcnk. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/embox\/blog\/418295\">a Spotify d\u00f6nt\u00e9shozatali m\u00f3dszertan\u00e1r\u00f3l. Egyre t\u00f6bb felhaszn\u00e1l\u00f3 prefer\u00e1lja a zenehallgat\u00e1st mobilon a streaming szolg\u00e1ltat\u00e1sban, de a c\u00e9gn\u00e9l t\u00falnyom\u00f3r\u00e9szt webprogramoz\u00f3k dolgoznak. A Spotify elemezte ezt a helyzetet, \u00e9s \u00fagy d\u00f6nt\u00f6tt, hogy t\u00f6bb mobilfejleszt\u0151t vesz fel, valamint \u00e1tnevezi a webes szakembereket \u00faj ir\u00e1nyba:<\/a><\/noindex>. De a gyakorlat azt mutatta, hogy az FPU nem hozott jelent\u0151s sebess\u00e9gn\u00f6veked\u00e9st. A k\u00f6vetkez\u0151 l\u00e9p\u00e9s a sz\u00e1lak priorit\u00e1sainak be\u00e1ll\u00edt\u00e1sa volt. Az Embox-ban k\u00fcl\u00f6nb\u00f6z\u0151 \u00fctemez\u00e9si strat\u00e9gi\u00e1k l\u00e9teznek, \u00e9s \u00e9n aktiv\u00e1ltam azt, amelyik t\u00e1mogatja a priorit\u00e1sokat, \u00e9s a lehet\u0151 legmagasabb priorit\u00e1st adtam az audi\u00f3s sz\u00e1laknak. Ez sem seg\u00edtett.<\/p>\n<p>A k\u00f6vetkez\u0151 \u00f6tlet az volt, hogy k\u00fcls\u0151 mem\u00f3ri\u00e1val dolgozunk, \u00e9s j\u00f3 lenne azokat a strukt\u00far\u00e1kat oda \u00e1thelyezni, amelyekhez rendk\u00edv\u00fcl gyakran f\u00e9r\u00fcnk hozz\u00e1. Elv\u00e9geztem egy el\u0151zetes elemz\u00e9st arr\u00f3l, hogy mikor \u00e9s mire <i>simple_pjsua<\/i> osztj\u00e1k ki a mem\u00f3ri\u00e1t. Kider\u00fclt, hogy a 190 Kb-b\u00f3l az els\u0151 90 Kb-ot a PJSIP bels\u0151 sz\u00fcks\u00e9gleteihez haszn\u00e1lj\u00e1k fel, \u00e9s ezekhez a hozz\u00e1f\u00e9r\u00e9s nem t\u00fal gyakori. Ezut\u00e1n a bej\u00f6v\u0151 h\u00edv\u00e1s sor\u00e1n a pjsua_call_answer f\u00fcggv\u00e9ny h\u00edv\u00f3dik meg, amelyben ezut\u00e1n a bej\u00f6v\u0151 \u00e9s kimen\u0151 keretekkel val\u00f3 munk\u00e1hoz pufferelve ker\u00fclnek az adatok. Ez k\u00f6r\u00fclbel\u00fcl tov\u00e1bbi 100 Kb volt. Ekkor a k\u00f6vetkez\u0151 m\u00f3don j\u00e1rtunk el. A h\u00edv\u00e1s pillanat\u00e1ig az adatokat a k\u00fcls\u0151 mem\u00f3ri\u00e1ban helyezkednek el. Amint ki van v\u00e1lasztva a h\u00edv\u00e1s, azonnal lecser\u00e9lj\u00fck a kupacot egy m\u00e1sikra \u2014 a RAM-ban. \u00cdgy minden \"forr\u00f3\" adat gyorsabb \u00e9s kisz\u00e1m\u00edthat\u00f3bb mem\u00f3ri\u00e1ba ker\u00fclt.<\/p>\n<p>Ennek eredm\u00e9nyek\u00e9nt mindez lehet\u0151v\u00e9 tette, hogy elind\u00edtsuk <i>simple_pjsua<\/i> \u00e9s h\u00edv\u00e1st ind\u00edtsunk a saj\u00e1t szerver\u00fcnk\u00f6n. Azt\u00e1n pedig m\u00e1s szervereken, p\u00e9ld\u00e1ul a sip.linphone.org-on kereszt\u00fcl.<\/p>\n<h3>K\u00f6vetkeztet\u00e9sek<\/h3>\n<p>\nA v\u00e9geredm\u00e9ny egy sikeres elind\u00edt\u00e1s lett <i>simple_pjsua<\/i> a hang \u00e1tvitel\u00e9vel mindk\u00e9t ir\u00e1nyban a szerveren kereszt\u00fcl. A pluszban elhaszn\u00e1l\u00f3dott 128 Kb SDRAM probl\u00e9m\u00e1j\u00e1t egy kicsit er\u0151sebb Cortex-M7 (p\u00e9ld\u00e1ul STM32F769NI 512 Kb RAM-mal) haszn\u00e1lat\u00e1val lehet megoldani, de m\u00e9g mindig nem adtuk fel a lehet\u0151s\u00e9get, hogy bef\u00e9rj\u00fcnk a 256 Kb-ba \ud83d\ude42 \u00d6r\u00fcln\u00e9nk, ha valakit \u00e9rdekelne, \u00e9s m\u00e9g jobb lenne, ha pr\u00f3b\u00e1ln\u00e1 is. Az \u00f6sszes forr\u00e1st, mint mindig, megtal\u00e1lj\u00e1k a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/embox\/embox\">t\u00e1rhelyen<\/a><\/noindex>.<br \/>\n<br \/>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/embox\/blog\/431134\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u043f\u0438\u0441\u0430\u043b\u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c SIP \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 STM32F4-Discovery c 1 \u041c\u0431 ROM \u0438 192 \u041a\u0431 RAM) \u043d\u0430 \u0431\u0430\u0437\u0435 Embox. \u0422\u0443\u0442 \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u0431\u044b\u043b\u0430 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u043b\u0430 \u0434\u0432\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0431\u0435\u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0433\u043e\u043b\u043e\u0441\u0430 \u043b\u0438\u0448\u044c \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37916","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u043f\u0438\u0441\u0430\u043b\u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c SIP \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 STM32F4-Discovery c 1 \u041c\u0431.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47SIP \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 STM32F7-Discovery | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u043f\u0438\u0441\u0430\u043b\u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c SIP \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 STM32F4-Discovery c 1 \u041c\u0431.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:20:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:20:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47SIP telefon STM32F7-Discovery-n | ProHoster","description":"Hell\u00f3 mindenkinek. N\u00e9h\u00e1ny id\u0151vel ezel\u0151tt \u00edrtunk arr\u00f3l, hogyan siker\u00fclt SIP telefont ind\u00edtani STM32F4-Discovery-n 1 Mb-tal.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47SIP \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 STM32F7-Discovery | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u043f\u0438\u0441\u0430\u043b\u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c SIP \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 STM32F4-Discovery c 1 \u041c\u0431.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sip-telefon-na-stm32f7-discovery","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:20:31+00:00","article:modified_time":"2019-10-31T19:20:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37916","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 19:45:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:18:22","updated":"2026-01-23 19:45:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/37916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=37916"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/37916\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=37916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=37916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=37916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}