{"id":84,"date":"2015-07-18T07:42:49","date_gmt":"2015-07-18T07:42:49","guid":{"rendered":"http:\/\/nyacom.net\/wp\/?p=84"},"modified":"2015-08-10T16:15:29","modified_gmt":"2015-08-10T16:15:29","slug":"post-84","status":"publish","type":"post","link":"https:\/\/nyacom.net\/?p=84","title":{"rendered":"Arduino UNO\u3092SPI\u30d5\u30e9\u30c3\u30b7\u30e3\u30fc\u306b\u3059\u308b"},"content":{"rendered":"<p>Linux\u3067\u52d5\u304fflashrom\u30c4\u30fc\u30eb\u3067\u4f7f\u3048\u308bSPI\u30d5\u30e9\u30c3\u30b7\u30e3\u30fc\u3092Arduino\u3067\u4f5c\u308a\u307e\u3059\u3002<\/p>\n<p><!--more--><\/p>\n<p>Arduino\u3067\u4f5c\u3063\u305f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3067flashrom\u3092\u4f7f\u3063\u3066SPI\u63a5\u7d9a\u306eFlash\u3092\u8aad\u3093\u3060\u308a\uff0c<br \/>\n\u66f8\u304d\u8fbc\u3093\u3060\u308a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u5225\u306bArduino\u3067\u4f5c\u3089\u306a\u304f\u3066\u3082flashrom\u3067\u4f7f\u3048\u308b\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u30dc\u30fc\u30c9\u306f\uff0c<br \/>\n\u79cb\u6708\u306eFTD2232\u3068\u304b\u304c\u4e57\u3063\u305f\u5b8c\u6210\u54c1\u8cb7\u3063\u3066\u3082\u5343\u5186\u304f\u3089\u3044\u306a\u3093\u3067\u3059\u304c\uff0c<br \/>\n\u4eca\u56de\u306f\u624b\u6301\u3061\u306eArduinoUNO\u304c\u3042\u3063\u305f\u306e\u3067\uff0c\u3053\u308c\u3067\u3084\u3063\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p>\u3068\u308a\u3042\u3048\u305a<a href=\"http:\/\/flashrom.org\/Serprog\/Arduino_flasher\">\u3053\u3053<\/a>\u3092\u53c2\u8003\u306b\u3084\u3063\u3066\u307f\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a\uff0cArduino\u7528\u306e\u30d3\u30eb\u30c9\u74b0\u5883\u3092\u4f5c\u308a\u307e\u3059\u3002<br \/>\nDebian\u306e\u5834\u5408\u306farduino\u3063\u3066\u3044\u3046\u540d\u524d\u306e\u4eee\u60f3\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u3042\u308b\u306e\u3067\uff0c\u3053\u308c\u3092\u5c0e\u5165\u3057\u307e\u3059\u3002<\/p>\n<pre>$ sudo apt-get arduino<\/pre>\n<p>\u8d85\u7c21\u5358\u3067\u3059\u306d\u3002\u3053\u308c\u3067avr-gcc\u3068\u304b\u4e00\u5f0f\u5168\u90e8\u5165\u308a\u307e\u3059\u3002\uff08\u3059\u3052\u30fc<\/p>\n<p>\u6b21\u306bArduino\u306e\u30d5\u30e9\u30c3\u30b7\u30e3\u30fc\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u516c\u958b\u3055\u308c\u3066\u308b\u306e\u3067\uff0cgit\u3067\u3082\u3089\u3063\u3066\u304d\u307e\u3059\u3002<\/p>\n<pre>git clone --recursive <a class=\"external free\" href=\"git:\/\/github.com\/urjaman\/frser-duino\">git:\/\/github.com\/urjaman\/frser-duino<\/a><\/pre>\n<p>\u4e0a\u306e\u30b5\u30a4\u30c8\u306b\u3082\u66f8\u3044\u3066\u3042\u308a\u307e\u3059\u304c\uff0c<br \/>\n\u4eca\u56de\u306fArduinoUNO\u3092\u5bfe\u8c61\u306b\u3057\u3066\u3044\u308b\u306e\u3067USB\u30b7\u30ea\u30a2\u30eb\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u304cAtmega16u2\u3092\u4f7f\u3063\u3066\u308b\u306e\u3067<br \/>\n\u6b21\u306e\u3088\u3046\u306bmake\u3057\u307e\u3059\u3002<\/p>\n<pre>$ cd frser-duino \r\n$ make u2\r\nDFLAGS= FRBAUD=115200 make clean all\r\nmake[1]: Entering directory '\/home\/xxxx\/src\/frser-duino'\r\nrm -f frser-duino.bin\r\nrm -f frser-duino.out\r\nrm -f frser-duino.hex\r\nrm -f frser-duino.s\r\nrm -f *.o\r\navr-gcc -mmcu=atmega328p -DBAUD=115200 -Os -Wl,--relax -fno-inline-small-functions -fno-tree-switch-conversion -frename-registers -g -Wall -W -pipe -flto -fwhole-program -std=gnu99\u00a0 -Ilibfrser -I. -o frser-duino.out main.c uart.c spihw.c libfrser\/frser.c libfrser\/udelay.c libfrser\/spilib.c libfrser\/spihw_avrspi.c\r\nIn function \u2018__vector_18\u2019:\r\nuart.c:31:1: warning: \u2018_vector_18\u2019 appears to be a misspelled signal handler [enabled by default]\r\n\u00a0ISR(USART_RX_vect) {\r\n\u00a0^\r\navr-size frser-duino.out\r\n\u00a0\u00a0 text\u00a0\u00a0 \u00a0\u00a0\u00a0 data\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 bss\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 dec\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 hex\u00a0\u00a0 \u00a0filename\r\n\u00a0\u00a0 1378\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0 \u00a0\u00a0\u00a0 1036\u00a0\u00a0 \u00a0\u00a0\u00a0 2414\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 96e\u00a0\u00a0 \u00a0frser-duino.out\r\nmake[1]: Leaving directory '\/home\/xxxx\/src\/frser-duino'<\/pre>\n<p>\u3068\u308a\u3042\u3048\u305a\u30d3\u30eb\u30c9\u3067\u304d\u305f\u3088\u3046\u3067\u3059\u3002<\/p>\n<p>\u6b21\u306b\u3067\u304d\u305f\u30d0\u30a4\u30ca\u30ea\u3092Arduino\u306b\u713c\u304d\u3053\u307f\u307e\u3059\u3002<\/p>\n<p>ArduinoUNO\u3092PC\u306b\u63a5\u7d9a\u3057\u3066\u3084\u308b\u3068 \/dev\/ttyACM0 \u3068\u3057\u3066\u898b\u3048\u308b\u306f\u305a\u306a\u306e\u3067\uff0c<br \/>\n\u307e\u305a\u306f\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre>$:~\/src\/frser-duino$ ls \/dev\/tty*\r\n\/dev\/tty\u00a0\u00a0\u00a0 \/dev\/tty15\u00a0 \/dev\/tty22\u00a0 \/dev\/tty3\u00a0\u00a0 \/dev\/tty37\u00a0 \/dev\/tty44\u00a0 \/dev\/tty51\u00a0 \/dev\/tty59\u00a0 \/dev\/tty9\r\n\/dev\/tty0\u00a0\u00a0 \/dev\/tty16\u00a0 \/dev\/tty23\u00a0 \/dev\/tty30\u00a0 \/dev\/tty38\u00a0 \/dev\/tty45\u00a0 \/dev\/tty52\u00a0 \/dev\/tty6\u00a0\u00a0 <strong><span style=\"text-decoration: underline;\">\/dev\/ttyACM0<\/span><\/strong>\r\n\/dev\/tty1\u00a0\u00a0 \/dev\/tty17\u00a0 \/dev\/tty24\u00a0 \/dev\/tty31\u00a0 \/dev\/tty39\u00a0 \/dev\/tty46\u00a0 \/dev\/tty53\u00a0 \/dev\/tty60\u00a0 \/dev\/ttyS0\r\n\/dev\/tty10\u00a0 \/dev\/tty18\u00a0 \/dev\/tty25\u00a0 \/dev\/tty32\u00a0 \/dev\/tty4\u00a0\u00a0 \/dev\/tty47\u00a0 \/dev\/tty54\u00a0 \/dev\/tty61\u00a0 \/dev\/ttyS1\r\n\/dev\/tty11\u00a0 \/dev\/tty19\u00a0 \/dev\/tty26\u00a0 \/dev\/tty33\u00a0 \/dev\/tty40\u00a0 \/dev\/tty48\u00a0 \/dev\/tty55\u00a0 \/dev\/tty62\u00a0 \/dev\/ttyS2\r\n\/dev\/tty12\u00a0 \/dev\/tty2\u00a0\u00a0 \/dev\/tty27\u00a0 \/dev\/tty34\u00a0 \/dev\/tty41\u00a0 \/dev\/tty49\u00a0 \/dev\/tty56\u00a0 \/dev\/tty63\u00a0 \/dev\/ttyS3\r\n\/dev\/tty13\u00a0 \/dev\/tty20\u00a0 \/dev\/tty28\u00a0 \/dev\/tty35\u00a0 \/dev\/tty42\u00a0 \/dev\/tty5\u00a0\u00a0 \/dev\/tty57\u00a0 \/dev\/tty7\r\n\/dev\/tty14\u00a0 \/dev\/tty21\u00a0 \/dev\/tty29\u00a0 \/dev\/tty36\u00a0 \/dev\/tty43\u00a0 \/dev\/tty50\u00a0 \/dev\/tty58\u00a0 \/dev\/tty8<\/pre>\n<p>\u3067\uff0cPC\u304b\u3089\u8a8d\u8b58\u3055\u308c\u305f\u3089\u65e9\u901f\u713c\u3044\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre>$:~\/src\/frser-duino$ sudo make u2-flash\r\nmake: *** No rule to make target 'u2-flash'.\u00a0 Stop.\r\nevilmaster@baraquiel:~\/src\/frser-duino$ sudo make flash-u2\r\nBLBAUD=115200 SERIAL_DEV=\/dev\/ttyACM0 make program\r\nmake[1]: Entering directory '\/home\/xxxx\/src\/frser-duino'\r\navr-objcopy -j .text -j .data -O ihex frser-duino.out frser-duino.hex\r\navrdude -c arduino -p m328p -P \/dev\/ttyACM0 -b 115200\u00a0 -U flash:w:frser-duino.hex\r\n\r\navrdude: AVR device initialized and ready to accept instructions\r\n\r\nReading | ################################################## | 100% 0.00s\r\n\r\navrdude: Device signature = 0x1e950f\r\navrdude: NOTE: \"flash\" memory has been specified, an erase cycle will be performed\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 To disable this feature, specify the -D option.\r\navrdude: erasing chip\r\navrdude: reading input file \"frser-duino.hex\"\r\navrdude: input file frser-duino.hex auto detected as Intel Hex\r\navrdude: writing flash (1378 bytes):\r\n\r\nWriting | ################################################## | 100% 0.23s\r\n\r\navrdude: 1378 bytes of flash written\r\navrdude: verifying flash memory against frser-duino.hex:\r\navrdude: load data flash data from input file frser-duino.hex:\r\navrdude: input file frser-duino.hex auto detected as Intel Hex\r\navrdude: input file frser-duino.hex contains 1378 bytes\r\navrdude: reading on-chip flash data:\r\n\r\nReading | ################################################## | 100% 0.18s\r\n\r\navrdude: verifying ...\r\navrdude: 1378 bytes of flash verified\r\n\r\navrdude: safemode: Fuses OK (E:00, H:00, L:00)\r\n\r\navrdude done.\u00a0 Thank you.\r\n\r\nmake[1]: Leaving directory '\/home\/xxxx\/src\/frser-duino'<\/pre>\n<p>\u304a\uff0c\u713c\u3051\u305f\u3088\u3046\u3067\u3059\u306d\u3002<br \/>\n\u3053\u308c\u3067ArduinoUNO\u306fflashrom\u3067\u8a8d\u8b58\u3067\u304d\u308bSPI\u30d5\u30e9\u30c3\u30b7\u30e3\u30fc\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>\u6b21\u56de\u306f\u3053\u308c\u3067\u5b9f\u969b\u306bSPI Flash\u306e\u4e2d\u8eab\u3092\u8aad\u307f\u3060\u3057\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Linux\u3067\u52d5\u304fflashrom\u30c4\u30fc\u30eb\u3067\u4f7f\u3048\u308bSPI\u30d5\u30e9\u30c3\u30b7\u30e3\u30fc\u3092Arduino\u3067\u4f5c\u308a\u307e\u3059\u3002<\/p>\n","protected":false},"author":1,"featured_media":98,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[13],"tags":[],"class_list":["post-84","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-electronics"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/nyacom.net\/wp-content\/uploads\/2015\/07\/wpid-wp-1437230554589.jpeg?fit=4208%2C2368&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6V68f-1m","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/nyacom.net\/index.php?rest_route=\/wp\/v2\/posts\/84","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nyacom.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nyacom.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nyacom.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nyacom.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=84"}],"version-history":[{"count":6,"href":"https:\/\/nyacom.net\/index.php?rest_route=\/wp\/v2\/posts\/84\/revisions"}],"predecessor-version":[{"id":223,"href":"https:\/\/nyacom.net\/index.php?rest_route=\/wp\/v2\/posts\/84\/revisions\/223"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nyacom.net\/index.php?rest_route=\/wp\/v2\/media\/98"}],"wp:attachment":[{"href":"https:\/\/nyacom.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=84"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nyacom.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=84"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nyacom.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=84"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}