Waea SIP i runga i te STM32F7-Discovery

Aroha katoa.

I mua ake nei matou i tuhi mo te pehea i whakahaere ai matou ki te whakarewa i tetahi waea SIP i runga i te STM32F4-Discovery me te 1 MB ROM me te 192 KB RAM) i runga Embox. I konei me kii he iti noa tera putanga me te hono tika i nga waea e rua kaore he tūmau me te tuku reo i te huarahi kotahi anake. Na reira, i whakatau matou ki te whakarewa i tetahi waea tino pai me te waea ma te tūmau, te tuku reo ki nga taha e rua, engari i te wa ano kia mau ki roto i te iti rawa te rahi o te mahara.


Mo te waea, i whakatauhia kia whiriwhiria he tono simple_pjsua hei wahanga o te whare pukapuka PJSIP. He tono iti tenei ka taea te rehita i runga i te tūmau, te whiwhi me te whakautu waea. Kei raro iho ka hoatu e ahau he korero mo te whakahaere i runga i te STM32F7-Discovery.

Me pehea te oma

  1. Whirihora Embox
    make confload-platform/pjsip/stm32f7cube
  2. Tautuhia te kaute SIP e hiahiatia ana ki te konae conf/mods.config.
    
    include platform.pjsip.cmd.simple_pjsua_imported(
        sip_domain="server", 
        sip_user="username",
        sip_passwd="password")
    

    te wahi tūmau he tūmau SIP (hei tauira, sip.linphone.org), ingoa kaiwhakamahi и kupuhipa - ingoa kaiwhakamahi me te kupuhipa.

  3. Te whakaemi i te Embox hei roopu hanga. Mo te papa firmware kei a matou wiki Tuhinga o mua Tuhinga.
  4. Whakahaerehia te tono "simple_pjsua_imported" ki te papatohu Embox
    
    00:00:12.870    pjsua_acc.c  ....SIP outbound status for acc 0 is not active
    00:00:12.884    pjsua_acc.c  ....sip:[email protected]: registration success, status=200 (Registration succes
    00:00:12.911    pjsua_acc.c  ....Keep-alive timer started for acc 0, destination:91.121.209.194:5060, interval:15s
    

  5. Ka mutu, ka noho tonu ki te whakauru i nga kaikorero me nga taringa ki roto i te whakaputanga ororongo, ka korero ki roto i nga hopuoro MEMS iti e rua i te taha o te whakaaturanga. Ka karanga matou mai i Linux ma te tono simple_pjsua, pjsua. Ana, ka taea ranei e koe te whakamahi i etahi atu momo linphone.

Ko enei mea katoa ka whakaahuahia i runga i ta maatau wiki.

I pehea matou i tae ai

Na, i te tuatahi ka puta te patai mo te kowhiri i tetahi papaaa taputapu. I te mea kua marama kaore a STM32F4-Discovery e uru mai i te mahara, i tohua ko STM32F7-Discovery. Kei a ia he puku kohiko 1 MB me te 256 KB o te RAM (+ 64 mahara tere motuhake, ka whakamahia ano e matou). Kaore ano hoki i te maha mo nga waea ma te tūmau, engari i whakatau matou ki te ngana ki te whakauru.

Ko te tikanga mo ratou ano, i wehewehea te mahi ki etahi waahanga:

  • Te whakahaere PJSIP i runga QEMU. He watea mo te patuiro, me te mea kua tautokohia e matou te AC97 codec i reira.
  • Te hopu reo me te purei i runga i te QEMU me te STM32.
  • Te kawe tono simple_pjsua mai i te PJSIP. Ka taea e koe te rehita i runga i te tūmau SIP me te waea.
  • Hoatuhia to ake tūmau-a-Asterisk ka whakamatau ki runga, katahi ka whakamatau i nga mea o waho penei i te sip.linphone.org

Ko te tangi i roto i te Embox ka mahi ma Portaudio, ka whakamahia ano hoki i roto i te PISIP. Ko nga raruraru tuatahi i puta i runga i te QEMU - he pai te takaro a WAV i te 44100 Hz, engari i te 8000 he mea marama kua he. I puta mai he take ki te whakarite i te auau - na te taunoa ko te 44100 i roto i nga taputapu, a kaore tenei i whakarereke i te kaupapa.

I konei, pea, he mea tika ki te whakamarama i te ahua o te tangi o te tangi i te nuinga o te waa. Ka taea te tautuhi i te kaari oro ki tetahi tohu ki tetahi waahanga mahara e hiahia ana koe ki te purei, ki te rekoata ranei i te auau kua tohua. I muri i te mutunga o te aukati, ka puta he haukoti ka haere tonu te mahi me te kaitarai e whai ake nei. Ko te mea me whakaki i mua i te wa e whakatangihia ana te mea o mua. Ka pa atu tenei raru ki a STM32F7.

I muri mai, ka riihitia e matou he tūmau ka tukuna he Asterisk ki runga. I te mea he mea tika ki te patuiro i te tini, engari kaore au i pai ki te korero nui ki te hopuoro, me mahi te purei aunoa me te hopu. Hei mahi i tenei, i papaki matou i simple_pjsua kia taea e koe te paheke i nga konae hei utu mo nga taputapu oro. I roto i te PJSIP, he maamaa noa tenei, na te mea kei a raatau te kaupapa o te tauranga, ka taea he taputapu, he konae ranei. A ko enei tauranga ka taea te hono ngawari ki etahi atu tauranga. Ka taea e koe te kite i te waehere i to maatau pjsip whare putunga. Ko te mutunga mai ko te kaupapa e whai ake nei. I runga i te tūmau Asterisk, i timata ahau e rua nga kaute - mo Linux me te Embox. I muri mai, ka mahia te whakahau ki te Embox simple_pjsua_imported, Kua rehitatia a Embox i runga i te tūmau, muri iho ka karangahia e matou a Embox mai i Linux. I te wa o te hononga, ka tirohia e matou i runga i te tūmau Asterisk kua whakapumautia te hononga, a, i muri i etahi wa ka rongo matou i te tangi mai i Linux i Embox, a i roto i te Linux ka tiakina e matou te konae i whakatangihia mai i Embox.

Whai muri i tana mahi i runga i te QEMU, ka neke matou ki te kawe ki te STM32F7-Discovery. Ko te raruraru tuatahi ko te kore e uru ki te 1 MB o ROM me te kore e taea te arotautanga o te kaitoi "-Os" mo te rahi o te ahua. Koinei te take i whakauruhia e matou "-Os". I tua atu, i whakakorehia e te papaki te tautoko mo te C ++, no reira me pjsua anake, ka whakamahi maatau i te simple_pjsua.

Whai muri i te tuunga simple_pjsua, i whakatau inaianei ka whai waahi ki te whakarewa. Engari i te tuatahi me mahi ki te hopu me te purei o te reo. Ko te patai kei hea te tuhi? I whiriwhiria e matou te mahara o waho - SDRAM (128 MB). Ka taea e koe te whakamatautau i a koe ake:

Hangaia he WAV tiwharewha me te auau o 16000 Hz me te roanga o te 10 hēkona:


record -r 16000 -c 2 -d 10000 -m C0000000

Ka ngaro tatou:


play -m C0000000

E rua nga raruraru i konei. Ko te tuatahi me te codec - ka whakamahia te WM8994, a he mea pera ano he mokamoka, a he 4 o enei waahi. . Na reira, i te auau o te 16000 Hz, i whiwhi matou i te 8000 Hz, engari mo te 8000 Hz, kaore i mahi te purei. I te wa i kowhiria nga mokamoka 0 me te 2 anake, ka pai te mahi. Ko tetahi atu raruraru ko te atanga ororongo i roto i te STM32Cube, kei te mahi te whakaputanga oro ma te SAI (Serial Audio Interface) i te wa kotahi me te whakauru oro (kaore au i te marama ki nga korero, engari ka puta mai he karaka noa o raatau me te wa ka kua arawhiti te putanga ororongo, kua piri te oro ki te tomokanga). Arā, kaore e taea e koe te whakahaere wehe, na reira i mahia e matou nga mea e whai ake nei - ka mahi tonu te whakauru oro me te whakaputa oro (tae atu ki nga haukoti ka mahia). Engari ki te kore he mea e purei ana i roto i te punaha, katahi ka kuhu noa i te parapara kau ki roto i te putanga oro, a ka timata te purei, ka tiimata tika taatau ki te whakakii.

I tua atu, i kitea e matou ko te tangi i te wa e hopu ana i te reo he tino ata noho. Ko tenei na te mea kaore e pai te mahi o nga hopuoro MEMS i runga i te STM32F7-Discovery i nga iarere i raro i te 16000 Hz. Na reira, ka whakatauhia e matou te 16000 Hz, ahakoa ka tae mai te 8000 Hz. Hei mahi i tenei, he mea tika ki te taapiri i te huringa rorohiko o tetahi auau ki tetahi atu.

I muri mai, me whakanui ake e ahau te rahi o te puranga, kei roto i te RAM. E ai ki a maatau tatau, he 190 KB pea te hiahia o pjsip, 100 KB noa iho e toe ana. I konei me whakamahi ahau i etahi mahara o waho - SDRAM (mo te 128 KB).

I muri i enei whakatikatika katoa, i kite ahau i nga kohinga tuatahi i waenga i a Linux me Embox, a ka rongo ahau i te tangi! Engari he tino whakamataku te tangi, kaore i rite ki te QEMU, kaore e taea te kite i tetahi mea. Katahi matou ka whakaaro he aha pea te take. I whakaatu mai te patuiro karekau he wa ki a Embox ki te whakaki/tango i nga putunga ororongo. I te wa e tukatuka ana a pjsip i tetahi anga, e 2 nga haukoti i whai taima mo te otinga o te tukatuka buffer, he nui rawa. Ko te whakaaro tuatahi mo te tere ko te arotautanga whakahiato, engari kua whakauruhia ki roto i te PJSIP. Ko te tuarua ko te waahi maanu taputapu, i korerohia e maatau Tuhinga. Engari kia rite ki nga mahi kua whakaatuhia, kaore a FPU i tino piki ake te tere. Ko te mahi i muri mai ko te whakaraupapa i nga miro. He rereke nga rautaki a Embox, a kua whakauruhia e ahau tetahi e tautoko ana i nga kaupapa matua me te whakatau i nga awa oro ki te kaupapa matua. Kaore hoki tenei i awhina.

Ko te whakaaro o muri mai kei te mahi matou me te mahara o waho, a he pai ki te neke i nga hanganga ki reira ka uru atu ki reira. I mahia e au he tātaritanga tuatahi mo te wa me te aha simple_pjsua ka tohatoha mahara. Ko te ahua o te 190 Kb, ko te 90 Kb tuatahi ka tohatohahia mo nga hiahia o roto o PJSIP, a, kaore i te tino uru atu. I tua atu, i te wa o te waea taumai, ka karangahia te mahi pjsua_call_answer, i reira ka tohatohahia nga kaitarai mo te mahi me nga papa taumai me te puta. Ko te 100 Kb tonu. Na ka mahi matou i nga mea e whai ake nei. Tae noa ki te wa o te waea, ka tuuhia e matou nga raraunga ki te mahara o waho. Ka mutu te waea, ka whakakapihia e matou te puranga ki tetahi atu - i roto i te RAM. Na, ko nga raraunga "wera" katoa i whakawhitia ki te mahara tere me te maarama ake.

Ko te mutunga, na enei mea katoa i taea ai te whakarewatanga simple_pjsua ka waea mai ma to tūmau. Ka mutu ma etahi atu kaitoro penei i te sip.linphone.org.

kitenga

Ko te mutunga, ka taea te whakarewa simple_pjsua me te tuku reo i nga taha e rua ma te tūmau. Ko te raruraru me te taapiri 128 KB o te SDRAM ka taea te whakatau ma te whakamahi i te Cortex-M7 paku kaha ake (hei tauira, STM32F769NI me te 512 KB o te RAM), engari i te wa ano, kaore ano matou i mutu te tumanako kia uru ki te 256 KB 🙂 Ka harikoa tatou mena kei te pirangi tetahi, He pai ake ranei, whakamatauria. Ko nga puna katoa, pera i mua, kei roto i a maatau whare putunga.

Source: will.com

Tāpiri i te kōrero