CYPRESS Memory Mapped Access sa SPI F-RAM AN229843 User Guide

CYPRESS Memory Mapped Access sa SPI F-RAM AN229843 User Guide

1 Panimula

Ang non-volatile Cypress SPI F-RAM memory ay maaaring gamitin sa iba't ibang paraan. Una, ang kanilang set ng pagtuturo ay tugma sa mga klasikong serial EEPROM at Flash na alaala. Ang tampok na ito ay nagbibigay-daan sa mga developer na magpatakbo ng mga F-RAM na device tulad ng isang EEPROM o Flash na bahagi gamit ang mga kasalukuyang driver ng software.
Sa kabilang banda, ang mga aparatong F-RAM ay nagtataglay ng mga katangian ng RAM at advantages: maaari silang basahin at isulat kaagad sa isang byte-by-byte na batayan nang hindi nangangailangan ng pagbubura o pagboto tulad ng mga Flash device. Ang mga advanced na modernong SPI controllers ay maaaring makabuo ng mga kinakailangang command sequence on-the-fly sa hardware at sumusuporta sa memory mapped access sa pamamagitan ng mga pointer. Ginagawa nitong parang normal na RAM ang mga serial F-RAM device sa mga application.
Ang dalawang modelo ng paggamit ay ipinakita at inihambing nang detalyado sa mga sumusunod na seksyon.

2 EEPROM/Flash Style Access

Kung ang serial F-RAM ay ginagamit tulad ng isang EEPROM o Flash device, ang karaniwang kontrol na daloy ay:

  1. Magbukas ng espesyal na device file
  2. Itakda ang file offset sa isang tiyak na posisyon
  3. Mag-isyu ng read or write na tawag.

Ang mga hakbang 2 at 3 ay inuulit nang madalas kung kinakailangan.
Ang pagdaragdag ng suporta sa F-RAM sa mga kasalukuyang EEPROM/Flash driver ay karaniwang simple. Sa maraming kaso, sapat na na magdagdag lang ng bagong device ID sa listahan ng mga sinusuportahang device sa source code ng driver para gumana ang mga device. Ang mga utos ng SPI na magbasa at magsulat ng data ay katugma sa pagitan ng EEPROM/Flash at F-RAM, at ang mga command na burahin ay binabalewala lang ng F-RAM device. Karamihan sa mga application ay hindi umaasa sa default na halaga ng bagong nabura na memory (hal. 0xFF) kaya maayos ang pag-uugaling ito. Sa mga espesyal na kaso kung saan ginagawa nila, ang nabura na rehiyon ng memorya ay maaaring tahasang itakda sa inaasahang default na halaga ng burahin na function. Bilang karagdagan, ang code ng botohan na ginamit sa mga driver ng EEPROM/Flash software upang makita ang pagtatapos ng mga pagpapatakbo ng programa ay hindi nakakaapekto sa F-RAM. Para sa mga naturang software driver, ang mga F-RAM na device ay lumilitaw na agad na tapos na sa anumang programa o burahin ang operasyon at mga pagbabalik ng kontrol pagkatapos ng isang solong pag-ulit ng botohan. Bilang kahalili, ang botohan ay maaaring ganap na hindi pinagana para sa F-RAM sa mga driver.

Sa Linux, bilang isang kongkretong exampSa gayon, ang paraan ng pag-access ay nangangailangan ng user na magbukas ng Memory Technology Device (MTD) o espesyal na device ng EEPROM file at mag-isyu ng dalawang system call para sa bawat pagbabasa o pagsulat. Una, isang tawag ng sleek() upang iposisyon ang file descriptor sa gustong offset at pangalawang isyu alinman sa read() o write() system call para basahin o isulat ang data. Para sa malalaking bloke ng data, ang nauugnay na mga tawag sa system at ang kanilang overhead ay hindi gaanong mahalaga at maaaring mapabayaan. Ang throughput ay ang mahalagang parameter sa mga ganitong kaso. Para sa maliliit na laki ng data (para sa halample, mga variable na 1-16 bytes), gayunpaman, ang overhead ng system call ay nagdudulot ng mga kapansin-pansing latency.

Ang dahilan kung bakit mas kumplikado ang mga bagay para sa mga application ay ang pangangailangang maglaan at pamahalaan ang mga buffer na ipinapasa sa mga function ng read at write. Kadalasan, ang data ay kinopya nang pabalik-balik sa paraan ng pag-access na ito, papunta at mula sa mga buffer sa application at pagkatapos ay muli mula sa mga buffer patungo sa mga SPI controller FIFO sa driver ng device at vice versa. Ang mga operasyon ng pagkopya ay may negatibong epekto sa throughput sa mga mabilis na system.

3 Memory Mapped Access

Ang mga buffer ng data na pinamamahalaan ng user at manu-manong paggalaw ng data ay hindi kailangan para sa access na naka-mapa ng memorya (kilala rin bilang Memory Mapped I/O o MMIO). Sa paraan ng pag-access na ito, ang mga application ay maaaring magbasa at sumulat sa F-RAM sa pamamagitan lamang ng pagtukoy sa mga pointer sa mga bagay ng data ng nais na laki.

Ang tulong sa software ay kailangan lamang sa panahon ng pagsisimula upang suriin ang device at sa ibang pagkakataon upang mag-set up ng naaangkop na pagmamapa ng address para sa application. Kapag naitatag na ang pagmamapa na ito, ang lahat ng read and write access ay ganap na tumatakbo sa hardware. Ito ay humahantong sa isang mas mahusay na antas ng pagganap kumpara sa klasikong EEPROM/Flash style access. Pangunahin, ang mga latency ay mas maikli na nagreresulta sa mas mahusay na mga resulta para sa maliliit na laki ng data.

Higit pa rito, pinapasimple ng memory mapped access ang code ng mga application. Ang data ay hindi kailangang kopyahin nang pabalik-balik sa pagitan ng mga buffer, at ang mga system call ay hindi kailangan upang ma-access ang F-RAM memory pagkatapos ng pagsisimula.

Sa wakas, ang mga advanced na feature tulad ng code execution nang direkta sa labas ng SPI F-RAM (XIP) ay posible lamang sa isang memory na naka-setup na naka-map. Bagama't ang mga read-only na application ay posible rin sa SPI Flash sa isang memory mapped setup, nabigo ang mga nai-map na pagsusulat sa mga device na ito dahil sa kanilang mga kinakailangan sa botohan at burahin.

Ang isang hamon ay maaaring idagdag ang tukoy na code sa pag-setup ng controller sa mga driver ng software. Ang generic na driver code ay halos hindi posible.

4 Isang Pag-aaral ng Kaso

Upang siyasatin ang mga benepisyo sa pagganap ng memory na naka-access sa pagmamapa, ang isang NXP i.MX8QXP SoC na may Cypress Exelon Ultra CY15B104QSN F-RAM ay ginagamit upang magbigay ng modernong benchmarking platform.

Ang OS sa kasong ito ay Linux (kernel 4.14.98) na nagpapatakbo ng Cypress SPI Memories Driver stack version v19.4. Sinusuportahan ng driver ng software na ito ang parehong klasikong MTD pati na rin ang pag-access sa memory mapped. Ang CY15B104QSN ay pinapatakbo sa QPI mode sa isang SPI clock frequency na 100 MHz SDR. Kaya, ang maximum na theoretical throughput para sa parehong read at write na mga operasyon ay limitado sa 50 MiB/s1.

Ang i.MX8QXP FlexiSpot controller ay sumusuporta sa mga access na naka-map ng memorya sa pamamagitan ng isang maliit na table na maaaring i-configure. Ang Look Up Table (LUT) na ito ay maaaring maglaman ng hanggang 32 sequence para i-synthesize ang mga transaksyon ng SPI bus on-the-fly sa hardware. Ang mga rehistro ng index sa controller ay maaaring itakda upang ipaalam sa processor kung aling (mga) sequence ang isasagawa para sa memory na naka-map na read at writes, para sa example, kung ang isang pointer ay dereference. Maaaring ito ay iisang sequence o isang set ng maramihang sequence, halimbawaampKung ang isang utos ng Write Enable kasama ang isang utos ng Programa ay kailangang ibigay para sa isang operasyon ng pagsulat. Para sa pagbabasa at pagsusulat ng QPI sa F-RAM, maaaring gamitin ang sumusunod na mga entry/sequence ng LUT:

CYPRESS Memory Mapped Access sa SPI F-RAM AN229843 User Guide - Isang Pag-aaral ng Kaso CYPRESS Memory Mapped Access sa SPI F-RAM AN229843 User Guide - Isang Pag-aaral ng Kaso

Tandaan na ang CY15B104QSN ay may malagkit na WREN (Write Enable) bit sa status register. Kapag naitakda na ang bit na ito, hindi na kailangan ng device ng tahasang Write Enable na mga utos bago ang bawat operasyon ng pagsulat ng memorya. Kaya, tanging ang pangalawang sequence ng nakalistang pares ng sequence para sa write path ang ginagamit.

Ang isa pang diskarte sa pag-optimize na ginamit ay ang prefetching na maaaring awtomatikong gawin ng i.MX8QXP FlexSPI controller. Ang tampok na ito ay nakakaapekto at nagpapabilis sa read path para sa lahat ng mga paraan ng pag-access. Palagi itong naglo-load ng mga bloke ng data ng buong 2 kB mula sa F-RAM sa ilang mga buffer ng hardware. Ang mga kahilingan sa pagbabasa mula sa software ay ihahatid mula sa mga buffer na ito.

Binubuod ng Talahanayan 1 ang mga sinusukat na resulta at ipinapakita ang mga benepisyo sa pagganap ng direktang memory na naka-mapa na pag-access. Sa partikular, ang mga latency ay mas maikli kumpara sa karaniwang paraan ng pag-access sa istilo ng Flash (nang higit sa 20x). Ang napakaikling mga latency ay gumagamit ng instant nonvolatility na feature ng F-RAM at nakakatulong sa mga sitwasyon kung saan ang kapangyarihan ng system ay biglang nawawala. Nagiging komplimentaryong kinakailangan ang memory mapped access sa mga pagkakataong iyon, na nagpapaikli sa time window kung saan ang data ay nasa panganib.

CYPRESS Memory Mapped Access sa SPI F-RAM AN229843 User Guide - Talahanayan 1. Mga Resulta ng Benchmarking para sa CY15B104QSN sa i.MX8QXP

Sa benchmark na ito, sinusukat ang mga resulta ng throughput sa pamamagitan ng pagbabasa o pagsulat sa buong device. Para sa memory mapped case, ang memcpy() ay tinatawag upang kopyahin ang lahat ng pangunahing array data mula sa F-RAM patungo sa normal na system DRAM o vice versa. Tingnan ang Appendix A para sa ilang partikular na ARMv8-A na pag-optimize ng memcpy(). Kung hindi pinagana ang prefetching ng hardware, ang mga read throughput ay kapareho ng pagkakasunud-sunod ng mga write throughput.

Ang mga latency ay nagsasaad ng pagkaantala pagkatapos maibigay ng software application ang isang write o read operation hanggang sa pisikal na mailipat ang data sa SPI bus. Sa benchmark na ito, ang mga latency ay sinusukat sa pamamagitan ng pagbibigay ng maliit na 1 byte na read and write operations.

5 Pag-cache ng CPU

Bilang default, ang pag-cache ng CPU ay hindi pinagana sa karamihan ng mga platform para sa buong espasyo ng memorya ng I/O. Ito ay nagpapatupad ng ordered at uncombine memory access at ito ay kinakailangan, halimbawaample, para punan ang hardware FIFOs o para magprogram o magbura ng mga Flash device.

Para sa mga alaala ng F-RAM, gayunpaman, ang mga cache ng CPU ay maaaring paganahin kasabay ng pag-access sa memory mapped upang itulak pa ang sobre ng pagganap. Sa pag-cache ng CPU, ang natural na laki ng pagsabog sa SPI bus para sa pagbabasa at pagsusulat ay isang linya ng cache (64 bytes sa i.MX8QXP). Ginagawa nitong mas mahusay ang paggamit ng available na SPI bus bandwidth kumpara sa isang serye ng mas maliliit na paglilipat. Gayunpaman, sa panahon ng power drop data ay maaaring mawala kung ito ay naninirahan sa isang cache line na hindi pa naisusulat pabalik sa F-RAM. Samantalang para sa mga normal na memorya ng RAM ang pag-uugali na ito ay ganap na katanggap-tanggap, para sa F-RAM ay hindi.

Ang pagpapagana ng simpleng read caching scheme (iyon ay, na may write though cache policy) ay ligtas para sa F-RAM, dahil ang data ay isinulat kaagad pabalik sa F-RAM array sa configuration na ito.

Kung ang application ay may malinaw na mga punto ng pag-synchronize (para sa halample, nagse-save ng mga full camera na larawan), at kahit na ang isang write back policy ay maaaring i-enable. Ang mas maliliit na write operation ay maaaring isama sa scheme na ito para makabuo ng lubos na mahusay na buong 64-byte na cache line na writes. Gayunpaman, ang mga tagubilin sa pagpapanatili ng hadlang at cache ay dapat idagdag sa mga punto ng pag-synchronize ng source code, sa kasong ito upang ma-flush ang cache paminsan-minsan. Ang mga naturang tagubilin ay nagiging sanhi ng data na naipon sa cache ng CPU na tahasang maisulat pabalik, at sa gayon ay maalis ang panganib ng pagkawala ng data.

6 Konklusyon

Karamihan sa mga SPI controllers ngayon ay sumusuporta sa memory mapped access sa mga external na device. Samakatuwid, sa mga controllers na ito, ang pag-access sa memory na naka-map ay naging isang praktikal na opsyon upang isaalang-alang at ang mga customer ay maaaring makinabang mula dito, partikular sa kaso ng F-RAM.

Ang memory mapped access sa F-RAM ay may malinaw na performance benefits at pinapasimple ang application code kumpara sa classic na serial EEPROM/Flash access method. Ito ay pangkalahatan, nababaluktot, at isinasama ang F-RAM nang walang putol sa isang modernong sistema.

Sa pamamagitan ng maingat na pagsusuri at pag-optimize ng application code, ang kumbinasyon ng memory na naka-map na access sa CPU caching ay maaaring higit pang mapabuti ang throughput at latency.

7 Mga Kaugnay na Dokumento

CYPRESS Memory Mapped Access sa SPI F-RAM AN229843 User Guide - Mga Kaugnay na Dokumento

Appendix A. Na-optimize na 16-byte memcpy() para sa ARMv8-A

Ang default na pagpapatupad ng memcpy() para sa ARMv8-A sa Linux ay gumagamit ng mga tagubilin sa pag-assemble ng load-pair at store-pair na naglilipat ng dalawang 8-byte na register nang sabay-sabay. Sa kasamaang palad, ang mga tagubiling ito ay nagpapalitaw ng dalawang 8-byte na SPI na pagsabog sa bus sa halip na isang solong 16-byte na pagsabog. Upang mapabuti ang sitwasyon, ang memcpy() ay maaaring i-optimize upang gumamit ng 16-byte na FP/SIMD na rehistro kasama ang kaukulang mga tagubilin sa pag-load/store, tulad ng ipinapakita sa ibaba. Ang pagbabagong ito ay lumilikha ng nais na 16-byte na pagsabog ng SPI sa bus.

CYPRESS Memory Mapped Access sa SPI F-RAM AN229843 User Guide - Appendix A

Kasaysayan ng Dokumento

Pamagat ng Dokumento: AN229843 – Memory Mapped Access sa SPI F-RAM Numero ng Dokumento: 002-29843

CYPRESS Memory Mapped Access sa SPI F-RAM AN229843 User Guide - Kasaysayan ng Dokumento

Pandaigdigang Sales at Suporta sa Disenyo
Ang Cypress ay nagpapanatili ng isang pandaigdigang network ng mga tanggapan, mga sentro ng solusyon, mga kinatawan ng tagagawa, at mga distributor. Upang mahanap ang opisina na pinakamalapit sa iyo, bisitahin kami sa Cypress Locations.

Mga produkto
Arm® Cortex® Microcontrollers cypress.com/arm
Automotive  cypress.com/automotive
Mga Orasan at Buffer cypress.com/clocks 
Interface cypress.com/interface
Internet ng mga Bagay  cypress.com/iot
Alaala  cypress.com/memory
Mga microcontroller cypress.com/mcu 
PSoC cypress.com/psoc
Mga Power Management IC  cypress.com/pmic
Touch Sensing  cypress.com/touch
Mga USB Controller cypress.com/usb 
Wireless Connectivity cypress.com/wireless

Mga Solusyon sa PSoC®
PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP | PSoC 6 MCU

Cypress Developer Community
Komunidad | Ang Code Halamples | Mga proyekto | Mga video | Mga Blog | Pagsasanay | Mga bahagi

Teknikal na Suporta
cypress.com/support

Ang lahat ng iba pang trademark o rehistradong trademark na isinangguni dito ay pag-aari ng kani-kanilang mga may-ari.

Logo ng CYPRESS

Cypress Semiconductor
Isang Infineon Technologies Company 198 Champion Court
San Jose, CA 95134-1709

© Cypress Semiconductor Corporation, 2020. Ang dokumentong ito ay pag-aari ng Cypress Semiconductor Corporation at mga subsidiary nito (“Cypress”). Ang dokumentong ito, kabilang ang anumang software o firmware na kasama o isinangguni sa dokumentong ito (“Software”), ay pagmamay-ari ng Cypress sa ilalim ng mga batas at kasunduan sa intelektwal na ari-arian ng Estados Unidos at iba pang mga bansa sa buong mundo. Inilalaan ng Cypress ang lahat ng karapatan sa ilalim ng mga naturang batas at kasunduan at hindi, maliban sa partikular na nakasaad sa talatang ito, ay nagbibigay ng anumang lisensya sa ilalim ng mga patent nito, copyright, trademark, o iba pang mga karapatan sa intelektwal na ari-arian. Kung ang Software ay hindi sinamahan ng isang kasunduan sa lisensya at wala kang nakasulat na kasunduan sa Cypress na namamahala sa paggamit ng Software, pagkatapos ay binibigyan ka ng Cypress ng isang personal, hindi eksklusibo, hindi naililipat na lisensya (nang walang karapatang mag-sublicense ) (1) sa ilalim ng mga karapatan sa copyright nito sa Software (a) para sa Software na ibinigay sa source code form, upang baguhin at kopyahin ang Software para lamang gamitin sa mga produktong hardware ng Cypress, sa loob lamang ng iyong organisasyon, at (b) upang ipamahagi ang Software sa binary code form na panlabas sa mga end user (direkta man o hindi direkta sa pamamagitan ng mga reseller at distributor), para lang gamitin sa mga yunit ng produkto ng Cypress hardware, at (2) sa ilalim ng mga claim na iyon ng mga patent ng Cypress na nilalabag ng Software (tulad ng ibinigay ng Cypress, hindi binago) upang gawin, gamitin, ipamahagi, at i-import ang Software para lamang gamitin sa mga produktong hardware ng Cypress. Ang anumang iba pang paggamit, pagpaparami, pagbabago, pagsasalin, o pagsasama-sama ng Software ay ipinagbabawal.

SA SAKOT NA PINAHIHINTULUTAN NG NAAANGKOP NA BATAS, ANG CYPRESS ay WALANG GUMAGAWA NG WARRANTY NG ANUMANG URI, PAHAYAG O IPINAHIWATIG, TUNGKOL SA DOKUMENTONG ITO O ANUMANG SOFTWARE O KASAMA NA HARDWARE, KASAMA, NGUNIT HINDI LIMITADO SA, ANG PAHIWATIG NA PAGPAPAHAYAG NA WALANG PANGKAT. .

Walang computing device ang maaaring maging ganap na secure. Samakatuwid, sa kabila ng mga hakbang sa seguridad na ipinatupad sa mga produkto ng hardware o software ng Cypress, walang pananagutan ang Cypress na magmumula sa anumang paglabag sa seguridad, tulad ng hindi awtorisadong pag-access o paggamit ng isang produkto ng Cypress. ANG CYPRESS AY HINDI KINAKATAWAN, NAGGARANTI, O GINAGARANTIYA NA ANG CYPRESS PRODUCTS, O SYSTEMS NA NILIKHA GAMIT ANG CYPRESS PRODUCTS, AY MAGIGING LIBRE SA KATIWALI, ATTACK, VIRUS, INTERFERENCE, HACKING, DATA LOSS OR THEFT, OR Bredectively SERVICES ). Tinatanggihan ng Cypress ang anumang pananagutan na may kaugnayan sa anumang Paglabag sa Seguridad, at dapat at sa pamamagitan nito ay pakakawalan mo si Cypress mula sa anumang paghahabol, pinsala, o iba pang pananagutan na magmumula sa anumang Paglabag sa Seguridad. Bilang karagdagan, ang mga produktong inilarawan sa mga materyales na ito ay maaaring maglaman ng mga depekto sa disenyo o mga error na kilala bilang errata na maaaring maging sanhi ng paglihis ng produkto mula sa mga nai-publish na mga detalye. Sa lawak na pinahihintulutan ng naaangkop na batas, inilalaan ng Cypress ang karapatang gumawa ng mga pagbabago sa dokumentong ito nang walang karagdagang abiso. Hindi inaako ng Cypress ang anumang pananagutan na nagmumula sa aplikasyon o paggamit ng anumang produkto o circuit na inilarawan sa dokumentong ito. Anumang impormasyong ibinigay sa dokumentong ito, kabilang ang anumang sampAng impormasyon ng disenyo o programming code, ay ibinibigay lamang para sa mga layunin ng sanggunian. Responsibilidad ng gumagamit ng dokumentong ito na maayos na magdisenyo, magprograma, at subukan ang functionality at kaligtasan ng anumang aplikasyon na ginawa ng impormasyong ito at anumang resultang produkto. Ang ibig sabihin ng "High-Risk Device" ay anumang device o system na ang pagkabigo ay maaaring magdulot ng personal na pinsala, kamatayan, o pinsala sa ari-arian. Halamples of High-Risk Devices ay mga armas, nuclear installation, surgical implants, at iba pang mga medikal na device. Ang "Kritikal na Bahagi" ay nangangahulugang anumang bahagi ng isang Mataas na Panganib na Device na ang pagkabigo sa pagganap ay maaaring makatwirang inaasahan na magdulot, direkta o hindi direkta, ng pagkabigo ng Mataas na Panganib na Device, o makaapekto sa kaligtasan o pagiging epektibo nito. Ang Cypress ay hindi mananagot, sa kabuuan o sa bahagi, at dapat at sa pamamagitan nito ay pakakawalan mo ang Cypress mula sa anumang paghahabol, pinsala, o iba pang pananagutan na magmumula sa anumang paggamit ng isang produkto ng Cypress bilang isang Kritikal na Bahagi sa isang High-Risk na Device. Dapat mong bayaran ng danyos ang Cypress, ang mga direktor, opisyal, empleyado, ahente, kaakibat, distributor, at hindi nakakapinsala mula sa at laban sa lahat ng paghahabol, gastos, pinsala, at gastos, na magmumula sa anumang paghahabol, kabilang ang mga paghahabol para sa pananagutan sa produkto, personal na pinsala o kamatayan, o pinsala sa ari-arian na nagmumula sa anumang paggamit ng isang produkto ng Cypress bilang isang Kritikal na Bahagi sa isang High-Risk na Device. Ang mga produkto ng Cypress ay hindi nilayon o pinahintulutan para sa paggamit bilang isang Kritikal na Bahagi sa anumang High-Risk na Device maliban sa limitadong lawak na (i) ang na-publish na data sheet ng Cypress para sa produkto ay tahasang nagsasaad na ang Cypress ay naging kwalipikado ang produkto para magamit sa isang partikular na High-Risk Device, o (ii) Binigyan ka ng Cypress ng paunang nakasulat na pahintulot na gamitin ang produkto bilang isang Kritikal na Bahagi sa partikular na High-Risk Device at pumirma ka ng hiwalay na kasunduan sa pagbabayad-danyos.
Ang Cypress, ang logo ng Cypress, Spansion, ang logo ng Spansion, at mga kumbinasyon nito, ang WICED, PSoC, CapSense, EZ-USB, F-RAM, at Traveo ay mga trademark o nakarehistrong trademark ng Cypress sa United States at iba pang mga bansa. Para sa mas kumpletong listahan ng mga trademark ng Cypress, bisitahin ang cypress.com. Ang ibang mga pangalan at tatak ay maaaring i-claim bilang pag-aari ng kani-kanilang mga may-ari.

www.cypress.com

Mga Dokumento / Mga Mapagkukunan

CYPRESS Memory Mapped Access sa SPI F-RAM AN229843 [pdf] Gabay sa Gumagamit
CYPRESS, Memory Mapped, Access, to, SPI, F-RAM, AN229843

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *