LPC1114FN28を使ってmbedで書いたコードを実行できるようにするところまでを解説します
༧ࢉిࢠ࡞"3.ϚΠίϯΛ͑ΔΑ͏ʹ͢ΔNaomasa Matsubayashi
View Slide
mbedϒϥβ্Ͱಈ͘ARMϚΠίϯͷ౷߹։ൃڥhttps://developer.mbed.org/
mbedmbedͰॻ͍ͨίʔυΛग़དྷΔ͚ͩ༧ࢉͰ࣮ߦ͢ΔࣄΛࢦ͢
mbedͱ͍͑͜͏͍͏ϋʔυΣΞ͕༗໊͚ͩͲߴ͍NCFE-1$௨শ੨͍NCFENCFE-1$6௨শԫ৭͍NCFEԁ͔Βԁ͘Β͍ԁ͔Βԁ͘Β͍
mbed LPC1114FN28ͳΒͪΐͬͱ͍҆mbed LPC1114FN28ԁ͔Βԁ͘Β͍
্ͭ͡ʹࡌͬͯΔϚΠίϯ͚ͩͩͱ200ԁఔ͜͜ʹࡌͬͯΔDIPͷϚΠίϯLPC1114FN28͚ͩϚϧπͰ220ԁڞཱͰ200ԁळ݄Ͱ140ԁ
ॻ͖ࠐΈ͑͞Կͱ͔͢ΕϚΠίϯ200ԁఔͰࡁΉԼʹ͍͍ͭͯΔͷ64#͔Β؆୯ʹॻ͖ࠐΉͨΊͷϋʔυΣΞ
LPC1114FN28ARM Cortex-M0ϚΠίϯ࠷େ48MHz(ΫϩοΫଂ)ଂϑϥογϡ32KB(࣮ߦՄೳόΠφϦͷαΠζ32KB·Ͱ)ଂRAM4KB(࣮ߦதʹ͑ΔϝϞϦ4KB·Ͱ)3.3VͰಈ͘ϒϨουϘʔυʹͤ͞ΔUART͔Βॻ͖ࠐΊΔ
LPC1114FN28੨͍mbedͷΑ͏ͳUSBϗετEthernetແ͍͕I2C SPI PWM ADC UARTϚΠίϯͰΑ͘ΘΕΔI/O༗Δ
༻ҙ͢Δͷ
༻ҙ͢Δͷ7ిݯ͖ϒϨουϘʔυ-1$'/ԁ ॳճԁԁηοτ͋ͨΓԁඅ༻ͷΊ͢෦ॳճʹඞཁͳඅ༻ԁॳճԁδϟϯύϫΠϠຊ ԁ7༻64#γϦΞϧίϯόʔλλΫτεΠον ԁ
ಈ࡞֬ೝʹඞཁͳͷ
ಈ࡞֬ೝʹඞཁͳͷఆ֨N"ͷ-&%߅ЊݸͰԁݸͰԁ߹ܭ ηοτลΓԁඅ༻ͷΊ͢෦ॳճʹඞཁͳඅ༻ԁδϟϯύϫΠϠຊ ԁ
C͔ΒHʹ-1$'/ΛଓύοέʔδʹԜΈ͕͋Δํ͕ߦʹདྷΔΑ͏ʹ͢Δ
ϦηοτϘλϯ༻ͷλΫτεΠονΛ͚Δಈ࡞֬ೝ࣌ʹ͚Δ-&%ͱͿ͔ͭΒͳ͍ߦҎ͕߱Φεεϝ
λΫτεΠονͷࢠͷҰํΛIʹଓ͏ҰํΛͷిݯϨʔϯʹଓ
J͔ΒͷిݯϨʔϯʹδϟϯύϫΠϠΛଓଂϑϥογϡॻ͖ࠐΈϞʔυʹೖΔҝͷઃఆ
K͔ΒͷిݯϨʔϯʹଓϚΠίϯͷ(/%
I͔ΒͷిݯϨʔϯʹଓϚΠίϯͷిݯ
64#γϦΞϧίϯόʔλͷ(/%ͱ5Y%ͱ3Y%ʹδϟϯύϫΠϠΛଓ
64#γϦΞϧίϯόʔλͷ(/%ΛͷిݯϨʔϯʹଓγϦΞϧίϯόʔλͱϒϨουϘʔυͷج४ిҐΛҰகͤ͞Δ
Jʹ64#γϦΞϧίϯόʔλͷ5Y%Λଓ
Kʹ64#γϦΞϧίϯόʔλͷ3Y%Λଓ
LPC1114FN28ʹॻ͖ࠐΉํ๏σόοΨͰॻ͖ࠐΉ γϦΞϧͰॻ͖ࠐΉσόοΨ͕ཁΔ 64#γϦΞϧίϯόʔλ͕ཁΔࠓճͬͪ͜γϦΞϧ͔Βॻ͖ࠐΉҝͷΈσʔλγʔτͰ*O4ZTUFN1SPHSBNNJOH *41ͱݺΕΔ
lpc21ispFlashMagic8JOEPXT༻ͷ(6*ΞϓϦέʔγϣϯ/*9͚ͷίϚϯυϥΠϯπʔϧॻ͖ࠐΈʹ͏ιϑτΣΞࠓճͬͪ͜8JOEPXTϢʔβͰ'MBTI.BHJDͰॻ͖͍ͨ߹͜ͷΜࢀরIUUQXXXOYQMQDDPNEFWFMPQNFOUIUNM
lpc21isp*41ͷϓϩτίϧΛΔίϚϯυϥΠϯπʔϧ͜ΕΛͬͯॻ͖ࠐΉIUUQTHJUIVCDPNDBQJNBOMQDJTQ
# LANG=C emerge -av lpc21isp!--- Invalid atom in /etc/portage/package.use/kde: kde-base/pykde4-4.10.5!!* IMPORTANT: 28 news items need reading for repository 'gentoo'.!* Use eselect news to read news items.!!* Last emerge --sync was 52d 2h 23m 42s ago.!!These are the packages that would be merged, in order:!!Calculating dependencies... done!![ebuild N ~] dev-embedded/lpc21isp-1.85 54 KiB!!Total: 1 package (1 new), Size of downloads: 54 KiB!!Would you like to merge these packages? [Yes/No] Yes!!>>> Verifying ebuild manifests!!>>> Emerging (1 of 1) dev-embedded/lpc21isp-1.85::gentoo!>>> Downloading 'http://ftp.iij.ad.jp/pub/linux/gentoo/distfiles/lpc21isp_185.tar.gz'!--2015-05-02 22:29:39-- http://ftp.iij.ad.jp/pub/linux/gentoo/distfiles/lpc21isp_185.tar.gz!Resolving ftp.iij.ad.jp... 2001:240:bb8f:200::1:170, 202.232.140.170!Connecting to ftp.iij.ad.jp|2001:240:bb8f:200::1:170|:80... connected.!HTTP request sent, awaiting response... 200 OK!Length: 54735 (53K) [application/x-gzip]!Saving to: '/usr/portage/distfiles/lpc21isp_185.tar.gz'!!/usr/portage/distfi 100%[=====================>] 53.45K --.-KB/s in 0.1s !!2015-05-02 22:29:39 (385 KB/s) - '/usr/portage/distfiles/lpc21isp_185.tar.gz' saved [54735/54735]!͍͚ͯΔ-JOVYσΟετϦϏϡʔγϣϯͩͱύοέʔδ͕༻ҙ͞Ε͍ͯΔࣄ͋Δ
ઌఔΈཱͯͨϘʔυʹిΛೖΕͯϦηοτϘλϯΛԡ͢MQDJTQͰσόΠεΛ୳͢# lpc21isp -detectonly /dev/ttyUSB0 115200 48000!lpc21isp version 1.85!Synchronizing (ESC to abort). OK!Read bootcode version: 1!7!Read part ID: LPC1114.../102, 32 kiB ROM / 4 kiB SRAM (0x1A40902B)ϦηοτϘλϯ͜͜ͷσόΠε໊ڥʹΑͬͯҟͳΔՄೳੑ͕͋Δ
# lpc21isp -detectonly /dev/ttyUSB0 115200 48000!lpc21isp version 1.85!Synchronizing (ESC to abort). OK!Read bootcode version: 1!7!Read part ID: LPC1114.../102, 32 kiB ROM / 4 kiB SRAM (0x1A40902B)νοϓͷछྨ-1$ ུϑϥογϡϝϞϦ,J#3".,J#͜Μͳ෩ʹνοϓͷใ͕දࣔ͞ΕͨΒޭग़ͳ͍߹Έཱͯํ͕߹͍ͬͯΔ͔͏Ұ֬ೝ͠Α͏
ಈ࡞֬ೝ
mbedͷLED໓αϯϓϧΛಈ͔ͯ֬͠ೝ͢Δhttps://developer.mbed.org/users/ytsuboi/notebook/getting-started-with-mbed-lpc1114/ϓϩάϥϜ͕LED1ͷ༻Λཁٻͨ࣌͠mbedLPC1114FN28ͷ͜ͷϐϯʹLED͕͍͍ͭͯΔ͜ͱΛظ͢Δ
൪ϐϯ ϒϨουϘʔυͷBʹЊͷ߅Λଓ-&%ͷిྲ੍ྀݶ༻
߅ʹ-&%ͷΞϊʔυଆ ͕͍ํΛଓ͜ͷճ࿏ఆ֨N"ͷ-&%Λఆ͍ͯ͠Δ
-&%ͷΧιʔυଆΛͷిݯϨʔϯʹଓ
mbedʹϢʔβొhttps://developer.mbed.org/account/signup/?next=%2F
mbedʹϩάΠϯͨ͠ΒCompilerΛબhttps://developer.mbed.org/͜Ε
mbed LPC1114FN28ʹͳ͍ͬͯΔ͜ͱΛ֬ೝ͜Ε͠ผͷϚΠίϯʹͳ͍ͬͯͨΒΫϦοΫͯ͠LPC1114FN28ʹมߋ
NewΛԡͯ͠৽͍͠ϓϩάϥϜΛ࡞͜Ε
Platform͕mbed LPC1114FN28ʹͳ͍ͬͯΔ͜ͱΛ֬ೝ͜ΕNCFE-1$'/͕Ϧετʹແ͍߹μΠΞϩάΛҰดͯ͡ӈ্ͷϓϥοτϑΥʔϜબ͔ΒՃ͠Α͏ϓϥοτϑΥʔϜબ
Template͕Blinky LED Hello Worldʹͳ͍ͬͯΔࣄΛ֬ೝ͜Ε͍ΘΏΔLνΧΛ͢ΔͨΊͷίʔυ͕࠷ॳ͔Β༻ҙ͞Ε͍ͯΔ
CompileΛΫϦοΫ͢ΔϏϧυ͕ྃ͢Δͱग़དྷ্͕ͬͨόΠφϦ͕μϯϩʔυ͞ΕΔ͜Ε
# lpc21isp -bin mbed_blinky_LPC1114.bin /dev/ttyUSB0 115200 48000!lpc21isp version 1.85!File mbed_blinky_LPC1114.bin:!! loaded...!! image size : 10540!Image size : 10540!Synchronizing (ESC to abort). OK!Read bootcode version: 1!7!Read part ID: LPC1114.../102, 32 kiB ROM / 4 kiB SRAM (0x1A40902B)!Will start programming at Sector 1 if possible, and conclude with Sector 0 to ensure that checksumis written last.!Erasing sector 0 first, to invalidate checksum. OK !Sector1: ...........................|.........................|.........................|.........................!Sector 2: ...........................|.........................|.........!Sector0: ..........................|.........................|.........................|.........................!Download Finished... taking 2 seconds!Now launching the brand new codeμϯϩʔυͨ͠όΠφϦॻ͖ࠐΈ*41͕ಉظͰ͖ΔͷϦηοτޙճ͚ͩͳͷͰ্ख͍͔͘ͳ͍ͱ͖ϦηοτϘλϯΛԡ͔ͯ͠Β͏Ұࢼͯ͠ΈΑ͏
J͔ΒͷిݯϨʔϯʹܨ͕͍ͬͯΔδϟϯύϫΠϠΛ֎͢ଂϑϥογϡॻ͖ࠐΈϞʔυʹೖΒͳ͍Α͏ʹ͢Δ
ϦηοτϘλϯΛԡͯ͠-&%͕໓࢝͠ΊͨΒޭ
·ͱΊ200ԁͷϚΠίϯͱγϦΞϧॻ͖ࠐΈͰmbedͰ࡞ͬͨόΠφϦΛ࣮ߦͰ͖Δ