¤¤¤í¤¤¤í»î¤¹62
¡üPicoscope7¤Î¥½¥Õ¥È¤¬¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¡ªº£ÅÙ¤³¤½°ÂÄê¡Ä¤«¡©
¤¹¤°¥Õ¥ê¡¼¥º¤·¤¿¤êÍî¤Á¤¿¤ê¤Ç¤Ê¤«¤Ê¤«°ÂÄꤷ¤Ê¤¤Picoscope7¤Î¥½¥Õ¥È¤Ç¤¹¤¬
StableÈǤ¬7.1.29¤Ë¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤·¤Æ¤ª¤ê¤Þ¤·¤¿¡£
º£ÅÙ¤³¤½ËÜÅö¤ËStable¤Ê¤ó¤Ç¤·¤ç¤¦¤Í¡Ä¡ª¡©(¤É¤¤É¤
¢¨²ñ¼Ò¤Ç¸½Ìò¤Ç¥Ð¥ê¥Ð¥ê»ÈÍÑÃæ¤ÎPicoscope3206A¤Ç»î¤·¤Æ¤Þ¤¹
☝2²èÌÌ¤ÇÆ°¤«¤·¤ÆÊüÃÖ¤¹¤ë¤È¸Ç¤Þ¤Ã¤¿orz
¡Ä
¥Õ¥¡¡»¥Ã¥Ã¥Ã¥¯¡ª¡ª¡ª¡ª¡ª
´ðËÜŪ¤ÊÁàºî¤Ï¤À¤¤¤Ö°ÂÄꤷ¤Æ¤¤Þ¤·¤¿¤¬¤Á¤ç¤Ã¤ÈÊ£»¨¤ÊÁàºî¤Ï¤Þ¤À
°ÂÄꤷ¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¹¤Í¡Ä
¤È¤¤¤¦¤ï¤±¤Ç°ÂÄꤷ¤Æ»ÈÍѤǤ¤ë¤Þ¤ÇPicoscope6»È¤Ã¤Æ¤¤¤¤Þ¤·¤ç¡Ä¡£
¡üarm-gcc¤¬µ×¡¹¤Î¹¹¿·
Arm GNU-GCC¤¬µ×¡¹¤Î¹¹¿·¤Ç¤¹¡£
¤È¤¤¤Ã¤Æ¤âGCC14¤Ç¤Ï¤Ê¤¯¤Þ¤ÀGCC13¤Î¤Þ¤Þ¤Ç¤¹¡Ä¡£
13.2->13.3¤Î¥Þ¥¤¥Ê¡¼¥Á¥§¥ó¥¸¤Ç¤¹¤Í¡£
¤Þ¤¿¡¢º£²ó¤Ï¥»¥¥å¥ê¥Æ¥£Âкö¤Î¥¢¥Ã¥×¥Ç¡¼¥È¤·¤Æ¤ª¤ê¤Þ¤¹¡£
Ʊ¤¸¥×¥í¥°¥é¥à¤ò¥Ó¥ë¥É¤·¤Æ¥Ð¥¤¥Ê¥ê¥µ¥¤¥º¤ÎÈæ³Ó¤Ç¤¹¡£
13.2Rel1(Á°¤Î¤ä¤Ä)
arm-none-eabi-gcc (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 13.2.1 20231009
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 479156 0 479156 74fb4 main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
477416 1740 39668 518824 7eaa8 main.elf
main.elf :
section size addr
.text 0x747fc 0x8000000
.ctors 0x0 0x80747fc
.dtors 0x0 0x80747fc
.eh_frame 0x54 0x80747fc
.ARM.exidx 0x98 0x8074850
.data 0x6cc 0x20000000
.bss 0x18a8 0x200006d0
.heap 0x0 0x20001f78
.ram2 0x0 0x20040000
.stack 0x0 0x20040000
.ram3 0x824c 0x20050000
.bkpram 0x0 0x40036400
.qspirom 0x0 0x90000000
.comment 0x44 0x0
.debug_frame 0x1e88 0x0
.ARM.attributes 0x38 0x0
.debug_line_str 0x1f2 0x0
Total 0x80b9e
13.3Rel1(¿·¤·¤¤¤Û¤¦)
arm-none-eabi-gcc (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24)) 13.3.1 20240614
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 478396 0 478396 74cbc main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
476624 1772 39668 518064 7e7b0 main.elf
main.elf :
section size addr
.text 0x744e4 0x8000000
.ctors 0x0 0x80744e4
.dtors 0x0 0x80744e4
.eh_frame 0x54 0x80744e4
.ARM.exidx 0x98 0x8074538
.data 0x6ec 0x20000000
.bss 0x18a8 0x200006f0
.heap 0x0 0x20001f98
.ram2 0x0 0x20040000
.stack 0x0 0x20040000
.ram3 0x824c 0x20050000
.bkpram 0x0 0x40036400
.qspirom 0x0 0x90000000
.comment 0x45 0x0
.debug_frame 0x1d98 0x0
.ARM.attributes 0x38 0x0
.debug_line_str 0x1f2 0x0
Total 0x807b7
Flash»ÈÍÑÎ̤ϸº¤ê¤Þ¤·¤¿¤¬¡Ä¡¢
¤¦¤¦¤à¼ã´³SRAM»ÈÍÑÎÌÁý¤¨¤Æ¤Þ¤¹¤Í¡Ä¡£

map¥Õ¥¡¥¤¥ë¤òÈæ³Ó¤·¤Æ¤Þ¤·¤¿¤¬newlib¤ÇSRAM¤Î»ÈÍÑÎ̤¬32byte¤Û¤ÉÁý¤¨¤Æ
¤ª¤ê¤Þ¤·¤¿¡£¡Ä¤Þ¤¡¤³¤ÎÄøÅ٤ʤéµöÍÆ¤ÎÈÏáÆ¤Ç¤·¤ç¤¦¡Ä¡£
°ì±þSTM32H5¤Çlibpng¤ÎDecode®Å٤Υѥե©¡¼¥Þ¥ó¥¹¤òÈæ³Ó¤·¤Æ¤ß¤Þ¤·¤¿¡£
13.2Rel1

13.3Rel1

¤¢¡Ä¤¢¤ê¤ê¡Ä
¤Á¤ç¤Ã¤È¤«¤Ê¤êÃÙ¤¯¤Ê¤Ã¤Æ¤ë¡Ä(»é´À
¡Ä
GCC14¤Ë´üÂÔ¤·¤Þ¤·¤ç¤¦¡Á¡ª¡ª
13.3Rel1¤ÎGDB¤ÏCortex-M33¥³¥¢¤Çbreakpoint¤¬¸ú¤«¤Ê¤¯¤Æ¥Ç¥Ð¥Ã¥°¤¬
¤Ç¤¤Ê¤¤¤³¤È¤¬È½ÌÀ¤·¤Þ¤·¤¿¡Ä(¿ʬ¥Ð¥°¤Ç¤¹)
¤Ò¤È¤ÄÁ°¤Î13.2Rel1¤Î¤ä¤Ä»È¤¤¤Þ¤·¤ç¤¦¡Ä
20240828ÄÉ:
13.3Rel1¤ÎGDB(GDB14)¤Ï¤Á¤ç¤Ã¤Èµ¬ÌϤ¬Â礤¤¥×¥í¥¯¥é¥à¤Ë¤Ê¤ë¤È
breakpoint¤¬¸ú¤«¤Ê¤¯¤Ê¤Ã¤Æ¥Ç¥Ð¥Ã¥°¤¬Á´¤¯¤Ç¤¤Ê¤¯¤Ê¤ë¤³¤È¤¬
ȽÌÀ¤·¤Þ¤·¤¿¡Äorz¤ª¤½¤é¤¯GDB¤Î¥Ð¥°¤Ã¤Ý¤¤µóư¤Ç¤¹¤¬¤Þ¤À¾ðÊó¤¬
½Ð¤½¤í¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Çº£¤Ï13.2Rel1¤Îarm-gcc¤ò»È¤Ã¤¿¤Û¤¦¤¬ÌµÆñ¤Ç¤¹¡Ä
¤É¤¦¤·¤Æ¤³¤ó¤Ê¤³¤È¤Ëorzorz
¡üÁȤ߹þ¤ß¸þ¤±¤ÎLTO¹Í»¡
¥ê¥ó¥¯»þºÇŬ²½(LinkTimeOptimization)¡£¤Í¤à¤¤¤µ¤ó¤Ï10ǯ°ÌÁ°¤Ë»È¤Ã¤¿ºÝ¤Ë
¥Ð¥°¤¬Â¿¤¯¤ÆÉõ°õ¤·¤Æ¤½¤ì¤Ã¤¤ê¤Ç¤·¤¿¡£¤³¤³ºÇ¶á¤Ï¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«¿§¡¹
Ä´¤Ù¤Æ¤ß¤Þ¤·¤¿¤¬¡¢¤¢¤Î¤³¤í¤ÈÈæ¤Ù¤Æ¤«¤Ê¤êÍÍÊѤï¤ê¤·¤Æ¤ë¤Î¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£
¤Þ¤º¤Ï¸ø¼°¤ÎLTO¤Î²òÀâ¤ò¤·¤Ã¤«¤ê¤ÈÆÉ¤ß¤È¤ª¤¹¤³¤È¡£
¤½¤Î¤¦¤¨¤ÇLTO¤Î¥Ó¥ë¥É¤òÀ®¸ù¤µ¤»¤ë¤¿¤á¤Ë¤Ï´ö¤Ä¤«¤Î¾ãÊɤ¬¤¢¤ê¤Þ¤·¤¿¡£
*FONTX2¤Î¥Õ¥¡¥¤¥ë¤òľÀܼè¤ê¹þ¤àincbin¤ÈÁêÀ¤¬°¤¤
LTO¤Ê¤·¤À¤È¥Ó¥ë¥É¤Ç¤¤ë¤Î¤ËLTO¤Ä¤±¤ë¤È¥¢¥»¥ó¥Ö¥é¤Ç¥¨¥é¡¼ÅǤ¤¤Æ¤³¤±¤ë¡£
LTO¤Î¾ì¹ç¤Ïmakefile¤¬¤¢¤ë¤È¤³¤í¤«¤é¤Î¥Õ¥ë¥Ñ¥¹¤ò»ØÄꤷ¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£

makefile¤¬Â¸ºß¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤ò»ØÄꤷ¤Ê¤ª¤¹¤³¤È¤Ç
¶ì¤·¤ßʶ¤ì¤ËÕû¤ò¤³¤¤¤¿¤è¤¦¤ÊÂкö¤Ç¤¹¤¬²¿¤È¤«Âнè¤Ç¤¤Þ¤·¤¿¡£
*°ú¿ô¤â½ÅÍ×
¥Ó¥ë¥É»þ¤ËÍ¿¤¨¤ë°ú¿ô¤â"-flto"¤À¤±¤¸¤ã¥À¥á¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢»î¹Ôºø¸í¤·¤¿·ë²Ì
°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤òÁ´ÉôÄɲ乤뤳¤È¤ÇLTO¥Ó¥ë¥É¤òãÀ®¤Ç¤¤Þ¤·¤¿¡£
-flto
-ffat-lto-objects
-fuse-linker-plugin
-flto-partition=none
STM32H5¤Î¥Ó¥ë¥É¥µ¥¤¥ºÈæ³Ó¤ò¤·¤Æ¤ß¤Þ¤·¤ç¤¦
LTO¤Ê¤·
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 478260 0 478260 74c34 main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
476488 1772 39668 517928 7e728 main.elf
LTO¤¢¤ê
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 473372 0 473372 7391c main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
471608 1764 39672 513044 7d414 main.elf
5kByte¼åºï¸º¤Ç¤¤Þ¤·¤¿¡£SRAM¾ÃÈñÎ̤âÈùÎ̤ʤ¬¤é¸º¤Ã¤Æ¤Þ¤¹¤Í¡£
¤â¤Á¤í¤óLTO¤¢¤ê¤Ç¤â¤Á¤ã¤ó¤È¥×¥í¥°¥é¥à¤Ïµ¡Ç½¤·¤Þ¤¹¡£
Â絬ÌÏ¥×¥í¥¸¥§¥¯¥È¤Ê¤Î¤Ç¸ú²Ì¤Ï´¶¤¸¤Å¤é¤¤¤Ç¤¹¤¬STM32C0¤È¤«¤Î
¾®µ¬ÌÏ¤Ê¥×¥í¥°¥é¥à¤Ê¤éºï¸º¸ú²Ì¤ò¤«¤Ê¤ê¼Â´¶¤Ç¤¤ë¤È»×¤¤¤Þ¤¹¡£

¤¢¤È¥ê¥ó¥¯Ãʳ¬¤ÇÊѤʥ¥Ë¥ó¥°½Ð¤ë¤ó¤Ç¤¹¤±¤ÉÂоÝÊýË¡ÃΤäƤë¿Í¤¤¤¿¤é
¶µ¤¨¤Æ¤¯¤À¤Á¡£
¡ümbed¥µ½ª
¤Ä¤¤¤ËÍè¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤Í¡Ä
¤Í¤à¤¤¤µ¤ó¤â¤Û¤È¤ó¤É»ÈÍѤ·¤Ê¤¤¤Þ¤Þ¤³¤³¤Þ¤ÇÍè¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬
»þÂå¤ÎµØ²Ö¤È¤·¤Æ¿Í¡¹¤Îµ²±¤Ë»Ä¤ë¤Ç¤·¤ç¤¦¡Ä(2026ǯ´°Á´½ªÎ»)¡£
¤Í¤à¤¤¤µ¤óŪ¤Ë¤Ï¥ª¥ó¥é¥¤¥ó¥³¥ó¥Ñ¥¤¥é¤Ï°µÅÝŪ¤ËÁêÀ°¤¯¤Æ¤ä¤Ã¤Ñ¤ê
PC¤ÇÉáÄ̤˥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Î¤¬¿È¤Î¾æ¤Ë¹ç¤Ã¤Æ¤¤¤ë¤È´¶¤¸¤Þ¤·¤¿¡£
¡üSTLinkV3¤ÏSTÀ½°Ê³°¤Î¥Þ¥¤¥³¥ó¤òÇÓÀͤ¹¤ë¡ª¼Â¼ÁSTM32ÀìÍÑŽ¯¡ª
¤Þ¤Â¤Ç¤¹¤«¡Ä¡¢OpenOCD¤«¤é¤â»È¤¨¤Ê¤¤¤È¤Ï¡Ä¡ª
½©·î¤ÇÇä¤Ã¤Æ¤ë¤ä¤ÄÇã¤ï¤Ê¤¤¤Ç¤è¤«¤Ã¤¿¡Ä¡ª
¼Â¼ÁSTM32°Ê³°¤Î¾¼ÒÀ½¤ÎCortex-M¤Î¥Þ¥¤¥³¥ó¤Î¥Õ¥é¥Ã¥·¥å½ñ¤¹þ¤ß¤Ï
¤ª¤í¤«¥³¥¢¤Ëconnect¤¹¤é¤Ç¤¤Ê¤¤¤è¤¦¤Ç¤¹¡Ä¡£


°ìÊý¤Ç¼ê»ý¤Á¤ÎSTLink/V2·Ï¤ÏÂç¾æÉפʤΤ«¤É¤¦¤«¼ÂºÝ¤Ë³Îǧ¤·¤Æ¤ß¤Þ¤·¤¿¡£
»ÈÍѤ·¤¿¤Î¤Ï¤ª¤½¥í¥·¥¢¤ÎÎϤÇSWIM¤Ë̵Íý¤ä¤êÂбþ¤µ¤»¤¿STM32F0Discovery
ÉÕ°¤ÎSTLink/V2¤Ç¤¹¡ÄÁê¼ê¤Ïº£¤ÏË´¤LPC810¤Ç¤¹¡ª
¤Þ¤º¤ÏHLA¤È¤·¤ÆÀܳ
> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd -s C:/Devz/ARM/OCD/tcl -f interface/stlink-v2.cfg -c "transport select hla_swd" -f target/lpc81x_swd_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.12.0+dev-00682-gefe902219 (2024-08-12-08:52)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
DEPRECATED! use 'gdb target_description', not 'gdb_target_description'
Info : clock speed 1000 kHz
Info : STLINK V2J45S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 2.905861
Info : [lpc81x.cpu] Cortex-M0+ r0p0 processor detected
Info : [lpc81x.cpu] target has 4 breakpoints, 2 watchpoints
Info : [lpc81x.cpu] Examination succeed
Info : [lpc81x.cpu] starting gdb server on 3333
Info : Listening on port 3333 for gdb connections
[lpc81x.cpu] halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x1fff0008 msp: 0x10000ffc
Info : wrote 3072 bytes from file main.elf in 1.093837s (2.743 KiB/s)
Info : verified 3072 bytes in 0.055933s (53.636 KiB/s)
shutdown command invoked
> Process Exit Code: 0
> Time Taken: 00:01
¤ª¼¡¤ÏDAPDirect¤ÇÀܳ
> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd -s C:/Devz/ARM/OCD/tcl -f interface/stlink-dap.cfg -c "transport select dapdirect_swd" -f target/lpc81x_swd_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.12.0+dev-00682-gefe902219 (2024-08-12-08:52)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
DEPRECATED! use 'gdb target_description', not 'gdb_target_description'
Info : STLINK V2J45S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 2.882555
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
Info : stlink_dap_op_connect(connect)
Info : SWD DPIDR 0x0bc11477
Info : [lpc81x.cpu] Cortex-M0+ r0p0 processor detected
Info : [lpc81x.cpu] target has 4 breakpoints, 2 watchpoints
Info : [lpc81x.cpu] Examination succeed
Info : [lpc81x.cpu] starting gdb server on 3333
Info : Listening on port 3333 for gdb connections
[lpc81x.cpu] halted due to breakpoint, current mode: Thread
xPSR: 0xf1000000 pc: 0x1fff0008 msp: 0x10000ffc
Info : wrote 3072 bytes from file main.elf in 1.219387s (2.460 KiB/s)
Info : verified 3072 bytes in 0.063133s (47.519 KiB/s)
shutdown command invoked
> Process Exit Code: 0
> Time Taken: 00:03

¥Õ¥¡¡¼¥à¤ÎVer¤Ï20240821ºÇ¿·¤ÎV2J45S7¤ò»ÈÍѤ·¤Æ¤ª¤ê¤Þ¤¹¤¬¡¢
STLink/V2¤Î¥Ï¡¼¥É¥¦¥¨¥¢¤Ê¤é¾¼ÒÀ½Cortex-M¥Þ¥¤¥³¥ó¤Ç¤âÂç¾æÉפʤ褦¤Ç¤¹¤Í¡Ä
¡ü¤½¤·¤Æ¤Ñ¤Á¤â¤óSTLinkV2¤Ë¤â¥Ñ¥Á¥â¥óÂкö¤¬
¤Þ¤¡¤³¤ó¤Ê¤³¤Ã¤¿¤í¤¦¤È»×¤Ã¤Æ¤¤¤Þ¤·¤¿¤¬¡¢ÁÆÀ½Íð¤¤Ç¹¤Þ¤Ã¤Æ¤¤¤ëÃæ²ÚÀ½µ¶Êª
STLink/V2¤ò¸¡ÃΤ·¤¿¤é¥·¥ê¥¢¥ëÈÖ¹æ¤ò"C"¤Ë¤·¤Æ¤·¤Þ¤¦¥Õ¥¡¡¼¥à¥¦¥¨¥¢¤¬È¯Æ°
¤·¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£
STM32CubeProgrammer¤Ç¤Ï¤³¤Î¥·¥ê¥¢¥ë¤ò¤â¤Ä¤Ñ¤Á¤â¤óSTLink/V2¤¬
»ÈÍѤǤ¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
OpenOCD¤«¤é¤Ï¤Þ¤ÀÂç¾æÉפäݤ¤¤Ç¤¹¤¬¤³¤Á¤é¤â·ê¤¬¤Õ¤µ¤¬¤ì¤½¤¦¤Ç¤¹¤Í¡£

¤Á¤Ê¤ß¤Ë¤Í¤à¤¤¤µ¤ó¤¬STM8¥Þ¥¤¥³¥ó¤ÎÆÉ¤ß½ñ¤¤¹¤ë¤¿¤á¤Ë¤ª¤½¥í¥·¥¢¤ÎÎϤò
»È¤Ã¤Æ²þ¤¤·¤¿STLink/V2¤Ï¥·¥ê¥¢¥ëÈÖ¹æ¤Ï"C"¤Ç¤Ï¤Ê¤«¤Ã¤¿¤Î¤Ç¥»¡¼¥Õ¤Ç¤·¤¿¡£
¶²¤é¤¯Àµµ¬¤ÎSTM32¥Þ¥¤¥³¥ó¤ò»ÈÍѤ·¤Æ¤¤¤ë¤«Èݤ«¤ÇȽÊ̤·¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¤Í¡£
STM32H5¤ò»È¤Ã¤Æ¤ß¤ë4 -STM32L5¤Î»þ¤ß¤¿¤¤¤ËOCTO-SPI¤ò»È¤Ã¤Æ¤ß¤ë-
20240516ÄÉ:
½©·î¤µ¤ó¤è¤êNUCLEO-H563ZIÈÎÇ䳫»Ï¤Ç¤¹¡ª¡ª
20240516ÄÉ:
¤Ä¤¤ºÇ¶á¡¢STM32H7¥·¥ê¡¼¥º¤ËSTM32H7R/S¤È¤¤¤¦¤«¤Ê¤êÀí¤Ã¤¿Éʼ郎
Äɲ䵤ì¤Þ¤·¤¿¤¬»×¤¤½Ð¤·¤¿¤è¤¦¤ËSTM32H5¤ò¿¨¤Ã¤Æ¤¤¤³¤¦¤È»×¤¤¤Þ¤¹¡£
20240321ÄÉ:
STM32U0¥·¥ê¡¼¥º¤Ê¤ó¤Æ¤Î¤â½Ð¸½¤·¤Æ¤Þ¤·¤¿¡Ä¡ª¡ª
20240321ÄÉ:
º£²ó¤âSTM32H563ZI-NUCLEO¤ò»ÈÍѤ·¤¿FatFs¤Î°Ü¿¢¥Ç¥â¤Î¥½¡¼¥¹¥³¡¼¥É¤ò
»ÈÍѤ·¤Æ²òÀ⤷¤Æ¤¤¤¤Þ¤¹¡£
¡üSTM32L5¤«¤é¿Ê²½¤·¤¿STM32H5¤ÎOCTO-SPI
STM32H5¤ÎOCTO-SPI¤Ï¥Ý¥Ô¥å¥é¡¼¤ÊQUADSPI-ROM¤À¤±¤Ç¤Ï¤Ê¤¯¡¢ºÇÂç
16bit¤Ê¥¯¥í¥Ã¥¯¥É¥·¥ê¥¢¥ëROM/PSRAM¤Ê¤ó¤«¤âÀܳ²Äǽ¤Ç¡¢¤â¤Á¤í¤ó
¥á¥â¥ê¥Þ¥Ã¥×¥É¤Ê¥¢¥¯¥»¥¹¤¬²Äǽ¤È¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£
¥·¥ê¥¢¥ë¤Ê¤Î¤Ë16bit¤â¥Ñ¥é¥ì¥ë¤Ã¤Æ¤Ê¤ó¤Ê¤ó¤À¤è¤È¾ï¤Ë´¶¤¸¤Æ¤Þ¤¹¤¬
»þÂå¤Ï¾ï¤Ë¿Ê²½¤·¤Æ¤¤¤Ã¤Æ¤¤¤ë¤Ê¤ÈƱ¤¸¤¯´¶¤¸¤Æ¤ª¤ê¤Þ¤¹(º®Íð)¡£
sirius506¤µ¤ó¤Ï¤½¤ó¤ÊOCTO-SPI¤ò´°Á´¤Ë»È¤¤¤³¤Ê¤·DOOM¤È¤¤¤¦¥²¡¼¥à¤ò
°Ü¿¢¤µ¤ì¤Æ¤ª¤ê¡¢¤Û¤ó¤È¤Ë´¶¿´¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡Ä
¤Í¤à¤¤¤µ¤ó¤ÏÁȤ߹þ¤ß·Ï³¦·¨¤ÎÃæ¤Ç¤Ï»¨µû¥¥ã¥é¤Ë²á¤®¤Ê¤¤¤Î¤Ç¤½¤ó¤Ê
¹âÅ٤ʤ³¤È¤Ï¤Ç¤¤º¡¢´ðËÜÃæ¤Î´ðËܤÎQSPI-ROM¤òÀܳ¤·¤Æ¥á¥â¥ê
¥Þ¥Ã¥×¥É¥â¡¼¥É¤ÇÆÉ¤ß½Ð¤·ÀìÍÑ¤ÇÆ°¤«¤¹¤³¤È¤«¤é¤ä¤Ã¤Æ¤¤Þ¤¹¡£
OCTO-SPI¤Ë¤Ä¤¤¤Æ¤ÏST¸ø¼°¤ÎAN5050¤â¤·¤Ã¤«¤ê½ÏÆÉ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡üSTM32H5¤ÎOCTO-SPI¤ò¥á¥â¥ê¥Þ¥Ã¥×¥É¥â¡¼¥É¤Çư¤«¤¹¥³¡¼¥É
°Ü¿¢¤ËÅö¤¿¤Ã¤Æ¤ÏSTM32L5¤Î¤ä¤Ä¤ò¤½¤Î¤Þ¤Þ¥¹¥é¥¤¥É°Ü¿¢¡Ä¤È¤¤¤¦¤ï¤±¤Ë¤Ï
´Êñ¤Ë¤¤¤«¤º¡¢L5¤ÎOCTO-SPI¤Î¥³¡¼¥É¤«¤é¾¯¤·²þÊѤ¬É¬ÍפǤ·¤¿¡£
¤½¤ÎÁ°¤Ë¡¢STM32H563ZI-NUCLEO¤ÇOCTO-SPI¤ò»È¤¦ºÝ¤ÏSB70¤ò¥¸¥ã¥ó¥Ñ¤·¤Æ
PE2(COTO-SPI IO2)¤ò³°Éô¤Ë°ú¤½Ð¤»¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤Î¤ò˺¤ì¤Ê¤¤¤Ç
¤¯¤À¤µ¤¤¤Í¡£
¤½¤ì¤Ç¤ÏSTM32H5¤ÎOCTO-SPI¤Î¥á¥â¥ê¥Þ¥Ã¥×¥É¥â¡¼¥É¤Ç»È¤¦¤¿¤á¤Î¥³¡¼¥É¤ò
¾Ò²ð¤·¤Þ¤¹¡£¤Þ¤º¤ÏI/O
/**************************************************************************/
/*!
@brief OCTO-SPI GPIO Configuration.
@param None.
@retval None.
*/
/**************************************************************************/
void OSPI_IoInit_If(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
/* Initializes the peripherals clock */
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_OSPI;
PeriphClkInit.OspiClockSelection = RCC_OSPICLKSOURCE_HCLK;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
{
for(;;);
}
/* Peripheral clock enable */
__HAL_RCC_OSPI1_CLK_ENABLE();
/* Alternate GPIO enable */
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOE_CLK_ENABLE();
__HAL_RCC_GPIOG_CLK_ENABLE();
/* PD11 as OSPI_IO0 */
GPIO_InitStruct.Pin = GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF9_OCTOSPI1;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* PD12 as OSPI_IO1 */
GPIO_InitStruct.Pin = GPIO_PIN_12;
GPIO_InitStruct.Alternate = GPIO_AF9_OCTOSPI1;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* PE2 as OSPI_IO2(Need SB70 SolderBridge) */
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Alternate = GPIO_AF9_OCTOSPI1;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/* PD13 as OSPI_IO3 */
GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Alternate = GPIO_AF9_OCTOSPI1;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* PB2 as OSPI_CLK */
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Alternate = GPIO_AF9_OCTOSPI1;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* PG6 as OSPI_NCS */
GPIO_InitStruct.Pin = GPIO_PIN_6;
GPIO_InitStruct.Alternate = GPIO_AF10_OCTOSPI1;
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
}
¤ª¼¡¤ÏOCTO-SPI¤Î¥á¥â¥ê¥Þ¥Ã¥×¥É¥â¡¼¥É¤Î½é´ü²½¤Ç¤¹¡£
/**************************************************************************/
/*!
@brief Configure OCTO-SPI as Memory Mapped Mode.
Winbond W25Q128JVSIQ specific setting.
* Address size is 24bit(16MBytes).
* Initially sets QUAD-MODE(not need quadmode command).
* MAX 133MHz CLK.
* Support "XIP",thus suitable for MemoryMappedMode.
@param None.
@retval None.
*/
/**************************************************************************/
void Set_OSPI_MemoryMappedMode(void)
{
XSPI_RegularCmdTypeDef sCommand = {0};
XSPI_MemoryMappedTypeDef sMemMappedCfg = {0};
uint8_t reg_data =0;
/* Initialize OCTO-SPI I/O */
OSPI_IoInit_If();
/* Initialize OCTO-SPI */
hxspi.Instance = OCTOSPI1;
hxspi.Init.FifoThresholdByte = 1;
hxspi.Init.MemoryMode = HAL_XSPI_SINGLE_MEM;
hxspi.Init.MemoryType = HAL_XSPI_MEMTYPE_MICRON;
hxspi.Init.MemorySize = 23; /* 128Mbit=16MByte=2^(23+1) W25Q128JVSIQ */
hxspi.Init.ChipSelectHighTimeCycle = 4; /* 4ClockCycle(16nSec@250MHzMAX) Need for W25Q128JVSIQ >10nSec@read */
hxspi.Init.FreeRunningClock = HAL_XSPI_FREERUNCLK_DISABLE;
hxspi.Init.ClockMode = HAL_XSPI_CLOCK_MODE_0;
hxspi.Init.WrapSize = HAL_XSPI_WRAP_NOT_SUPPORTED;
hxspi.Init.ClockPrescaler = 1; /* 250MHzMAX/(1+1) = 125MHz (Allowed SDR Clock is 150MHz@3.3V) */
hxspi.Init.SampleShifting = HAL_XSPI_SAMPLE_SHIFT_HALFCYCLE;
hxspi.Init.DelayHoldQuarterCycle = HAL_XSPI_DHQC_DISABLE;
hxspi.Init.ChipSelectBoundary = 0;
hxspi.Init.DelayBlockBypass = HAL_XSPI_DELAY_BLOCK_BYPASS;
hxspi.Init.Refresh = 0;
if (HAL_XSPI_Init(&hxspi) != HAL_OK)
{
for(;;);
}
/* Enable Reset --------------------------- */
/* Common Commands */
sCommand.OperationType = HAL_XSPI_OPTYPE_COMMON_CFG;
sCommand.IOSelect = HAL_XSPI_SELECT_IO_3_0;
sCommand.InstructionDTRMode = HAL_XSPI_INSTRUCTION_DTR_DISABLE;
sCommand.AddressDTRMode = HAL_XSPI_ADDRESS_DTR_DISABLE;
sCommand.DataDTRMode = HAL_XSPI_DATA_DTR_DISABLE;
sCommand.DQSMode = HAL_XSPI_DQS_DISABLE;
sCommand.SIOOMode = HAL_XSPI_SIOO_INST_EVERY_CMD;
sCommand.AlternateBytesMode = HAL_XSPI_ALT_BYTES_NONE;
sCommand.AlternateBytes = HAL_XSPI_ALT_BYTES_NONE;
sCommand.AlternateBytesWidth = HAL_XSPI_ALT_BYTES_NONE;
sCommand.AlternateBytesDTRMode = HAL_XSPI_ALT_BYTES_DTR_DISABLE;
sCommand.InstructionMode = HAL_XSPI_INSTRUCTION_1_LINE;
sCommand.InstructionWidth = HAL_XSPI_INSTRUCTION_8_BITS;
sCommand.AddressWidth = HAL_XSPI_ADDRESS_24_BITS;
/* Instruction */
sCommand.Instruction = 0x66; /* Reset Enable W25Q128JVSIQ */
/* Address */
sCommand.AddressMode = HAL_XSPI_ADDRESS_NONE;
sCommand.Address = 0;
/* Data */
sCommand.DataMode = HAL_XSPI_DATA_NONE;
sCommand.DataLength = 0;
sCommand.DummyCycles = 0;
if (HAL_XSPI_Command(&hxspi, &sCommand, HAL_XSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
for(;;);
}
/* Reset Device --------------------------- */
/* Common Commands */
sCommand.OperationType = HAL_XSPI_OPTYPE_COMMON_CFG;
sCommand.IOSelect = HAL_XSPI_SELECT_IO_3_0;
sCommand.InstructionDTRMode = HAL_XSPI_INSTRUCTION_DTR_DISABLE;
sCommand.AddressDTRMode = HAL_XSPI_ADDRESS_DTR_DISABLE;
sCommand.DataDTRMode = HAL_XSPI_DATA_DTR_DISABLE;
sCommand.DQSMode = HAL_XSPI_DQS_DISABLE;
sCommand.SIOOMode = HAL_XSPI_SIOO_INST_EVERY_CMD;
sCommand.AlternateBytesMode = HAL_XSPI_ALT_BYTES_NONE;
sCommand.AlternateBytes = HAL_XSPI_ALT_BYTES_NONE;
sCommand.AlternateBytesWidth = HAL_XSPI_ALT_BYTES_NONE;
sCommand.AlternateBytesDTRMode = HAL_XSPI_ALT_BYTES_DTR_DISABLE;
sCommand.InstructionMode = HAL_XSPI_INSTRUCTION_1_LINE;
sCommand.InstructionWidth = HAL_XSPI_INSTRUCTION_8_BITS;
sCommand.AddressWidth = HAL_XSPI_ADDRESS_24_BITS;
/* Instruction */
sCommand.Instruction = 0x99; /* Reset W25Q128JVSIQ */
/* Address */
sCommand.AddressMode = HAL_XSPI_ADDRESS_NONE;
sCommand.Address = 0;
/* Data */
sCommand.DataMode = HAL_XSPI_DATA_NONE;
sCommand.DataLength = 0;
sCommand.DummyCycles = 0;
if (HAL_XSPI_Command(&hxspi, &sCommand, HAL_XSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
for(;;);
}
/* Enter Quad-SPI Mode --------------------------- */
/* Common Commands */
sCommand.OperationType = HAL_XSPI_OPTYPE_COMMON_CFG;
sCommand.IOSelect = HAL_XSPI_SELECT_IO_3_0;
sCommand.InstructionDTRMode = HAL_XSPI_INSTRUCTION_DTR_DISABLE;
sCommand.AddressDTRMode = HAL_XSPI_ADDRESS_DTR_DISABLE;
sCommand.DataDTRMode = HAL_XSPI_DATA_DTR_DISABLE;
sCommand.DQSMode = HAL_XSPI_DQS_DISABLE;
sCommand.SIOOMode = HAL_XSPI_SIOO_INST_EVERY_CMD;
sCommand.AlternateBytesMode = HAL_XSPI_ALT_BYTES_NONE;
sCommand.AlternateBytes = HAL_XSPI_ALT_BYTES_NONE;
sCommand.AlternateBytesWidth = HAL_XSPI_ALT_BYTES_NONE;
sCommand.AlternateBytesDTRMode = HAL_XSPI_ALT_BYTES_DTR_DISABLE;
sCommand.InstructionMode = HAL_XSPI_INSTRUCTION_1_LINE;
sCommand.InstructionWidth = HAL_XSPI_INSTRUCTION_8_BITS;
sCommand.AddressWidth = HAL_XSPI_ADDRESS_24_BITS;
/* Instruction */
sCommand.Instruction = 0x31; /* Set Status2 W25Q128JVSIQ */
/* Address */
sCommand.AddressMode = HAL_XSPI_ADDRESS_NONE;
sCommand.Address = 0;
/* Data */
sCommand.DataMode = HAL_XSPI_INSTRUCTION_1_LINE;
sCommand.DataLength = 1;
sCommand.DummyCycles = 0;
reg_data = 0x02; /* Enable QuadI/O Mode */
if (HAL_XSPI_Command(&hxspi, &sCommand, HAL_XSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
for(;;);
}
if (HAL_XSPI_Transmit(&hxspi, ®_data, HAL_XSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
for(;;);
}
/* Enter MemoryMappedMode --------------------------- */
/* Read Commands */
sCommand.OperationType = HAL_XSPI_OPTYPE_READ_CFG;
sCommand.IOSelect = HAL_XSPI_SELECT_IO_3_0;
sCommand.InstructionDTRMode = HAL_XSPI_INSTRUCTION_DTR_DISABLE;
sCommand.AddressDTRMode = HAL_XSPI_ADDRESS_DTR_DISABLE;
sCommand.DataDTRMode = HAL_XSPI_DATA_DTR_DISABLE;
sCommand.DQSMode = HAL_XSPI_DQS_DISABLE;
sCommand.SIOOMode = HAL_XSPI_SIOO_INST_EVERY_CMD;
sCommand.AlternateBytesMode = HAL_XSPI_ALT_BYTES_4_LINES;
sCommand.AlternateBytes = 0xFF; /* Need for Fast Read QUAD W25Q128JVSIQ */
sCommand.AlternateBytesWidth = HAL_XSPI_ALT_BYTES_8_BITS;
sCommand.AlternateBytesDTRMode = HAL_XSPI_ALT_BYTES_DTR_DISABLE;
sCommand.InstructionMode = HAL_XSPI_INSTRUCTION_1_LINE;
sCommand.InstructionWidth = HAL_XSPI_INSTRUCTION_8_BITS;
sCommand.AddressWidth = HAL_XSPI_ADDRESS_24_BITS;
/* Instruction */
sCommand.Instruction = 0xEB; /* Fast Read QUAD W25Q128JVSIQ */
/* Address */
sCommand.AddressMode = HAL_XSPI_ADDRESS_4_LINES;
sCommand.Address = 0;
/* Data */
sCommand.DataMode = HAL_XSPI_DATA_4_LINES;
sCommand.DataLength = 0;
sCommand.DummyCycles = 4; /* DUMMY 4Cycle for Fast Read QUAD W25Q128JVSIQ */
if(HAL_XSPI_Command(&hxspi, &sCommand, HAL_XSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
for(;;);
}
/* Write Commands */
sCommand.OperationType = HAL_XSPI_OPTYPE_WRITE_CFG;
sCommand.IOSelect = HAL_XSPI_SELECT_IO_3_0;
sCommand.InstructionDTRMode = HAL_XSPI_INSTRUCTION_DTR_DISABLE;
sCommand.AddressDTRMode = HAL_XSPI_ADDRESS_DTR_DISABLE;
sCommand.DataDTRMode = HAL_XSPI_DATA_DTR_DISABLE;
sCommand.DQSMode = HAL_XSPI_DQS_DISABLE;
sCommand.SIOOMode = HAL_XSPI_SIOO_INST_EVERY_CMD;
sCommand.AlternateBytesMode = HAL_XSPI_ALT_BYTES_NONE;
sCommand.AlternateBytes = HAL_XSPI_ALT_BYTES_NONE;
sCommand.AlternateBytesWidth = HAL_XSPI_ALT_BYTES_NONE;
sCommand.AlternateBytesDTRMode = HAL_XSPI_ALT_BYTES_DTR_DISABLE;
sCommand.InstructionMode = HAL_XSPI_INSTRUCTION_1_LINE;
sCommand.InstructionWidth = HAL_XSPI_INSTRUCTION_8_BITS;
sCommand.AddressWidth = HAL_XSPI_ADDRESS_24_BITS;
/* Instruction */
sCommand.Instruction = 0x32; /* Page Write QUAD W25Q128JVSIQ */
/* Address */
sCommand.AddressMode = HAL_XSPI_ADDRESS_1_LINE;
sCommand.Address = 0;
/* Data */
sCommand.DataMode = HAL_XSPI_DATA_4_LINES;
sCommand.DataLength = 0;
sCommand.DummyCycles = 0;
if(HAL_XSPI_Command(&hxspi, &sCommand, HAL_XSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
for(;;);
}
/* Set OCTO-SPI as MemoryMappedMode */
sMemMappedCfg.TimeOutActivation = HAL_XSPI_TIMEOUT_COUNTER_DISABLE;
sMemMappedCfg.TimeoutPeriodClock = 0;
if(HAL_XSPI_MemoryMapped(&hxspi, &sMemMappedCfg) != HAL_OK)
{
for(;;);
}
}
STM32H5¤ÎOCTO-SPI¤ÎHAL¤ÏL5¤ÈÈù̯¤Ë°ã¤Ã¤Æ¤ª¤ê"HAL_OSPI"¤À¤Ã¤¿¤Î¤¬
"HAL_XSPI"¤ËÊѤï¤Ã¤Æ¤¿¤ê¤·¤Æ°Ü¿¢¤ÎºÝ¤á¤Ã¤Á¤ãݵƫ¤·¤«¤Ã¤¿¤Î¤Ç¤¹¤¬
´ðËÜŪ¤ÊÀßÄê¤Îή¤ì¤ÏL5¤Î»þ¤È¤½¤³¤Þ¤ÇÊѤï¤Ã¤Æ¤ª¤ê¤Þ¤»¤ó¡£
ÆÃÉ®¤¹¤Ù¤¤ÏSTM32H5¤Ï250MHz¤Çưºî¤¹¤ë¤Î¤ÇW25Q128JVSIQ(ºÇÂç133MHz)
¤ËÂФ·¤Æ125MHz¤È¤¤¤¦²á·ã¤Ê¥¹¥Ô¡¼¥É¤Î¥¯¥í¥Ã¥¯¤¬¶¡µë²Äǽ¤ÇÈó¾ï¤Ë¹â®¤Ê
ưºî¤¬²Äǽ¤Ç¤¹¡ª¤·¤«¤â¥Ç¡¼¥¿¥¥ã¥Ã¥·¥å¤â¤Ä¤¤¤Æ¤Þ¤¹¡ª
¤Á¤Ê¤ß¤ËSTM32H5¤ÎOCTO-SPI¤ÎºÇÂç¶¡µë¥¯¥í¥Ã¥¯¤Ï150MHz(3.3V»þ)¤Þ¤Ç
²Äǽ¤È¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£
¡ü¼ÂºÝ¤Ëư¤«¤·¤Æ¤ß¤ë
¤Æ¤¤¤¦¤«¥Ý¥ê¥¦¥ì¥¿¥óÈïʤƼÀþ¤ÇQSPI-ROM¤ØÇÛÀþ°ú¤¿¤Ð¤·¤Æ¤Û¤ó¤È¤Ë
125MHz¤Çư¤¤¤Æ¥ó¤Î¤«¤È¼«Ê¬¤Ç¤âëä·¤ó¤Ç¤¤¤Þ¤·¤¿¤Î¤Ç¼ÂºÝ¤Ë¥¯¥í¥Ã¥¯¤Î
ÇÈ·Á¤ò¬Äꤷ¤Æ¤ß¤Þ¤·¤¿¡£
»ÈÍѤ·¤¿¥ª¥·¥í¤ÏPicoscope5444D MSO¤Ç¤¹¡£¤½¤¦¤À¤ÍÀëÅÁ¤À¤Í¡£

Picoscope5444D MSO¤Î¥¢¥Ê¥í¥°ÂÓ°è200MHz¤Ê¤Î¤Ë125MHz¤Î¹â®¿®¹æÂ¬¤ë¤Î
¤É¤¦¤Ê¤Î¤È¤ª»×¤¤¤Ç¤·¤ç¤¦¤¬Â¬Äê¸Â³¦¤òÂçÉý¤Ëͤ¨¤Æ¤¤¤Þ¤¹¤¬ETS¥â¡¼¥É¤Ç
¬Äꤷ¤¿¸Â¤ê¤Ç¤Ï¤¤Ã¤Á¤ê125MHz¤Î¥¯¥í¥Ã¥¯¤¬½Ð¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£

¤Í¤à¤¤¤µ¤ó¤ÏQSPI-ROM¤òFONTX2¤ò³ÊǼ¤¹¤ë¤Î¤Ë»È¤Ã¤Æ¤¤¤Þ¤¹¤¬¤³¤ó¤Ê´¶¤¸¤Ç
ʸ»úÊø¤ì¤âµ¯¤³¤µ¤º¤¤ì¤¤¤Ëɽ¼¨¤Ç¤¤Æ¤ª¤ê¤Þ¤¹¡ª
¼êÇÛÀþ¤Î¸Â³¦¤ËÄ©¤ó¤À´¶¤¸¤Ç¤¹¤¬¤Þ¤¡SCLK¤Ï°ì±þ33ohm¤ÇľÎó½ªÃ¼¤Ï
¤·¤Æ¤¤¤ë¤Î¤Ç¤½¤ì¤¬¸ú¤¤¤Æ°ÂÄꤷ¤ÆÆ°ºî¤·¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¡Á¡£
¡ü¤ª¤Þ¤±¡¦STM32L5¤È¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹Èæ³Ó
¤»¤Ã¤«¤¯²¼ÂÌ´ðÈĺî¤Ã¤Æ¥Ï¡¼¥ÉŪ¤ËƱ¤¸¾ò·ï¤¬Â·¤¨¤Æ¤ë¤Î¤ÇSTM32L5¤È
STM32H5¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹Èæ³Ó¤È¤«¤ä¤Ã¤Æ¤ß¤Þ¤·¤¿¡£
Ʊ°ì¤Îpng¥Õ¥¡¥¤¥ë¤Çlibpng¤ò»È¤Ã¤¿¥Ç¥³¡¼¥É»þ´Ö¤òÈæ³Ó¤·¤Æ¤ß¤Þ¤·¤¿¡£

☝STM32L5¤Î¾ì¹ç(ưºî¥¯¥í¥Ã¥¯:110MHz)

☝STM32H5¤Î¾ì¹ç(ưºî¥¯¥í¥Ã¥¯:250MHz)
¤¦¡Á¤à¤ä¤Ï¤ê°µÅÝŪ¤Ë°ã¤¤¤Þ¤¹¤Í¡Á¤È¤¤¤¦¤«¤Í¤à¤¤¤µ¤ó¤¬STM32H5¤Î
¥Ñ¥ï¡¼¤ò»ý¤ÆÍ¾¤·¤Æ¤Æ¤Þ¤À¤Þ¤Àµ¡Ç½¤Î°ì°®¤ê¤â»È¤¨¤Æ¤Ê¤¤¤Î¤Ç´èÄ¥¤Ã¤Æ
»È¤¤¤³¤Ê¤·¤Æ¤¤¤³¤¦¤È»×¤¤¤Þ¤¹¡ª¤³¤ì¤«¤é¤â´èÄ¥¤ë¤¾¤¤¡ª
¤¤¤í¤¤¤í»î¤¹60
¤¤¤í¤¤¤í»î¤·¤Æ¤¤Æ¤Ä¤¤¤Ë60²ó¤ò·Þ¤¨¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬
¤Û¤ó¤Ã¤ÈÂ礷¤¿¤³¤È¤ä¤Ã¤Æ¤Þ¤»¤ó¤Í¡Ä
¡ü¤Ö¤í¤°¤Î²èÁü¤Î½¤Àµ¤¹¤Ù¤Æ´°Î»¤Î·ï
2016ǯ¤«¤é¤Ï¤ä7ǯ¤â·Ð²á¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬dropbox¤Î»ÅÍÍÊѹ¹¤Î¤¢¤ª¤ê¤ò
¼õ¤±¤ÆÉ½¼¨¤Ç¤¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤¿²èÁü¤Ç¤¹¤¬¤¹¤Ù¤Æ½¤Àµ¤¬´°Î»Ãפ·¤Þ¤·¤¿¡ª¡ª
Ť«¤Ã¤¿¡Ä°ìÈÖ¤·¤ó¤É¤«¤Ã¤¿¤Î¤ÏÅ쳤¼«Á³ÊâÆ»¤äÅл³´ØÏ¢¤ÎĶÂçÎ̤Î
²èÁü¤Îº¹¤·Âؤ¨ºî¶È¤Ç¤·¤¿¤¬¤Ê¤ó¤È¤«¤¹¤Ù¤Æ¤³¤Ê¤¹¤³¤È¤¬¤Ç¤¤Þ¤·¤¿¡Ä
¤â¤¦10ǯ°Ê¾åÁ°¤Ë¤Ê¤ë¤â¤Î¤â¤¢¤Ã¤ÆËÜÅö¤Ëǯ·î¤ò´¶¤¸¡Ä
¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¡ª¡ª¡ª¡ª£±£±£±¡ª¡ª¡ª£±
¸½ºß¤ÏEDGE¤Ç¸«¤¿ºÝ¤Ëɽ¼¨¤¬Êø¤ì¤Ê¤¤¤è¤¦¤Ë¥ì¥¤¥¢¥¦¥È¤Î½¤Àµ¤òºÙ¡¹¤È
¹Ô¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£
¤æ¤¯¤æ¤¯¤Ïwordpress¤Ë°Ü¹Ô¤ò¹Í¤¨¤Æ¤ª¤ê¤Þ¤¹¤¬¡Ä²¿Ç¯¸å¤«¤Ê¡Ä¡©
¡üWindows10°Ê¹ßÂбþ¤Î64bitÈÇFONTX2¥³¥ó¥Ð¡¼¥¿ºî¤ê¤Þ¤·¤¿
FONTX2¤Ï¸½ºß¤Ç¤ÏÅŻҹ©ºî¤ÇÂç¿Íµ¤¤Î¥Õ¥©¥ó¥È¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¹¡£
¾Ü¤·¤¤²òÀâ¤Ï¤ª¤Ê¤¸¤ßChaN»Õ¤Î¥µ¥¤¥È¤Ç¤â¤µ¤ì¤Æ¤ª¤ê»²¹Í¤Ë¤Ê¤ê¤Þ¤¹¡£
¤È¤³¤í¤Ç¸½ºßWindows¤Ç»È¤ï¤ì¤Æ¤¤¤ëTrueType¥Õ¥©¥ó¥È¤«¤éFONTX2¥Õ¥¡¥¤¥ë¤ò
ºîÀ®¤·¤¿¤¤¾ì¹ç¤Ï¤«¤Ä¤Æ¤ÏWFONTX¤È¤¤¤¦Èó¾ï¤ËÊØÍø¤Ê¥Ä¡¼¥ë¤¬Â¸ºß¤·¤Æ
¤¤¤¿¤Î¤Ç¤¹¤¬¤³¤ì¤ÏWindowsNT3.1ÍѤÎÂåʪ¤Ç¡¢64bitOS¤¬Á´À¹¤Î¸½ºß¤Ç¤Ï
ưºî¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£
¤½¤³¤Ç¤Í¤à¤¤¤µ¤ó¤¬64bitOSÂбþ¤ÎWFONTX64¤òºîÀ®¤¤¤¿¤·¤Þ¤·¤¿¡ª
¤³¤ì¤Ï¥ª¥ê¥¸¥Ê¥ë¤«¤éXP¤ËÂбþ¤µ¤ì¤¿¤¹¤óÍͤÎWFONTX32¤ò¥Ù¡¼¥¹¤È¤·¤Æ¤ª¤ê¤Þ¤¹¡£
¤Í¤à¤¤¤µ¤ó¤¬¸«¤Ä¤±¤¿ºÙ¤«¤¤¥Ð¥°Åù¤â½¤Àµ¤·»È¤¤¾¡¼ê¤ò¿¾¯¾å¤²¤Þ¤·¤¿¡£
¡ù»È¤¤Êý¡ù
¤Þ¤º¤Ï¥×¥í¥°¥é¥à¤ò³«¤¤¤¿¤È¤³¤í¤Ç¤¹¡£
¤³¤³¤Ç¤Ï¤Í¤à¤¤¤µ¤ó¤ÎºÇ¶á¤Î¤ªµ¤¤ËÆþ¤ê¤Î¾®²Æ¥Õ¥©¥ó¥È¤ò12x12pixel¤Î
FONTX2²½¤¹¤ëÎã¤òµó¤²¤Þ¤¹¡£
Ãí:¤¢¤é¤«¤¸¤á¾®²Æ¥Õ¥©¥ó¥È¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¤Î¤¬Á°Äó¤Ç¤¹¡ª
¥É¥í¥Ã¥×¥À¥¦¥ó¥á¥Ë¥å¡¼¤«¤é"¾®²Æ ÅùÉý"¤òÁªÂò¤·¤Þ¤¹¡£
¼¡¤Ë¹â¤µ¤ÈÉý¤ò¥Ô¥¯¥»¥ë¿ô¤Ç»ØÄꤷ¤Þ¤¹¡£¤³¤³¤ÇÃí°Õ¤Ç¤¹¤¬¤¿¤È¤¨¤Ð12x12¤Ç
ɽ¼¨¤·¤¿¤¤¾ì¹ç¤ÏHeight¤Ë12,Width¤ËHeight¤ÎȾʬ¤Î6¤ò»ØÄꤷ¤Þ¤¹¡£
Width¤Ë12¤ò¤·¤Æ¤·¤Þ¤¦¤È²£Ä¹¤Ë¤Ê¤Ã¤Á¤ã¤¤¤Þ¤¹¡£
12¤ÎȾʬ¤Î6¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£
"FontX2 Name"¤ÎÍó¤Ë¤ÏFONTX2¤Î¥Ø¥Ã¥À¤ò»ØÄꤷ¤Þ¤¹¡£FONTX2¤Î»ÅÍ;å8ʸ»ú
°Ê¾å¤Ï»ØÄê¤Ç¤¤Þ¤»¤ó(8ʸ»ú°Ê¾åÆþÎϤǤ¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤Þ¤¹)¡£
¤³¤³¤Ç¤ÏKONATHN¤È¤·¤Þ¤¹¡£
¤Þ¤¿¡¢FontX2Type¤ÏȾ³Ñ¤Î"Ank"¤ò»ØÄꤷ¤Þ¤¹¡£
Save Name¤ÎÍó¤ÏÀ¸À®¤µ¤ì¤ë¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤Þ¤¹¡£
KONATHN12.FNT¤È¤·¤Þ¤¹¡£
¤³¤³¤Þ¤ÇÆþÎϤ·¤¿¤é"RUN"¤È"NO STOP"¤¬²¡¤»¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
"RUN"¤Ï¥À¥¤¥¢¥í¥°¤Ë1ʸ»ú¤º¤Äɽ¼¨¤·¤Ê¤¬¤éÊÑ´¹(ÃÙ¤¤)¡¢"NO STOP"¤Ïɽ¼¨
¤»¤º¤Ë°ìµ¤¤ËÊÑ´¹¤·¤Þ¤¹(Áᤤ)¡£
ÊÑ´¹¤¬½ª¤ï¤ë¤ÈKONATHN12.FNT¤¬À¸À®¤µ¤ì¤Þ¤¹¡£
À¸À®¤µ¤ì¤¿¤Î¤ÏFONTX2¤ÎÃæ¤ÎAnk¥Õ¥©¥ó¥È¤ÇȾ³Ñ¤ÎAsciiʸ»ú¤À¤±¤¬
³ÊǼ¤µ¤ì¤Æ¤Þ¤¹¡£´Á»ú¤Ê¤É¤Î2¥Ð¥¤¥Èʸ»ú¤ÏÁ´³ÑÍѤÎÀ¸À®Áàºî¤¬
ɬÍפǤ¹¡£
¤ª¼¡¤Ï2¥Ð¥¤¥È¤ÎÁ´³Ñ¤Ç¤¹¡£¥é¥¸¥ª¥Ü¥¿¥ó¤òAnk¤«¤éKanji¤ËÊѤ¨¡¢
Save Name¤ÏKONATZN12.FNT¤È¤·¤Þ¤·¤ç¤¦¡£
¤³¤ì¤ÇȾ³Ñ¡¦Á´³Ñ¤ÎFONTX2¥Õ¥¡¥¤¥ë¤¬Ìµ»öÀ¸À®¤µ¤ì¤Þ¤·¤¿¡ª
¤Ç¡¢¤³¤¤¤Ä¤ò¤Í¤à¤¤¤µ¤ó¤Î¤¤¤Ä¤â¤Î¤ËÁȤ߹þ¤ó¤ÇSTM32H5»È¤Ã¤ÆTFT-LCD¤Ë
FONTX2¥É¥é¥¤¥Ð¤ò»È¤Ã¤ÆÉ½¼¨¤Ç¤¤Þ¤·¤¿¡£
¤³¤ó¤Ê¤ï¤±¤Ç30ǯ¤Î»þ¤òͤ¨¤Æ¸½ºß¤Ç¤â¤ª¼ê·Ú¤Ë¥Þ¥¤¥³¥ó¤Ç¹¥¤¤Êʸ»ú¤¬
¤ª¼ê·Ú¤Ëɽ¼¨¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£
¤Þ¤¿¡¢À¸À®¤·¤¿FONTX2¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥½¡¼¥¹¥³¡¼¥É¤ÎºÆÇÛÉۤκݤϸµ¤Î
¥Õ¥©¥ó¥È¤Î¥é¥¤¥»¥ó¥¹¤ËÃí°Õ¤·¡¢¤½¤ì¤Ë½¾¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¡üavrdude¤¬v7.2¤Ë¤Ê¤Ã¤Æ¤¤¤¿
µµ¤Î¤è¤¦¤Ê¹¹¿·Â®ÅÙ¤À¤Ã¤¿¤³¤í¤«¤éÈæ¤Ù¤ë¤ÈÆü¡¹Áý¿£¤¹¤ë¾®±§Ãè¾õÂÖ¤È
¤Ê¤Ã¤Æ¤¤¤ëavrdude¤Ç¤¹¤¬¤¤¤Ä¤Î¤Þ¤Ë¤«v7.1->v7.2¤Ë¿Ê²½¤·¤Æ¤ª¤ê¤Þ¤¹¡£
¾Ò²ð¤·¤¤ì¤Ê¤¤¤¯¤é¤¤µ¡Ç½¤¬¥¢¥Ã¥×¤·¤Æ¤ª¤ê¤Þ¤¹¤Î¤ÇÆÃ¤ËºÙ¤«¤¤ÉÔ¶ñ¹ç¤¬
¤Ä¤Ö¤µ¤Ë½¤Àµ¤µ¤ì¤Æ¤ª¤ê¤Þ¤¹¤Î¤ÇÆÃ¤ËÍýͳ¤¬¤Ê¤¤¾ì¹ç°Ê³°¤Ïv7.2¤Ë¾è¤ê
ÊѤ¨¤Þ¤·¤ç¤¦¡£
¤Í¤à¤¤¤µ¤ó¤âVerup¤Î¥¹¥Ô¡¼¥É¤Ë¿¶¤êÍî¤È¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤¬¤ß¤Ä¤¤¤Æ¤ª¤ê¡¢
¤ª¤¤Ñ¤Ç¤â¾ï¤ËºÇ¿·¤Îavrdude¤Îwindows¥Ð¥¤¥Ê¥ê¤ò¸ø³«¤·¤Æ¤ª¤ê¤Þ¤¹¤Î¤Ç
¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡ª¡ª
¡üCMSIS¤âv6¤Ë¤Ê¤Ã¤Æ¤¤¤¿
10ǯ¤Û¤É¤Î´ÖCMSIS¤Ïver5¤Î¤Þ¤Þ¥á¥ó¥Æ¤¬¹Ô¤ï¤ì¤Æ¤ª¤ê¤Þ¤·¤¿¤¬º£Ç¯¤Î
½Õ¤¯¤é¤¤¤«¤éver6¤Ë°Ü¹Ô¤·¤Æ¤ª¤ê¤Þ¤¹¡£
Âç¤Þ¤«¤Ê¹½À®¤ÏÊѤï¤Ã¤Æ¤ª¤ê¤Þ¤»¤ó¤Î¤Ç¤½¤Î¤Þ¤ÞÃÖ¤´¹¤¨¤Æ¥Ó¥ë¥É¤¬
²Äǽ¤Ë¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£
¤³¤Îµ»ö¤ò½ñ¤¤¤Æ¤ë¸½ºß¤Ç¤Ï½¤Àµ¤µ¤ì¤Þ¤·¤¿¤¬GCC¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿ºÝ¤Ë
"#pragma clang system_header"¤¬°ú¤Ã¤«¤«¤Ã¤Æ¥ï¡¼¥Ë¥ó¥°¤¬½Ð¤Þ¤¯¤ë
»öÂ֤ȤʤäƤª¤ê¤Þ¤·¤¿¤¬10·îËö¤Ë¤è¤¦¤ä¤¯½¤Àµ¤µ¤ì¤Þ¤·¤¿¡£
¤ª¤¤Ñ¤Ç¾Ò²ð¤·¤Æ¤¤¤ë¤¤¤Ä¤â¤Î¤¿¤Á¤Ï¤½¤Î½¤Àµ¤µ¤ì¤¿¤â¤Î¤òŬÍѤ·¤Æ¤Þ¤¹¤Î¤Ç
¤³¤Á¤é¤â¤É¤·¤É¤·¤´ÍøÍѤ¯¤À¤µ¤¤¡ª
¡ü¤½¤ÎGCC¤â13¤Ë¤Ê¤Ã¤Æ¤¤¤¿
¤½¤·¤ÆGCC¤â12¤«¤é13¤Ë¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤·¤Æ¤ª¤ê¤Þ¤·¤¿¡£
arm-none-eabi-gcc (Arm GNU Toolchain 12.3.Rel1 (Build arm-12.35)) 12.3.1 20230626
->
arm-none-eabi-gcc (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 13.2.1 20231009
¤Í¤à¤¤¤µ¤ó¤ÎSTM32H7-Discovery¸þ¤±¥×¥í¥¸¥§¥¯¥È"¤¤¤Ä¤â¤Î"¤Î¥Ð¥¤¥Ê¥ê¥µ¥¤¥º¤ò
Èæ³Ó¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
GCC12
Built Informations:
USING_SYSTEM = BARE_METAL
USING_DISPLAY = USE_OTM8009A_DSI_TFT
USING_DEVBOARD = USE_STM32H747I_DISCO
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 709212 0 709212 ad25c main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
707324 1888 2384060 3093272 2f3318 main.elf
main.elf :
section size addr
.text 0xac840 0x8000000
.ctors 0x0 0x80ac840
.dtors 0x0 0x80ac840
.eh_frame 0xb0 0x80ac840
.ARM.exidx 0x98 0x80ac8f0
.itcm 0x174 0x0
.data 0x760 0x24000000
.bss 0x11f2c 0x24000760
.heap 0x0 0x2401268c
.dtcm 0x20c 0x20000000
.stack 0x4 0x2000020c
.ram1_d2 0x0 0x30000000
.ram2_d2 0x0 0x30020000
.ram3_d2 0x0 0x30040000
.ram4_d3 0x0 0x38000000
.batram 0x0 0x38800000
.extram 0x233f80 0xd0000000
.qspirom 0x0 0x90000000
.comment 0x45 0x0
.debug_frame 0x1f7c 0x0
.ARM.attributes 0x30 0x0
.debug_line_str 0x1f4 0x0
Total 0x2f54fd
GCC13
Built Informations:
USING_SYSTEM = BARE_METAL
USING_DISPLAY = USE_OTM8009A_DSI_TFT
USING_DEVBOARD = USE_STM32H747I_DISCO
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 709868 0 709868 ad4ec main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
707980 1888 2384060 3093928 2f35a8 main.elf
main.elf :
section size addr
.text 0xacad0 0x8000000
.ctors 0x0 0x80acad0
.dtors 0x0 0x80acad0
.eh_frame 0xb0 0x80acad0
.ARM.exidx 0x98 0x80acb80
.itcm 0x174 0x0
.data 0x760 0x24000000
.bss 0x11f2c 0x24000760
.heap 0x0 0x2401268c
.dtcm 0x20c 0x20000000
.stack 0x4 0x2000020c
.ram1_d2 0x0 0x30000000
.ram2_d2 0x0 0x30020000
.ram3_d2 0x0 0x30040000
.ram4_d3 0x0 0x38000000
.batram 0x0 0x38800000
.extram 0x233f80 0xd0000000
.qspirom 0x0 0x90000000
.comment 0x44 0x0
.debug_frame 0x1d1c 0x0
.ARM.attributes 0x30 0x0
.debug_line_str 0x1f4 0x0
Total 0x2f552c
¤¢¤ì¡Ä¤Ê¤ó¤«¥Ð¥¤¥Ê¥ê¥µ¥¤¥º¤¬600Byte¶á¤¯¤âÁý¤¨¤Æ¤ë¤è¤¦¤Ê¡Ä
¤È¡¢¤È¤ê¤¢¤¨¤ºÂ®ÅÙÈæ³Ó¤â¤·¤Æ¤ß¤Þ¤·¤ç¤¦
jpeg¥Õ¥¡¥¤¥ë¤Î¥Ç¥³¡¼¥É®ÅÙ¤òÈæ³Ó¤·¤Þ¤¹¡£-O2¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤·¤¿¡£

GCC12:(236704uSec)

GCC13:(237486uSec)
¡Ä
¤¢¡Ä¤¢¤ì¡Ä·ë¹½ÃÙ¤¯¤Ê¤Ã¤Æ¤ë¡Ä¡ª¡©
¤Þ¡¢¤Þ¤¡Â¿Ê¬²¿¤«¤Î°ÂÄêÀ¤¬¾å¤¬¤Ã¤¿¤«¤â¤Ê¤Î¤Ç¤è¤·¤È¤·¤Þ¤·¤ç¤¦¡Ä
(»é´À)
STM32L5¤ò»È¤Ã¤Æ¤ß¤ë3 -OCTO-SPI¤ÇQUAD-SPIROM¤ò»È¤ª¤¦-
¡üQUAD-SPIÀܳNORFLASH-ROM¤ò»È¤¤¤³¤Ê¤»!
FONTX2¥Õ¥¡¥¤¥ë¤Ê¤É¤ÎÂçÍÆÎ̤Υǡ¼¥¿¤ÏSTM32Åù¤ÎÂ絬ÌÏ¥Þ¥¤¥³¥ó¤È
¤¤¤¨¤É¤â¥Õ¥é¥Ã¥·¥åÍÆÎ̤òÈó¾ï¤Ë¤Ò¤ÃÇ÷¤·¤Þ¤¹¡£
°ÊÁ°¤«¤é¤Ï¤½¤¦¤¤¤Ã¤¿¥Ç¡¼¥¿¤Ï³°ÉÕ¤±¤ÎQSPI-ROM¤Ë³ÊǼ¤·¡¢¤½¤³¤«¤é
¥¢¥¯¥»¥¹¤¹¤ë¤È¤¤¤Ã¤¿¼êË¡¤¬ÄêÈ֤ȤʤäƤª¤ê¤Þ¤¹¡£
STM32L5¤Ç¤Ï¿®¹æÀþ¤òºÇÂç8ËÜ»ý¤Ä¥¯¥í¥Ã¥¯¥É¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹
¤¤¤ï¤æ¤ë"OCTO-SPI"¤ò¤â¤Á¤µ¤é¤ËÍøÊØÀ¤¬¹â¤Þ¤Ã¤Æ¤ª¤ê¤Þ¤¹¡ª
¤³¤ÎOCTO-SPI¤ò»È¤Ã¤ÆQSPI-ROM¤ÈÀܳ¤·Æâ¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤Î¤è¤¦¤Ë
»È¤¨¤ëMemoryMappedMode¤ÇÆÉ¤ß½Ð¤·¤Æ¤¤¤³¤¦¤È»×¤¤¤Þ¤¹¡ª
¡ü¤â¤Ï¤äÄêÈÖ¡ùWinbond¤ÎW25Q128JVSIQ
Á°¡¹²ó¤«¤é¤Î¾Ò²ð¤ÎÄ̤ꡢ¤Í¤à¤¤¤µ¤ó¤ÏÆþ¼ê¤âÍÆ°×¤Ç½½Ê¬¤ÊÍÆÎÌ(16MB)¡¢
¹â®¤Ê¥¯¥í¥Ã¥¯(133MHz)¤Ç¥Ç¥Õ¥©¥ë¥È¤ÇQUAD-SPI¥â¡¼¥É¤Ë¤Ê¤Ã¤Æ¤¤¤Æ
¥³¥Þ¥ó¥É¤¬¾Êά½ÐÍè¤Æ°·¤¤¤ä¤¹¤¤W25Q128JVSIQ¤ò»ÈÍѤ·¤Þ¤·¤¿¡£
W25Q¤Î¥·¥ê¡¼¥º¤Ë¤Ï¤¤¤í¤¤¤í¤¢¤ê¤Þ¤¹¤¬ËöÈø"IQ"¤Î¤â¤Î¤Ï¾å¤Ç¤â
½ñ¤¤¤¿Ä̤êºÇ½é¤Ã¤«¤éQUAD-SPI¥â¡¼¥É¤Ë¤Ê¤Ã¤Æ¤ª¤êº£¤«¤é¾Ò²ð¤¹¤ë
¥á¥â¥ê¥Þ¥Ã¥×¥É¥â¡¼¥É¤ÇÅꤲ¤ë¥³¥Þ¥ó¥É¤¬¤¤¤¯¤Ä¤«¾Êά½ÐÍè¤Æ³Ú¤Ç¤¹¡£
digikey¤ämouser¤Ç¹ØÆþ¤ÎºÝ¤Ï¤¦¤Ã¤«¤ê°ã¤¦¤ä¤Ä¤òÇã¤ï¤Ê¤¤¤è¤¦¤Ë
·¿È֤ˤÏÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡üOCTO-SPI¤òMemoryMappedMode¤Ç»ÈÍѤ¹¤ë¤¿¤á¤Î¥³¡¼¥É¼ê½ç
STM32L5¤ËÅëºÜ¤µ¤ì¤Æ¤¤¤ëOCTO-SPI¤ÏSTM32F7¤Ê¤É¤Ë¤¢¤Ã¤¿QUAD-SPI
¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤«¤é¤µ¤ì¤Ë³ÈÄ¥¤µ¤ì¡¢ÆÉ¤ß½Ð¤·¤Î¤Û¤«¤Ë½ñ¤¹þ¤ß¤â
¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£´ðËÜŪ¤ÊÀßÄê¤Îή¤ì¤ÏQUAD-SPI¤Îº¢¤È¤Û¤Ü
Ʊ¤¸¤Ç¤¹¤¬OCTO-SPI¤Ê¤é¤Ç¤Ï¤ÎÀßÄê¤â¤¢¤ë¤Î¤ÇÃí°Õ¤·¤Þ¤·¤ç¤¦¡£
¢¤Þ¤º¤ÏI/OÀßÄê¤Ç¤¹¡£
/**************************************************************************/
/*!
@brief OCTO-SPI GPIO Configuration.
@param None.
@retval None.
*/
/**************************************************************************/
void OSPI_IoInit_If(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
/* Initializes the peripherals clock */
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_OSPI;
PeriphClkInit.OspiClockSelection = RCC_OSPICLKSOURCE_SYSCLK;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
{
for(;;);
}
/* Peripheral clock enable */
__HAL_RCC_OSPI1_CLK_ENABLE();
/* Alternate GPIO enable */
__HAL_RCC_GPIOE_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/* PE12 as OSPI_IO0 */
GPIO_InitStruct.Pin = GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF10_OCTOSPI1;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/* PB0 as OSPI_IO1 */
GPIO_InitStruct.Pin = GPIO_PIN_0;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* PE14 as OSPI_IO2 */
GPIO_InitStruct.Pin = GPIO_PIN_14;
GPIO_InitStruct.Alternate = GPIO_AF10_OCTOSPI1;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/* PE15 as OSPI_IO3 */
GPIO_InitStruct.Pin = GPIO_PIN_15;
GPIO_InitStruct.Alternate = GPIO_AF10_OCTOSPI1;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/* PB10 as OSPI_CLK */
GPIO_InitStruct.Pin = GPIO_PIN_10;
GPIO_InitStruct.Alternate = GPIO_AF10_OCTOSPI1;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* PA2 as OSPI_NCS */
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Alternate = GPIO_AF10_OCTOSPI1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
¤³¤ì¤ÏNUCLEO-L552ZE-Q¤«¤é½Ð¤¿QUAD-SPI¤Î¤ËÂбþ¤·¤¿¤â¤Î¤Ç¤¹¡£
OCTO-SPI¤Ê¤Î¤Ë8ËÜÁ´Éô»È¤ï¤Ì¤§¤Î¤«¤È»×¤¤¤Ç¤·¤ç¤¦¤¬¤³¤ì¤ÏNUCLEO
¤¬°ú¤½Ð¤·¤Æ¤ë¤¬¤½¤¦¤Ê¤Ã¤Æ¤ë¤«¤é¤½¤ì¤Ë½¾¤Ã¤¿¤ï¤±¤Ê¤Î¤Ç¡¼
¢¤ª¼¡¤ÏOCTO-SPI¤ÎÀßÄê¤Ç¤¹¡£
/**************************************************************************/
/*!
@brief Configure OCTO-SPI as Memory Mapped Mode.
Winbond W25Q128JVSIQ specific setting.
* Address size is 24bit(16MBytes).
* Initially sets QUAD-MODE(not need quadmode command).
* MAX 133MHz CLK.
* Support "XIP",thus suitable for MemoryMappedMode.
@param None.
@retval None.
*/
/**************************************************************************/
void Set_OSPI_MemoryMappedMode(void)
{
OSPI_RegularCmdTypeDef sCommand = {0};
OSPI_MemoryMappedTypeDef sMemMappedCfg = {0};
uint8_t reg_data =0;
/* Initialize OCTO-SPI I/O */
OSPI_IoInit_If();
/* Initialize OCTO-SPI */
hospi.Instance = OCTOSPI1;
hospi.Init.FifoThreshold = 1;
hospi.Init.DualQuad = HAL_OSPI_DUALQUAD_DISABLE;
hospi.Init.MemoryType = HAL_OSPI_MEMTYPE_MICRON;
hospi.Init.DeviceSize = 24; /* 128Mbit=16MByte=2^24 W25Q128JVSIQ */
hospi.Init.ChipSelectHighTime = 2; /* 2ClockCycle(18nSec@110MHz) Need for W25Q128JVSIQ >10nSec@read */
hospi.Init.FreeRunningClock = HAL_OSPI_FREERUNCLK_DISABLE;
hospi.Init.ClockMode = HAL_OSPI_CLOCK_MODE_0;
hospi.Init.WrapSize = HAL_OSPI_WRAP_NOT_SUPPORTED;
hospi.Init.ClockPrescaler = 2; /* 110MHzMAX/2 = 55MHz(MAX OSPI-CLK:90MHz) */
hospi.Init.SampleShifting = HAL_OSPI_SAMPLE_SHIFTING_HALFCYCLE;
hospi.Init.DelayHoldQuarterCycle = HAL_OSPI_DHQC_DISABLE;
hospi.Init.ChipSelectBoundary = 0;
hospi.Init.DelayBlockBypass = HAL_OSPI_DELAY_BLOCK_BYPASSED;
hospi.Init.Refresh = 0;
if (HAL_OSPI_Init(&hospi) != HAL_OK)
{
for(;;);
}
/* Enable Reset --------------------------- */
/* Common Commands */
sCommand.OperationType = HAL_OSPI_OPTYPE_COMMON_CFG;
sCommand.FlashId = HAL_OSPI_FLASH_ID_1;
sCommand.InstructionDtrMode = HAL_OSPI_INSTRUCTION_DTR_DISABLE;
sCommand.AddressDtrMode = HAL_OSPI_ADDRESS_DTR_DISABLE;
sCommand.DataDtrMode = HAL_OSPI_DATA_DTR_DISABLE;
sCommand.DQSMode = HAL_OSPI_DQS_DISABLE;
sCommand.SIOOMode = HAL_OSPI_SIOO_INST_EVERY_CMD;
sCommand.AlternateBytesMode = HAL_OSPI_ALTERNATE_BYTES_NONE;
sCommand.AlternateBytes = HAL_OSPI_ALTERNATE_BYTES_NONE;
sCommand.AlternateBytesSize = HAL_OSPI_ALTERNATE_BYTES_NONE;
sCommand.AlternateBytesDtrMode = HAL_OSPI_ALTERNATE_BYTES_DTR_DISABLE;
sCommand.InstructionMode = HAL_OSPI_INSTRUCTION_1_LINE;
sCommand.InstructionSize = HAL_OSPI_INSTRUCTION_8_BITS;
sCommand.AddressSize = HAL_OSPI_ADDRESS_24_BITS;
/* Instruction */
sCommand.Instruction = 0x66; /* Reset Enable W25Q128JVSIQ */
/* Address */
sCommand.AddressMode = HAL_OSPI_ADDRESS_NONE;
sCommand.Address = 0;
/* Data */
sCommand.DataMode = HAL_OSPI_DATA_NONE;
sCommand.DummyCycles = 0;
sCommand.NbData = 0;
if (HAL_OSPI_Command(&hospi, &sCommand, HAL_OSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
for(;;);
}
/* Reset Device --------------------------- */
/* Common Commands */
sCommand.OperationType = HAL_OSPI_OPTYPE_COMMON_CFG;
sCommand.FlashId = HAL_OSPI_FLASH_ID_1;
sCommand.InstructionDtrMode = HAL_OSPI_INSTRUCTION_DTR_DISABLE;
sCommand.AddressDtrMode = HAL_OSPI_ADDRESS_DTR_DISABLE;
sCommand.DataDtrMode = HAL_OSPI_DATA_DTR_DISABLE;
sCommand.DQSMode = HAL_OSPI_DQS_DISABLE;
sCommand.SIOOMode = HAL_OSPI_SIOO_INST_EVERY_CMD;
sCommand.AlternateBytesMode = HAL_OSPI_ALTERNATE_BYTES_NONE;
sCommand.AlternateBytes = HAL_OSPI_ALTERNATE_BYTES_NONE;
sCommand.AlternateBytesSize = HAL_OSPI_ALTERNATE_BYTES_NONE;
sCommand.AlternateBytesDtrMode = HAL_OSPI_ALTERNATE_BYTES_DTR_DISABLE;
sCommand.InstructionMode = HAL_OSPI_INSTRUCTION_1_LINE;
sCommand.InstructionSize = HAL_OSPI_INSTRUCTION_8_BITS;
sCommand.AddressSize = HAL_OSPI_ADDRESS_24_BITS;
/* Instruction */
sCommand.Instruction = 0x99; /* Reset W25Q128JVSIQ */
/* Address */
sCommand.AddressMode = HAL_OSPI_ADDRESS_NONE;
sCommand.Address = 0;
/* Data */
sCommand.DataMode = HAL_OSPI_DATA_NONE;
sCommand.DummyCycles = 0;
sCommand.NbData = 0;
if (HAL_OSPI_Command(&hospi, &sCommand, HAL_OSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
for(;;);
}
/* Enter Quad-SPI Mode --------------------------- */
/* Common Commands */
sCommand.OperationType = HAL_OSPI_OPTYPE_COMMON_CFG;
sCommand.FlashId = HAL_OSPI_FLASH_ID_1;
sCommand.InstructionDtrMode = HAL_OSPI_INSTRUCTION_DTR_DISABLE;
sCommand.AddressDtrMode = HAL_OSPI_ADDRESS_DTR_DISABLE;
sCommand.DataDtrMode = HAL_OSPI_DATA_DTR_DISABLE;
sCommand.DQSMode = HAL_OSPI_DQS_DISABLE;
sCommand.SIOOMode = HAL_OSPI_SIOO_INST_EVERY_CMD;
sCommand.AlternateBytesMode = HAL_OSPI_ALTERNATE_BYTES_NONE;
sCommand.AlternateBytes = HAL_OSPI_ALTERNATE_BYTES_NONE;
sCommand.AlternateBytesSize = HAL_OSPI_ALTERNATE_BYTES_NONE;
sCommand.AlternateBytesDtrMode = HAL_OSPI_ALTERNATE_BYTES_DTR_DISABLE;
sCommand.InstructionMode = HAL_OSPI_INSTRUCTION_1_LINE;
sCommand.InstructionSize = HAL_OSPI_INSTRUCTION_8_BITS;
sCommand.AddressSize = HAL_OSPI_ADDRESS_24_BITS;
/* Instruction */
sCommand.Instruction = 0x31; /* Set Status2 W25Q128JVSIQ */
/* Address */
sCommand.AddressMode = HAL_OSPI_ADDRESS_NONE;
sCommand.Address = 0;
/* Data */
sCommand.DataMode = HAL_OSPI_INSTRUCTION_1_LINE;
sCommand.DummyCycles = 0;
sCommand.NbData = 1;
reg_data = 0x02; /* Enable QuadI/O Mode */
if (HAL_OSPI_Command(&hospi, &sCommand, HAL_OSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
for(;;);
}
if (HAL_OSPI_Transmit(&hospi, ®_data, HAL_OSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
for(;;);
}
/* Enter MemoryMappedMode --------------------------- */
/* Read Commands */
sCommand.OperationType = HAL_OSPI_OPTYPE_READ_CFG;
sCommand.FlashId = HAL_OSPI_FLASH_ID_1;
sCommand.InstructionDtrMode = HAL_OSPI_INSTRUCTION_DTR_DISABLE;
sCommand.AddressDtrMode = HAL_OSPI_ADDRESS_DTR_DISABLE;
sCommand.DataDtrMode = HAL_OSPI_DATA_DTR_DISABLE;
sCommand.DQSMode = HAL_OSPI_DQS_DISABLE;
sCommand.SIOOMode = HAL_OSPI_SIOO_INST_EVERY_CMD;
sCommand.AlternateBytesMode = HAL_OSPI_ALTERNATE_BYTES_4_LINES;
sCommand.AlternateBytes = 0xFF; /* Need for Fast Read QUAD W25Q128JVSIQ */
sCommand.AlternateBytesSize = HAL_OSPI_ALTERNATE_BYTES_8_BITS;
sCommand.AlternateBytesDtrMode = HAL_OSPI_ALTERNATE_BYTES_DTR_DISABLE;
sCommand.InstructionMode = HAL_OSPI_INSTRUCTION_1_LINE;
sCommand.InstructionSize = HAL_OSPI_INSTRUCTION_8_BITS;
sCommand.AddressSize = HAL_OSPI_ADDRESS_24_BITS;
/* Instruction */
sCommand.Instruction = 0xEB; /* Fast Read QUAD W25Q128JVSIQ */
/* Address */
sCommand.AddressMode = HAL_OSPI_ADDRESS_4_LINES;
sCommand.Address = 0;
/* Data */
sCommand.DataMode = HAL_OSPI_DATA_4_LINES;
sCommand.DummyCycles = 4; /* DUMMY 4Cycle for Fast Read QUAD W25Q128JVSIQ */
sCommand.NbData = 0;
if(HAL_OSPI_Command(&hospi, &sCommand, HAL_OSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
for(;;);
}
/* Write Commands */
sCommand.OperationType = HAL_OSPI_OPTYPE_WRITE_CFG;
sCommand.FlashId = HAL_OSPI_FLASH_ID_1;
sCommand.InstructionDtrMode = HAL_OSPI_INSTRUCTION_DTR_DISABLE;
sCommand.AddressDtrMode = HAL_OSPI_ADDRESS_DTR_DISABLE;
sCommand.DataDtrMode = HAL_OSPI_DATA_DTR_DISABLE;
sCommand.DQSMode = HAL_OSPI_DQS_DISABLE;
sCommand.SIOOMode = HAL_OSPI_SIOO_INST_EVERY_CMD;
sCommand.AlternateBytesMode = HAL_OSPI_ALTERNATE_BYTES_NONE;
sCommand.AlternateBytes = HAL_OSPI_ALTERNATE_BYTES_NONE;
sCommand.AlternateBytesSize = HAL_OSPI_ALTERNATE_BYTES_NONE;
sCommand.AlternateBytesDtrMode = HAL_OSPI_ALTERNATE_BYTES_DTR_DISABLE;
sCommand.InstructionMode = HAL_OSPI_INSTRUCTION_1_LINE;
sCommand.InstructionSize = HAL_OSPI_INSTRUCTION_8_BITS;
sCommand.AddressSize = HAL_OSPI_ADDRESS_24_BITS;
/* Instruction */
sCommand.Instruction = 0x32; /* Page Write QUAD W25Q128JVSIQ */
/* Address */
sCommand.AddressMode = HAL_OSPI_ADDRESS_1_LINE;
sCommand.Address = 0;
/* Data */
sCommand.DataMode = HAL_OSPI_DATA_4_LINES;
sCommand.DummyCycles = 0;
sCommand.NbData = 0;
if(HAL_OSPI_Command(&hospi, &sCommand, HAL_OSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
for(;;);
}
/* Set OCTO-SPI as MemoryMappedMode */
sMemMappedCfg.TimeOutActivation = HAL_OSPI_TIMEOUT_COUNTER_DISABLE;
sMemMappedCfg.TimeOutPeriod = 0;
if(HAL_OSPI_MemoryMapped(&hospi, &sMemMappedCfg) != HAL_OK)
{
for(;;);
}
}
ή¤ì¤È¤·¤Æ¤Ï¥ê¥»¥Ã¥È͸ú->¥ê¥»¥Ã¥È->¥¯¥¢¥Ã¥ÉI/O¥â¡¼¥É͸ú->
¥¯¥¢¥Ã¥É¹â®ÆÉ¤ß½Ð¤·¥³¥Þ¥ó¥É->¥¯¥¢¥Ã¥É¥»¥¯¥¿½ñ¤¹þ¤ß¥³¥Þ¥ó¥É
->HAL¤ÎMemoryMappedMode°Ü¹Ô´Ø¿ô¸Æ¤Ó½Ð¤·
¤È¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£
"¥¯¥¢¥Ã¥ÉI/O¥â¡¼¥É͸ú"¤ÏW25Q128JVSIQ»È¤¦¤Ê¤éËÜÍèÉÔÍפǤ¹¤¬
"ǰ¤Î¤¿¤á"ÆÍ¤Ã¹þ¤ó¤É¤¤Þ¤·¤¿¡Ä°ì±þ¤Ê¤¯¤Æ¤âưºî¤·¤Þ¤¹¡£
Ãí°ÕÅÀ¤Ç¤¹¤¬OCTO-SPI¤Ï½ñ¤¹þ¤ß¤âMemoryMappedMode¤¬»ÈÍѲÄǽ¤Î°Ù¡¢
¥¯¥¢¥Ã¥ÉÆÉ¤ß½Ð¤·¥³¥Þ¥ó¥É¤Î¼¡¤Ë¥»¥¯¥¿½ñ¤¹þ¤ß¥³¥Þ¥ó¥É¤ÎÀßÄ꤬
ɬ¿Ü¤Ë¤Ê¤ê¤Þ¤¹¡ª¡ª

¤Ê¤¼¤½¤¦¤Ê¤Ã¤Æ¤¤¤ë¤«¤È¤¤¤¦¤ÈHAL¤Î´Ø¿ôÆâ¤Ç½ñ¤¹þ¤ß¥³¥Þ¥ó¥É¤Î
ÀßÄê¤Þ¤ÇÍ׵ᤷ¤Æ¤¤ä¤¬¤ë¤«¤é¤Ç¤¹(Ê̤˺£²ó½ñ¤¹þ¤ßÍפé¤ó¤Î¤Ë☠)
¤³¤ì¤âÀßÄꤷ¤Ê¤¤¤ÈÀè¤Ë¿Ê¤á¤Þ¤»¤ó¡ª
¡üưºî¤·¤Æ¤ë¤È¤³¤í

MemoryMappedMode¤ÇÀßÄꤷ¤¿¥¢¥É¥ì¥¹¤ÏSTM32F7¤Î¤Ç¤ä¤Ã¤¿»þ¤ÈƱ¤¸¤¯
0x90000000¤«¤é¤È¤Ê¤ê¤Þ¤¹¤Î¤Ç²áµî¤Î¥ê¥½¡¼¥¹¤¬ÍøÍѤǤ¤Þ¤¹¡£
¤Í¤à¤¤¤µ¤ó¤Î»È¤¤Êý¤Ç¤ÏFONTX2¥Õ¥¡¥¤¥ë¤ÎAnk¤ÎÊý¤ò0x90000000¡¢
Sjis-Kanji¥Õ¥©¥ó¥È¤ÎÊý¤Ï0x90010000¤«¤é»²¾È¤·¤Æ¤ª¤ê¤Þ¤¹¡£
Ank¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ï¤É¤ó¤Ê¤Ë¤Ç¤«¤¯¤È¤â65536byte°Ê¾å¤Ë¤Ê¤é¤Ê¤¤
¤À¤í¤¦¤È¤¤¤¦ÂÇ»»¤Ç¤³¤Î¥ª¥Õ¥»¥Ã¥ÈÃͤòÀßÄꤷ¤Æ¤Þ¤¹¡£

¤³¤ó¤Ê´¶¤¸¤ÇFONTX2(Á´³Ñ&Ⱦ³Ñ)¥Õ¥¡¥¤¥ë¤ò»Å¹þ¤ó¤ÀW25Q128JVSIQ¤«¤é
Æâ¢¥Õ¥é¥Ã¥·¥å¤ÈÊѤï¤é¤Ê¤¤´¶³Ð¤Ç¥Ç¡¼¥¿¤òÆÉ¤ß½Ð¤·É½¼¨¤¬¤Ç¤¤Þ¤·¤¿¡£
»ÈÍѤ·¤¿¥Õ¥©¥ó¥È¤Ï¾®²Æ¥Õ¥©¥ó¥È¤ò12pt¤ÎFONTX2¤ËÊÑ´¹¤·¤¿¤â¤Î¤Ç¤¹¡£
STM32L5¤ÎOCTO-SPI¤ÏÌ¿Îᥥã¥Ã¥·¥å¤À¤±¤Ç¥Ç¡¼¥¿¥¥ã¥Ã¥·¥å¤Ï̵¤¤
¤Ç¤¹¤¬Ê¸»úɽ¼¨¤äÁàºî´¶¤ËÆÃ¤Ë¤â¤¿¤Ä¤¤¤¿´¶¤¸¤Ï¤·¤Æ¤Þ¤»¤ó¤Í¡£


¥Ç¥Ð¥Ã¥¬¤Ç0x90000000ÈÖÃϤòɽ¼¨¤·¤Æ¤ß¤Þ¤·¤¿¡£
MemoyMappedMode͸ú¸å¤ÏÆâ¢¥Õ¥é¥Ã¥·¥å¤ÈƱ¤¸¤è¤¦¤Ë¥Ç¥Ð¥Ã¥¬¤Ç
ÆâÉô¤Î¥Ç¡¼¥¿¤ò»²¾È¤Ç¤¤Æ¤Þ¤¹¤Í¡£
¡ü¤È¤³¤í¤Ç¤É¤¦¤ä¤Ã¤ÆQSPI-ROM¤Ë¥Ç¡¼¥¿½ñ¤¯¤Î¡©
¡Äº£²ó¤Îµ»ö¤Ï¤³¤ì¤¬ºÇÂç¤ÎÆñ´Ø¤Ç¤¹¡Ä¡ª
OpenOCD¤Ç¤ÏDiscovery·Ï¤Î¥Ü¡¼¥É¤Ç¤ÏI/F¤Î¤âQSPI-ROM¤ÎÉʼï¤â
·è¤áÂǤÁ¤Î¤¿¤á¤ËQSPI-ROM¤ÎÆÉ¤ß½ñ¤¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬
NUCLEO·Ï¤Î¤ä¤Ä¤Ï¤ϽФƤ¤¤ë¤â¤Î¤Î¤½¤ÎÀè¤Ë²¿¤¬¤Ä¤Ê¤¬¤ë¤«¤Ï
¤ï¤«¤é¤Ê¤¤¤Î¤Ç¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤â¤Î¤Ï²¿¤Ë¤â¤¢¤ê¤Þ¤»¤ó¡£
¤·¤¿¤¬¤Ã¤ÆOpenOCD¤Îmmw¤Î¥³¥Þ¥ó¥É¤Ç¤½¤ì¤¾¤ì¤ÎROM¥Ç¥Ð¥¤¥¹¸þ¤±¤Ë
¾å¤Ç½ñ¤¤¤¿¥³¡¼¥É¤ò16¿Ê¿ôʤ٤Ƥ¬¤à¤Ð¤Ã¤ÆÄêµÁ¤·¤Æ¤¤¤¯¤·¤«¤Ê¤¤¤Î
¤Ç¤¹¤¬¤Í¤à¤¤¤µ¤ó¤Ï¤½¤ó¤Ê¤³¤È¤ä¤ëµ¤ÎϤ¬¤Ê¤¤¤Î¤Ç¡Ä
Jtagkey2¤ÈSPI-ROM½ñ¤¹þ¤ß¥×¥í¥°¥é¥à"Flashom"¤Ë¤ÆFONTX2¥Ç¡¼¥¿¤ò
½ñ¤¹þ¤à¤³¤È¤Ë¤·¤Þ¤·¤¿¡£
»ÈÍѤ¹¤ë¥Õ¥©¥ó¥È¤Ï12x12px¤Î¾®²Æ¥Õ¥©¥ó¥È¤Ç¤¹¡£
Ank¤ÏKONATHN12.FNT¤ò¡¢S-Jis¤ÎKanji¤ÏKONATZN12.FNT¤ò»ÈÍѤ·¤Þ¤¹¡£
¾åµ¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¡¢»ä¤ÎL5¥×¥í¥¸¥§¥¯¥È¤Î²¼µ¥Ç¥£¥ì¥¯¥È¥ê¤ò
»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
./lib/FONTX2/inc/fonts/KONATSU
¢¨¾®²Æ¥Õ¥©¥ó¥È¤Ë¤Ä¤¤¤Æ¤ÏTTF¥Õ¥¡¥¤¥ë¤ÇÄ󶡤µ¤ì¤Æ¤ª¤ê¤Þ¤¹¡£
º£²ó¤Ï¤¢¤é¤«¤¸¤áFONTX2¥³¥ó¥Ð¡¼¥¿¤ÇTTF->FONTX2·Á¼°¤ËÊÑ´¹
¤·¤ÆÁ´³Ñ/Ⱦ³Ñ¤È¤â»ÈÍѤ·¤Æ¤ª¤ê¤Þ¤¹¡£


¤Þ¤º¤ÏSPI-ROM¤Îǧ¼±¤ÈÆÉ¤ß½Ð¤·¡£¤Á¤ã¤ó¤Èǧ¼±¤µ¤ì¤Æ¤¤¤ë¤Î¤ò³Îǧ¡£
¤Ä¤¤¤Ç¤ËÆÉ¤ß½Ð¤·¤¿¥Ç¡¼¥¿¤Ï¸å¤Ç»ÈÍѤ¹¤ë¤Î¤Çbin·Á¼°¤ÇÊݸ¤·¤Þ¤¹¡£


JtagKey2(¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ëFT2232H)¤ÎSCK¤ÏºÇÂç30MHz¤Î¥¹¥Ô¡¼¥È¤Ê¤Î¤Ç
ÇÛÀþĹ¤Ï¤Ê¤ë¤Ù¤¯Ã»¤¯¤·¤Þ¤·¤ç¤¦¡£5cm°Ê²¼¤À¤È¤Þ¤ºÌäÂê¤Ê¤¤¤Ç¤¹¡£
»Äǰ¤Ê¤¬¤é¤²¤¿¥²¥¿´ðÈĤÈNUCLEO´ðÈĤò¹çÂΤ·¤¿¾õÂ֤ǤϤޤȤâ¤Ëǧ¼±
½ÐÍè¤Ê¤«¤Ã¤¿¤Î¤ÇNUCLEO¤«¤é5V¤À¤±ÇÒ¼Ú¤·¤ÆW25Q128JVSIQ¤È°ìÂаì¤ÇÇÛÀþ
¤¹¤ë·Á¤Ë¤Ê¤ê¤Þ¤¹¡£¤Ê¤ª¡¢CS¤Ï¥×¥ë¥¢¥Ã¥×ɬ¿Ü¤Ê¤Î¤Ç¤¹¤¬¤Í¤à¤¤¤µ¤ó¤Ï
ǰ¤Î¤¿¤áCLK½ü¤¯¤¹¤Ù¤Æ¤ÎI/O¤ò22kohm¤Ç¥×¥ë¥¢¥Ã¥×¤·¤Æ¤Þ¤¹¡£
°ìÊýCLK¤ÏSDMMC¤ÈƱ¤¸¤¯Ä¾Îó½ªÃ¼Äñ¹³¤ò˺¤ì¤º¤Ë¡ª¡ª
¤Í¤à¤¤¤µ¤ó¤ÏSDMMC¤ÈƱ¤¸33ohm¤òľÎó½ªÃ¼¤È¤·¤Æ»ÈÍѤ·¤Æ¤Þ¤¹¡£
¤ª¼¡¤Ï½ñ¤¹þ¤ßÍѥХ¤¥Ê¥ê¤ÎºîÀ®¡£
¤Í¤à¤¤¤µ¤ó¤ÎÃΤë¸Â¤ê¤Ç¤ÏFlashrom¤Ï¥¢¥É¥ì¥¹¤ò¥ª¥Õ¥»¥Ã¥È»ØÄꤷ¤Æ
°ìÉô¤ÎÎΰè¤À¤±¤ò½ñ¤¹þ¤à¤³¤È¤¬¤Ç¤¤º¡¢Á´Îΰè°ìµ¤¤Ë½ñ¤¹þ¤ß¤·¤Ê¤¤¤È
¤¤¤±¤Ê¤¤¤Î¤ÇÀè¤ËÆÉ¤ß½Ð¤·¤¿bin¥Õ¥¡¥¤¥ë¤òÍøÍѤ·¤Æ¤½¤³¤ËFONTX2¥Õ¥¡¥¤¥ë
¤ò¾å½ñ¤¤¹¤ë·Á¤ÇÇÛÃÖ¤·FONTX2¤ò»Å¹þ¤ó¤ÀROM¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹¡£
¥Ð¥¤¥Ê¥êÊÔ½¸¥×¥í¥°¥é¥à"Stirling"¤ò¶î»È¤·¤Æ0x0000000¤ËANK¥Õ¥©¥ó¥È¤ò
0x00010000¤ËKanji¥Õ¥©¥ó¥È¤ò¤½¤ì¤¾¤ì¾å½ñ¤¥â¡¼¥É¤Ç¥³¥Ô¥ÚÇÛÃÖ¤·¤Þ¤¹¡£
¥ª¥Õ¥»¥Ã¥È¤Ï1¥Ð¥¤¥È¤Ç¤â¤º¤ì¤Ê¤¤¤è¤¦¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£

Ank¤ÏÇÛÃÖ¤µ¤ì¤ë¤È¤³¤ó¤Ê´¶¤¸

Kanji¤Ï¤³¤ó¤Ê¤«¤ó¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£

Stirling¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×ɽ¼¨¤À¤È¥Ð¥¤¥Ê¥ê¥¤¥á¡¼¥¸¤Ï¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£
¤Þ¤À¤Þ¤À°ìÇեǡ¼¥¿µÍ¤á¹þ¤á¤Þ¤¹¤Í¡£

¤½¤·¤Æ½ñ¤¹þ¤ß¡£JtagKey2¤ÈFlashrom¤ò»ÈÍѤ·¤¿ºÝ¤ÏÄ̾ï¤ÎSPI¤Ç
½ñ¤¹þ¤à¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤¬W25Q128JVSIQ¤Ï¥»¥¯¥¿½ñ¤¹þ¤ßÂбþ¤Ê¤Î¤Ç
16MByte¤â¤¢¤ëÍÆÎ̤Ǥâ2ʬ¤â¤«¤«¤é¤º½ª¤ï¤Ã¤Á¤ã¤¤¤Þ¤¹¡£

¤Í¤à¤¤¤µ¤ó¤Î¸ø³«¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ç¤Ï°ì±þºîÀ®ºÑ¤ß¤ÎQSPI-ROM
¥¤¥á¡¼¥¸(128QVFONT.bin)¤òźÉÕ¤·¤Æ´Êñ¤Ê»ÈÍѼê½ç¤â½ñ¤¤¤Æ¤Þ¤¹¤Î¤Ç
¿ì¶¸¤ÊÊý¤Ï¤´»²¹Í¤Ë¡Ä¡£
¤Þ¤¡»ä¤Î¤Ö¤í¤°ÉáÃʤ«¤é¸«¤é¤ì¤Æ¤ëÊý¤Ï³Ú¾¡¤À¤È»×¤¤¤Þ¤¹¡£
¤½¤ó¤Ê¤ï¤±¤ÇSTM32H5¤«¤é¤ä¤ëͽÄê¤À¤Ã¤¿OCTO-SPI¤Ç¤·¤¿¤¬L5¤Ç¤â¤¦¤Þ¤¯
»È¤¤¤³¤Ê¤¹¤³¤È¤¬¤Ç¤¤Þ¤·¤¿¡ª
L5¤Ç¤ä¤ê¤¿¤¤¤³¤È¤Ï°ìÄ̤êÁ´Éô¤ä¤êÀڤ俤ΤǤ¤¤¤´¶¤¸¤ÇSTM32H5¤Ø¤È
·Ò¤²¤Æ¹Ô¤¤¿¤¤¤È¤ª¤â¤¤¤Þ¤¹¡ª¡ª
Âç¼þ²óÃÙ¤ì¤ÇCortex-M33¤ÈSTM32L5¤Ï¤Â¤á¤Þ¤·¤¿
¡üM33½Ð¤Æ¤«¤é²¿Ç¯¤¿¤Ã¤Æ¤ë¤ó¤ÀYO
ÆÅARM¤«¤é¾®Ê¸»úarm¤ËÂå¤ï¤Ã¤Æ¤â¤Ï¤ä¿ôǯ¡Ä¤Í¤à¤¤¤µ¤ó¤â¤è¤¦¤ä¤Ã¤È
ARMv8¤ÎCortex-M33¥³¥¢¤Ë¼ê¤ò½Ð¤·¤Þ¤·¤¿¡Ä¡ª
¥»¥¥å¥ê¥Æ¥£¡¼µ¡Ç½¤ò¶¯²½¤·¤¿Cortex-M33¥³¥¢¤ÎSTM32L5¤Ç¤¹¡ª¡ª
¤Æ¤¤¤¦¤«2023ǯ¸½ºß¤ÏL5¤ò¤½¤ì¤¾¤ì¤ÎʬÌîÊ̤˿ʲ½¤µ¤»¤¿STM32U5¤ä
STM32H5¤âÅо줷¤Æ¤ª¤ê¤Þ¤¹¤¬¤Þ¤º¤ÏL5¤«¤é¹Ô¤¤Þ¤¹¡ª¡ª
¼ÂºÝ¤Ë¤ÏSTM32L552ZET6QU¤ò»ÈÍѤ·¤¿NUCLEO-L552ZE-Q¥Ü¡¼¥É¤òÆþ¼ê
¤¤¤¿¤·¤Þ¤·¤¿¡£
¤³¤ÎNUCLEO´ðÈĤÏ(¤Í¤à¤¤¤µ¤ó¤ÎÃæ¤Ç¤Î)Ä̾Î144PinÈÄNUCLEO¤È¸Æ¤Ð¤ì¤ë
¤â¤Î¤Ç¤¹¡£NUCLEO´ðÈIJ¤ÎÃæ¤Ç¤ÏºÇÂç¤ÎÂ礤µ¤È¤Ê¤ê¤Þ¤¹¤¬¥Ô¥ó¿ô¤Î
¿¤¤¥Þ¥¤¥³¥ó¤ò»È¤Ã¤Æ¤¤¤ë¤ª¤«¤²¤«³°Éô¤Ø°ú¤½Ð¤µ¤ì¤¿¥Ý¡¼¥È¤¬¸ÇÄê²½
¤µ¤ì¤Æ¤ª¤ê¡¢°Û¤Ê¤ëCPU´Ö¤Ç¤â²¼ÂÌ´ðÈĤò»È¤¤¤Þ¤ï¤»¤é¤ì¤ë¤È¤¤¤¦
¶Ë¤á¤ÆÂ礤ÊÍøÅÀ¤¬¤¢¤ê¤Þ¤¹¡£
Î㤨¤ÐSDMMC¤Î¥Ý¡¼¥È¤Ï¥³¥Í¥¯¥¿¤Î¤³¤Î°ÌÃÖ¤Ëɬ¤ºÇÛÃÖ¤µ¤ì¤Æ¤ª¤ê¡¢
°ìÅÙ´ðÈĤò¤³¤·¤é¤¨¤Æ¤·¤µ¤¨¤¹¤ì¤ÐSTM32H7¤À¤í¤¦¤¬STM32F4¤À¤í¤¦¤¬
STM32U5¤À¤í¤¦¤¬¤µ¤é¤ËºÇ¿·¤ÎSTM32H5¤Ç¤¹¤é144PinÈÇNUCLEO¤Ê¤é
Ʊ°ÌÃ֤ʤ櫓¤Ç¥Ï¡¼¥É¤È¥½¥Õ¥È¤ÎÀÚ¤êʬ¤±¤¬¤È¤Æ¤âÍÆ°×¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ü¤Æ¤ï¤±¤Ç144PinNUCLEO´ðÈÄÍÑÈÆÍѲ¼ÂÌ´ðÈĤòºî¤Ã¤Æ¤ß¤¿¡£
¤Í¤à¤¤¤µ¤ó¤ÏÎáÏÂ5ǯ¤Ë¤Ê¤Ã¤Æ¤â¼«ÎϤǥץê¥ó¥È´ðÈĵ¯¤³¤»¤Ê¤¤»¨µû
¤Ê¤Î¤Ç¥æ¥Ë¥Ð¡¼¥µ¥ë´ðÈĤȥݥꥦ¥ì¥¿¥óƼÀþ¤Ç¤»¤³¤»¤³ÇÛÀþ¤Ç¤¹¡Ä¡£
ÂçÆ°Ì®¤Î+3.3V¥é¥¤¥ó¤ÏLCD,SDMMC,QSPI/OCTO-SPI,I2S¥Ç¥Ð¥¤¥¹¤ÈÂçÎ̤Ë
ÅÅÎϤò¾ÃÈñ¤¹¤ë¤Î¤ÇNUCLEO¤Î+3.3V½ÐÎϤ«¤é¼èÆÀ¤ÏÉÔ²Äǽ¤Ç¤¹¡£
¤·¤¿¤¬¤Ã¤ÆVbus¤Î+5V¤«¤é+3.3V¤ò¸ÄÊ̤˺î¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£
¤³¤³¤ÇÅо줹¤ë¤Î¤¬Î÷²Á¤Ç¤Ñ¤ï¤Õ¤ê¤ã¡¼¤ÊLDO¡¢MIC37100-3.3WS-TR¤Ç¤¹¡ª
LT1963A¤¬¹âÎæ¤Î²Ö¤Ë¤Ê¤ê¡¢ADP3338¤¬NRND¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿º£¡¢¹âÀǽ
LDOÆṉ̃¤È¤Ê¤Ã¤¿¤Í¤à¤¤¤µ¤ó¤òµß¤¦¤Ñ¤ï¤Õ¤ê¤ã¡¼¤Ê¤ä¤Ä¤Ç¤¹¡£
¥É¥í¥Ã¥×¥¢¥¦¥ÈÅ۵¤Ï280mV/1A,10uF°Ê¾å¤Î¥»¥é¥ß¥Ã¥¯¥³¥ó¥Ç¥ó¥µ¤Ç
ưºî²Äǽ¤Ç¤ªÃÍÃÊ1¸Ä240±ß¤¯¤é¤¤¤Ê¤Î¤ÇÈó¾ï¤Ë¥ª¥È¥¯¤Ç¤¹¡ª¡ª¡ª
¤³¤Á¤é¤Ç¤â¾Ò²ð¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¥è¥í¥·¥¯¡ª
¤§¤Ã¤ÈÏ䬤½¤ì¤Þ¤·¤¿¤¬SDMMC¤Îü»Ò¤Ï¥Þ¥¤¥¯¥íSD¥³¥Í¥¯¥¿¤òºÎÍÑ
¤·¤Þ¤·¤¿¡£¤½¤ì¤È°ÊÁ°¤«¤é¸À¤Ã¤Æ¤¤¤ëÄÌ¤ê³Æ¥Ç¡¼¥¿¥é¥¤¥ó¤Î¥×¥ë¥¢¥Ã¥×&
½ªÃ¼¤Î½èÍý¤Ï͸À¼Â¹Ô¤Ç¤·¤Ã¤«¤ê»Ü¤·¤Æ¤ª¤ê¤Þ¤¹¡£¤Í¤à¤¤¤µ¤ó¤ÏCMD¤È
D0~D3¤Î¥×¥ë¥¢¥Ã¥×¤ò22kohm,CLK¤ÎľÎó½ªÃ¼¤Ï33ohm¤È¤·¤Þ¤·¤¿¡£
·ë¹½¥é¥Õ¤Ê¼ÂÁõ¤Ç¤¹¤¬¡¢CLK¤ËÁÞÆþ¤¹¤ëľÎó½ªÃ¼¤Î¸ú²Ì¤ÏÀäÂç¤Ç¤¹¡£
̵Äñ¹³¾õÂ֤ǤϤ³¤ó¤Ê˽¤ì¤Þ¤ï¤Ã¤Æ¤¤¤ëÀ¸°Õµ¤¥¯¥í¥Ã¥¯¥é¥¤¥ó¤â¡Ä
Äñ¹³¤òľÎó¤Ë¤Ö¤Á¤³¤à¤À¤±¤Ç¤³¤ó¤Ê¤Ë¤ï¤«¤é¤»¤é¤ì¤Þ¤¹¡ª¤³¤ì¤Ç
°ÂÄꤷ¤ÆSD¥«¡¼¥É¤Ë¥¢¥¯¥»¥¹¤¬¤Ç¤¤Æ¥½¥Õ¥È¤ËÀìǰ¤Ç¤¤Þ¤¹¤Í¡ª
ɽ¼¨¥Ç¥Ð¥¤¥¹¤Ï3ǯÁ°¤Ë¹ØÆþ¤·¤Æ²¹¤á¤¹¤®¤ÆÉå¤é¤»¤¿TFT-LCD¥â¥¸¥å¡¼¥ë¡¢
ATM0130B3¤òºÎÍѤ·¤Þ¤·¤¿¡£240x240¤Ê¤Î¤Ë1.3¥¤¥ó¥Á¤È¤È¤Ã¤Æ¤â¾®¤µ¤¤
¥â¥¸¥å¡¼¥ë¤Ê¤Î¤Ç¤¹¤¬¤³¤ÎNUCLEO´ðÈĤˤϤޤµ¤ËºÇŬ¤Ê¥ä¥Ä¤Ç¤¹¡£
¤³¤Î¥â¥¸¥å¡¼¥ë¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¥³¥ó¥È¥í¡¼¥é¤ÏST7789V2¤Ç¤¹¡£V2¤È¤«
¤ª¿¬¤Ë̾Á°¤¬ÉÕ¤¤¤Æ¤¤¤Þ¤¹¤¬2023ǯ¸½ºß¡¢¤³¤ÎST7789²¤ÏÅŻҹ©ºî¤Î
¤ª¶¡¤È¤·¤ÆÉ¬¤ºÌ¾Á°¤¬¾å¤¬¤ë¤¯¤é¤¤Í̾¤Ç¡¢¤â¤Ï¤äILI9341¤è¤ê¤â¹¤¯
»ÈÍѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¡¢¤Þ¤µ¤ËÇÆ¸¢¤ò°®¤Ã¤¿¤È¤¤¤Ã¤Æ¤â¤è¤¤¤Ç¤·¤ç¤¦¡£
¥Þ¥ë¥Á¥×¥ì¥Ã¥¯¥¹²½¤µ¤ì¤¿¥Ç¡¼¥¿¥é¥¤¥ó¤«¤é¥Ç¥Ð¥¤¥¹ID¼èÆÀ¤¹¤ëÊýË¡Åù¤Î
»ÈÍÑ»þ¤Î¥³¥Ä¤Ï¾ì¤ò²þ¤á¤Æ¥½¥Õ¥ÈÊԤǾҲ𤷤ޤ¹¡£
FONTX2Åù¤ÎÂçÍÆÎ̥ǡ¼¥¿¤ÎÊݸÀè¤È¤·¤Æ¥á¥â¥ê¥Þ¥Ã¥×¥É¤Ç¥ê¥Ë¥¢¤Ë
¥¢¥¯¥»¥¹¤Ç¤¤ëQSPI¤ò»ÈÍѤ·¤Þ¤¹¡£Áª¤ó¤À¥Ç¥Ð¥¤¥¹¤Ï¤³¤ì¤Þ¤¿ÅÅ»Ò
¹©ºî¤ÇÄêÈÖ¤ÎSPI-ROM¤Ë¤Ê¤Ã¤¿Winbond¤ÎW25Q128JVSIQ¤Ç¤¹¡£
¤Á¤Ê¤ß¤ËW25Q128JV¼«¿È¤ÏQSPI¥â¡¼¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¤¬
(¥Ñ¡¼¥Ä¥Ê¥ó¥Ð¡¼ËöÈø¤ÎIQ¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇQSPI¥â¡¼¥É¤Î°ÕÌ£)¡¢STM32L5¤Ë
¤ª¤¤¤Æ¤ÏOCTO-SPI¤È¤¤¤¦QSPI¤¬¤µ¤é¤Ë¥Ñ¥ï¡¼¥¢¥Ã¥×¤·¤¿¥â¥¸¥å¡¼¥ë¤¬
ÅëºÜ¤µ¤ì¤Æ¤ª¤ê¤Þ¤¹¡£
Ãí¡§´ð¼ÂÁõ¤Ï¤·¤Þ¤·¤¿¤¬¤¿¤Ö¤óL5ÈǤǻÈÍѤ»¤ºH5ÈÇNucleo¤Ç»È¤¦¤È»×¤¤¤Þ¤¹¡£
SAI¤Ë¤Ä¤¤¤Æ¤â¥Õ¥é¥Ã¥·¥åÍÆÎ̤δط¸¤ÇH5ÈÇNucleo¤Ç¾Ò²ð¤·¤Þ¤¹¡£
OCTO-SPI¼ÂÁõ¤·¤Þ¤·¤¿¡£
¤½¤ó¤Ê¤ï¤±¤Ç²¼ÂÌ´ðÈĤξҲð¤À¤±¤Ç°ìÇÕ°ìÇդˤʤäƤ·¤Þ¤¤¤Þ¤·¤¿¤Î¤Ç
¤Í¤à¤¤¤µ¤ó¤Î¤¤¤Ä¤â¤Î¤ËÁêÅö¤¹¤ëFatFs¤Î¼ÂÁõÅù¤Î¥½¥Õ¥È¥¦¥¨¥¢¤Î¾Ò²ð¤Ï
¼¡²ó°Ê¹ß½ç¼¡¾Ò²ð¤È¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£¹¹¿·´èÄ¥¤ë¤¾¤¤¡ª
¤Þ¤¿¡¢µ¤¤Å¤¤¤Æ¤ëÊý¤â¤¤¤ë¤È»×¤¤¤Þ¤¹¤¬¤¹¤Ç¤Ë¤ª¤¤Ñ¤ËFatFs¤Î¼ÂÁõÎã¤Î
L5¸þ¤±¥×¥í¥¸¥§¥¯¥È¤òÀè¹Ô¤Ç¸ø³«¤·¤Æ¤ª¤ê¤Þ¤¹¤Î¤Ç¶½Ì£¤¢¤ëÊý¤Ï¤³¤ì¤Ç
ͽ½¬¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£
AVR128DA¤È¤«DB¤ò¤â¤¦¤Á¤ç¤Ã¤È»È¤Ã¤Æ¤ß¤ë
¡üXMEGA¤Î¸å·Ñ¡ªµ¡Ç½ËþºÜ¤Ç¥¨¥é¥Ã¥¿¤âËþºÜ
ÉʼïŪ¤Ë¤ÏXMEGA¤Î¸å·Ñ¤È¤Ê¤ëAVR-Dx¥·¥ê¡¼¥º¡£¿ô¡¹¤Î¿·µ¡Ç½¤¬¤¢¤ê¤Þ¤¹¤¬
¤½¤ì¤ÏƱ»þ¤Ë¿ô¡¹¤Î¥¨¥é¥Ã¥¿¤ò»Å¹þ¤à¤³¤È¤È¤Ê¤ê¥¨¥é¥Ã¥¿¥·¡¼¥È¤È¥Á¥Ã¥×¥ê¥Ó¥¸¥ç¥ó¤Ë
Ãí°Õ¤·¤Æ¤ª¤«¤Ê¤¤¤È¥É¥Ï¥Þ¥ê¤·¤ÆÌܤβ¼¤Ë¥¯¥Þ¤Ä¤±¤Æ¥À¥Ö¥ë¥Ô¡¼¥¹¤·¤Æ
¤·¤Þ¤¤¤Þ¤¹¡£
¸½ºß¡¢AVR128DA¤ËÂåɽ¤µ¤ì¤ëAVR-DA¥·¥ê¡¼¥º¤ÈAVR-DB¥·¥ê¡¼¥º¤¬
ήÄ̤·¤Æ¤ª¤ê¤Þ¤¹¡£
DA¤ÈDB¤Î°ã¤¤¤Ï¥¢¥Ê¥í¥°Æþ½ÐÎϤ¬¤µ¤é¤Ë¶¯²½¤µ¤ì¤Æ¤¤¤ë¤Î¤È°Û¤Ê¤ëÅ۵¤Î
I/O¤½¤·¤ÆDA¤Ë¸ºß¤·¤¿¥¨¥é¥Ã¥¿¤¬½¤Àµ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ç¤¹¡£
¥Þ¥¤¥¯¥í¥Á¥Ã¥×¤Ï²áµî¤Î¥·¥ê¡¼¥º¤Ç½Ð¤¿¥¨¥é¥Ã¥¿¤Ï¿·¤·¤¤Åۤǽ¤Àµ¤¹¤ë¤è¤È¤¤¤¦
¥¹¥¿¥ó¥¹¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡Ä???¤³¤ì¤«¤éÇ㤦¿Í¤ÏDB¥·¥ê¡¼¥º°Ê¹ß¤Ë¤·¤Æ¤ª¤±¤ÐÊѤÊ
ÃÏÍëÆ§¤Þ¤º¤ËºÑ¤à¤È»×¤¤¤Þ¤¹¡£¤¿¤À¤·»ÈÍÑÁ°¤Ë¥¨¥é¥Ã¥¿¡¼¥·¡¼¥È¤Ïɬ¤ºÌܤò
Ä̤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
20240229ÄÉ:
½©·î¤µ¤ó¤è¤êAVR128DB28¤¬ÈÎÇ䤵¤ì¤Þ¤·¤¿¡ª¡ª¡ª¡ª¡ª¡ª
20240229ÄÉ:
¡üÀ½Â¤³«»Ïľ¸å¤ÎAVR32DA¤Ë¸ºß¤·¤¿Ã×̿Ū¥¨¥é¥Ã¥¿
¤µ¤ÆAVR¤Ï¥¢¥È¥á¥ë»þÂ夫¤é¤Þ¤ºÂ礤á¤ÎÍÆÎ̤ΥÁ¥Ã¥×ºî¤Ã¤Æ¤½¤Î¤¢¤È¥·¥å¥ê¥ó¥¯
¤·¤Æ¤¤¤¯ÎÌ»ºÂÎÀ©¤Îή¤ì¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬AVR128DA¤¬À¤¤Ë½Ð¤Æ¾¯¤··Ð¤Ã¤¿º¢¤Ë
À½Â¤¤µ¤ì¤¿AVR32DA¤È¤¤¤¦¥Á¥Ã¥×¤ËÃ×̿Ū¥¨¤Ê¥¨¥é¥Ã¥¿¤¬Â¸ºß¤·¤Æ¤¤¤Þ¤·¤¿¡ª¡ª¡ª
¥¨¥é¥Ã¥¿¤ÎÆâÍÆ¤ÏËÜÍè¤Ï4¥Ð¥¤¥ÈɬÍפʳä¤ê¹þ¤ß¥Ù¥¯¥¿¤¬2¥Ð¥¤¥È¹ï¤ß¤Ë¤Ê¤Ã¤Æ¤¤¤ë
¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£AVR32DA¤Î¥Õ¥é¥Ã¥·¥åÎΰ褹¤Ù¤Æ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë¤Ï³ä¤ê¹þ¤ß
¥Ù¥¯¥¿¤Ç4¥Ð¥¤¥È¤ÎjmpÌ¿Îá¤ò»È¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£¤¬¡¢¥Ï¡¼¥ÉŪ¤ËȯÀ¸¤¹¤ë³ä¤ê¹þ¤ß
Í×°ø¤Ï2¥Ð¥¤¥È¤º¤Ä¤ÇµÍ¤áµÍ¤á¤Ë¤Ê¤Ã¤Æ¤ë¤Î¤ÇjmpÌ¿Îá¤Ç¤Ï¤È¤ó¤ÀÀ褬¤á¤Á¤ã¤¯¤Á¤ã
¤Ë¤Ê¤Ã¤ÆrjmpÌ¿Îá¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢8kBʬ¤·¤«¥¢¥¯¥»¥¹¤Ç¤¤Þ¤»¤ó¡£
¢°Ê²¼AVR¤Î¥¸¥ã¥ó¥×Ì¿Îá¤Î»²¹Í»ñÎÁ
RJMP¤Ï16bit¥ª¥Ú¥³¡¼¥É¤Ê¤Î¤Ç2¥Ð¥¤¥È
(¥Õ¥é¥Ã¥·¥å8kB°Ê²¼¤Î¥Ç¥Ð¥¤¥¹¤Ï¤³¤Á¤é)
JMP¤Ï32bit¥ª¤Ú¥³¡¼¥É¤Ê¤Î¤Ç4¥Ð¥¤¥È
(¥Õ¥é¥Ã¥·¥å8kB°Ê¾å¤Î¤Ç¥Ç¥Ð¥¤¥¹¤Ï¤³¤Á¤é)
avr-gcc¤Ë´Ø¤·¤Æ¤Ï4¥Ð¥¤¥È¶èÀÚ¤ê¤Î³ä¤ê¹þ¤ß¥Ù¥¯¥¿¥¢¥É¥ì¥¹¤òÁ°Äó¤Ë
¥¹¥¿¡¼¥È¥¢¥Ã¥×¥³¡¼¥É¤¬¥Ó¥ë¥É¥¤¥ó¤µ¤ì¤Æ¤ª¤ê¤¦¤ó¤³¤Ä¤¤ÎAVR32DA¤Ç¤Ï
¤É¤¦´èÄ¥¤Ã¤Æ¤â¤Þ¤È¤â¤Ë³ä¤ê¹þ¤ß¤¬»È¤¨¤Þ¤»¤ó¡ª
¢¬¥Ç¡¼¥¿¥·¡¼¥È¤è¤êAVR32DA¤Î³ä¤ê¹þ¤ß¥Ù¥¯¥¿¤Î²òÀâ¡£
¥¢¥É¥ì¥¹¤Ï2¥ï¡¼¥É(=4¥Ð¥¤¥È)¶èÀÚ¤ê¤Ê¤Î¤¬¤ï¤«¤ê¤Þ¤¹¡£
AVR¤Ã¤ÆºÇ½é¤Ë½Ð¤¿Åö½é¤Ï"¤¹¤Ã¤¤ê16bit¥ª¥Ú¥³¡¼¥É"¤òÇä¤ê¤Ë¤·¤Æ¤ÆÅÁÅýŪ¤Ë
¥ï¡¼¥É(16bit)¤Ç¥×¥í¥°¥é¥à¥¢¥É¥ì¥¹¤òɽ¸½¤·¤Æ¤¤¿¤«¤é¥·¥å¥ê¥ó¥¯À߷פ·¤¿¿Í¤¬
¥Ð¥¤¥È¥¢¥É¥ì¥¹¤È´Ö°ã¤Ã¤Á¤ã¤Ã¤¿¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¡Ä
¤È¤¤¤¦¤ï¤±¤Ç¤³¤ÎÀ½Â¤½é´ü¤Ë½Ð¤Æ¤·¤Þ¤Ã¤¿AVR32DA¤Ï²ó¼ý¤µ¤ì¡¢¸½ºßήÄ̤·¤Æ¤¤¤ë
ʪ¤Ë¤Ä¤¤¤Æ¤ÏÀµ¤·¤¤³ä¤ê¹þ¤ß¥¢¥É¥ì¥¹´Ö³Ö¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤½¤¦¤Ç¤¹¡£¤ï¤¿¤·¤ÏÉݤ¯¤Æ
»È¤¦µ¤¤â¤Ê¤¤¤Ç¤¹¤±¤É¡ª
¤Á¤Ê¤ß¤ËÃ×̿Ū¤¹¤®¤ë¥¨¥é¥Ã¥¿¤æ¤¨¤Ë¥¨¥é¥Ã¥¿¡¼¥·¡¼¥È¤Ë¤ÏµºÜ¤µ¤ì¤Æ¤ª¤é¤º¡¢
AvrFreaks¤Ç»ØÅ¦¤¬¤¢¤Ã¤Æ½é¤á¤Æ¹¤¯ÃΤé¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤½¤¦¤Ç¤¹¡£
¡üAVR128DA¤Ë¤â¤ä¤Ã¤Ñ¤ê¤¢¤«¤ó¥¨¥é¥Ã¥¿
¤½¤·¤Æ»ä¤¬»ý¤Ã¤Æ¤¤¤ëAVR128DA¤â¥Õ¥é¥·¥å¥á¥â¥ê¤¬¤é¤ß¤Î¥¨¥é¥Ã¥¿¤¬¤¢¤ê¤Þ¤¹¤¬¡¢
¤½¤ì¤Ï²¼µ¤Î¾ò·ï¤¬¤¹¤Ù¤Æ½Å¤Ê¤Ã¤¿»þ¤Ëµ¯¤³¤ê¤Þ¤¹¡£
¡¥Õ¥é¥Ã¥·¥åÎΰè¤ò¥Ç¡¼¥¿Îΰè¤Î0x8000¤«¤é32kBʬ¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤ÆÆÉ¤ß½ñ¤¤¹¤ë
¢FUSEÎΰè¤ÎBOOTCODE¤Ë0°Ê³°¤Î¿ôÃͤ¬Æþ¤Ã¤Æ¤¤¤ë(=APPCODEÎΰè¤ò͸ú¤Ë¤¹¤ë)
£NVMCTRL.CTRLB¤ÎBOOTRP¤ò¤¿¤Æ¤Æ¥Ö¡¼¥ÈÎΰè¤Î¥×¥í¥Æ¥¯¥·¥ç¥ó¤ò¹Ô¤¦
¾åµ¤¹¤Ù¤Æ¤¬½Å¤Ê¤ë¤È32kB¶èÀÚ¤ê¤Î¤É¤ÎÎΰè¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤Æ¤âºÇ½é¤ÎBOOTCODE¤Î
Îΰ褬Ƭ¤Î¤Û¤¦¤Ë¤«¤Ö¤µ¤Ã¤Æ¤¤ä¤¬¤ê¤Þ¤¹¡ª¡ª
¢¬Ä¶¤ï¤«¤ê¤Å¤é¤¤¸ø¼°¤Î¥¨¥é¥Ã¥¿¥·¡¼¥È¤Î²òÀâDA!¡£
¥Ö¡¼¥ÈÎΰè¤òÀßÄꤷ¤Ê¤«¤Ã¤¿¤êLPM¤Ç¥Õ¥é¥Ã¥·¥åÎΰè¤Î¥Ç¡¼¥¿¤ÎÆÉ¤ß¼è¤ê¤¹¤ë¤Ê¤é
Á´¤¯µ¤¤Ë¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¤¬¤»¤Ã¤«¤¯¥Ç¡¼¥¿Îΰè¤Ë¥Õ¥é¥Ã¥·¥åÎΰè¤Î¥Ç¡¼¥¿¤ò
¥Þ¥Ã¥Ô¥ó¥°¤Ç¤¤ë¤Î¤Ç¤¹¤«¤é¤»¤á¤Æ³èÍѤϤ·¤¿¤¤¤Ç¤¹¤è¤Í¡Ä¡ª
¡üAVR-Dx¤òµß¤¤¤¿¤¤
¤È¤¤¤¦¤ï¤±¤Ç¤»¤á¤Æ32kBʬ¤À¤±¤Ç¤âPROGMEM¤·¤Ê¤¤¤ÇSTM32¤È¤«¤ÈƱ¤¸¤è¤¦¤Ë
const¤ÊÃͤòÃÖ¤¤¤Æ¤ß¤¿¤«¤Ã¤¿¤Î¤Ç¾åµ¥¨¥é¥Ã¥¿¤òƧ¤Þ¤Ê¤¤¤è¤¦¤ËÇÛθ¤·¤¿¤¦¤¨¤Ç
¥ê¥ó¥«¥¹¥¯¥ê¥×¥È¤ò¤¤¤¸¤ê¥Õ¥é¥Ã¥·¥åÎΰè¤Î¥Þ¥Ã¥Ô¥ó¥°µ¡Ç½¤òºÇÂç¸Â¤Ë³èÍѤ¹¤ë
ºîÀï¤ò¼è¤ê¤Þ¤·¤¿¡ª
£±¡¥Ä̾ïÈǤξì¹ç
¥Þ¥Ã¥Ô¥ó¥°¤ò»ÈÍѤ»¤ºÁÇľ¤ËPROGMEM¤·¤¿¾ì¹ç¤Î¥×¥é¥ó¤Ç¤¹¡£
128kByte¼«Í³¤Ë»È¤¨¤Þ¤¹¤¬64kB°Ê¾å¤ÎPROGMEM¤ÎÆÉ¤ß½Ð¤·¤Ïfar¥Ý¥¤¥ó¥¿¤ò
»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤Ê¤ª¡¢»ä¤Ï»È¤ª¤¦¤È¤¹¤ëAVR¤Î¥Õ¥é¥Ã¥·¥åÍÆÎ̤ò¸«¤Æfar»È¤¦¤«»È¤ï¤Ê¤¤¤«¤ò»È¤¤Ê¬¤±
¤é¤ì¤ë¤è¤¦¤Ë¤·¤Æ¤Þ¤¹¡£¤·¤«¤·¤Ê¤ó¤Ç¤â¤«¤ó¤Ç¤âfar¤Ë¤¹¤ë¤È¤Ù¤é¤Ü¤¦¤Ë¥ê¥½¡¼¥¹¤ò
¿©¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¤Î¤ÇChaN»Õ¤ËÊ襤far¤Ï¤Ê¤ë¤Ù¤¯»ÈÍѤ·¤Ê¤¤Êý¤¬µÈ¤Ç¤¹¡£
£²¡¥¥Þ¥Ã¥Ô¥ó¥°¤¢¤ê&¥Õ¥é¥Ã¥·¥åÍÆÎÌ32kB¤Î¥Þ¥¤¥³¥ó¤È¤·¤Æ»È¤¦
ÂŶ¨°Æ¤½¤Î1¡£AVR128DA¤ò32kBʬ¤·¤«»È¤ï¤º»Ä¤ê96kB¤Ï¸«¤Ê¤«¤Ã¤¿¤³¤È¤Ë¤·¤¿¤é
32kByteÁ´°è¤ËPROGMEM¤·¤Ê¤¤¤Ç¤âconst¤À¤±¤Ç¥¢¥¯¥»¥¹¤Ç¤¤ë¤ï♥ŽÔޝŽÀް!
¤Ã¤Æ¤¢¤Û¤«¡ª
£³¡¥¥Þ¥Ã¥Ô¥ó¥°¤¢¤ê&rodata¤À¤±ºÇ½ª¥»¥¯¥¿¤Ë²¡¤·¹þ¤à¡£
ÂŶ¨°Æ¤½¤Î2.¥ê¥ó¥«¥¹¥¯¥ê¥×¥È¤ò¤¤¤¸¤¯¤êÅݤ·¤Ærodata¤À¤±96kB°Ê¹ß¤Ë²¡¤·¹þ¤ó¤Ç
¤³¤ÎÎΰè¤ò¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¡ª
¤³¤ì¤¬°ìÈÖÂŶ¨¤Ç¤¤ÆÌµÆñ¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡©FONTX2¤ß¤¿¤¤¤ÊÇϼ¯¤Ç¤«¤¤
¥Õ¥¡¥¤¥ë¤ª¤«¤Ê¤¤¸Â¤ê¤Ï¥ê¡¼¥ÉÀìÍÑÎΰè32kB¤Ï½½Ê¬¤¹¤®¤ë¤È»×¤¤¤Þ¤¹¤è¤¥¡£
¥ê¥ó¥«¥¹¥¯¥ê¥×¥È¤Î¤¤¤¸¤ëºÝ¤Î¥ß¥½¤Ï__RODATA_PM_OFFSET__¤Ë¥Ç¡¼¥¿ÎÎ°è¤Ø
¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤¿¥¢¥É¥ì¥¹0x8000¤ò»ØÄꤹ¤ë¤³¤È¤Ètext¤Î¼¡¤Ërodata¤¬
Íè¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È(½ÅÍ×)
½çÈְִ㤨¤¿¤é¥Ó¥ë¥É¤¬Ä̤é¤Ê¤¤¤Ç¤¹¡£
¤³¤ó¤Ê¤ï¤±¤ÇAVR¡ÝDx¥·¥ê¡¼¥º¤ÎÇä¤ê¤Î°ì¤Ä¤À¤Ã¤¿¥Õ¥é¥Ã¥·¥åÎΰè¤Î¥Ç¡¼¥¿ÎÎ°è¤Ø¤Î
¥Þ¥Ã¥Ô¥ó¥°¤â°ì±þ»È¤¤¤â¤Î¤Ë¤Ê¤Ã¤Æ¤¤Þ¤·¤¿¤Î¤Ç¾¯¤·¤Ïµß¤¤¤Ë¤Ê¤Ã¤¿¤«¤È»×¤¤¤Þ¤¹¡ª
º£²ó¤Î¥½¡¼¥¹¥³¡¼¥É¤Ï¢¤Ë¤Ê¤ê¤Þ¤¹¡£²óÏ©¤ÏAVR128DA48-CuriosityNANO¤Ë½àµò¤·¤¿
¤Ä¤¯¤ê¤È¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¤¬ÀßÄê¤òÊѤ¨¤Æ¥Ó¥ë¥É¤·¤¿¤éDB¥·¥ê¡¼¥º¤Ç¤â»ÈÍѲÄǽ¤Ç¤¹¡£
AVR-DA¤È¤«DB¤È¤«Çã¤Ã¤¿¤Ï¤¤¤¤¤â¤Î¤Î»ý¤ÆÍ¾¤·¤Æ¤ëÊý¤Ï¤ª»î¤·¤¯¤À¤µ¤¤¡£
AVR128DA48 CuriosityNANO TestProgram.
¡üAVR-XMEGA¡¢¤ªÁ°¤Ïµß¤¨¤Ê¤¤
¾å¤Ç¤Á¤ç¤Ã¤È¿¨¤ì¤¿far»È¤¦»È¤ï¤Ê¤¤¤ÎȽÄê¤Ç¤¹¤¬XMEGA¤Ë¤â²£Å¸³«¤·¤Þ¤·¤¿¡£
ÂоݤÏChaN»á¤ÎAVRÈÇxprintf¤È»ä¤ÎavrÈÇfontx2¥É¥é¥¤¥Ð¤Ç¤¹¡£
FONTX2¥É¥é¥¤¥Ð¤È¤«¥µ¥¤¥º¤Ç¤«¤¤¤«¤é¤µ¤¤¤Ã¤·¤ç¤Ã¤«¤éfarɬ¿Ü¤Ç¤·¤ç
¤È¤ª»×¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¤¬ank¥³¡¼¥É¤À¤±¤Ê¤é10kbyte¤â¤Ê¤¤¤â¤Î¤¬
¤¢¤ë¤Î¤Ç¾¯¤·¤Ç¤â¥ê¥½¡¼¥¹¸º¤é¤¹¤¿¤á¤ËÄɲ䷤Ƥߤޤ·¤¿¡£
¤Ê¤ó¤È¤¤¤¦¤«4ǯ¤Ö¤ê¤Îxmega¤Î¹¹¿·¤ò¤·¤Þ¤·¤¿¤¬¤³¤³¤Þ¤Ç¥×¥í¥°¥é¥à¤Îµ¬ÌϤ¬
¤Ç¤«¤¯¤Ê¤ë¤È¤ä¤Ï¤êSTM32¤È¤«¤Î32bit¥Þ¥¤¥³¥ó¤Î¤Û¤¦¤¬»È¤¤¤ä¤¹¤¤¤Ê¤È´¶¤¸¤Þ¤¹¡£
°ìÊýAVR»È¤¦¤Ê¤é¥Õ¥é¥Ã¥·¥åÍÆÎÌ32kB°Ê²¼¤Î¤â¤Î¤ò»È¤Ã¤Æ¤¤¤¯¤Î¤¬Å¬ºàŬ½ê¤«¤Ê¤È
´¶¤¸¤Æ¤Þ¤¹¡£¿Ê²½¤ÎÂÞ¾®Ï©¤ËÆþ¤ê¤³¤ó¤ÀXMEGA¡£¤½¤³¤«¤éÀ¸¤Þ¤ì¤¿AVR-Dx¤Ï
¤É¤³¤Þ¤ÇÀµÅö¤Ê¿Ê²½¤ò³¤±¤é¤ì¤ë¤Î¤«¡©
¤³¤ì¤«¤é¤Î³èÌö¤ò¸«ÆÏ¤±¤¿¤¤¤È»×¤¤¤Þ¤¹¡ª
¤ª¤Þ¤±
͵פ·¤Ö¤ê¤ËXMEGA¿¨¤Ã¤¿¤«¤éA¤ÈAU¤Î°ã¤¤¤Ã¤Æ²¿¤À¤í¤¦¤ÈÄ´¤Ù¤¿¤éUSBµ¡Ç½ÄɲäÎ
¤Û¤«¤ËPORTL¤¬Â¸ºß¤·¤Ê¤¯¤ÆÉÔ²Äǽ¤À¤Ã¤¿4Port-EBI¤¬´°Á´¤Ë»ÈÍѤǤ¤ë¤Î¤¬È½ÌÀ¡ª
º£¤µ¤éÃÙ¤¤¤ó¤ÀYO!
STM32G0¤ò»È¤Ã¤Æ¤ß¤ë2 -I2C¤ò»È¤Ã¤Æ¤ß¤ë¤Æ¤¤¤¦¤«¤½¤ì¤°¤é¤¤¤·¤«»×¤¤¤Ä¤«¤Ê¤¤-
ËÜǯÅÙ¤â¸åȾ¤ËÆþ¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬º£Ç¯ºÇ½é¤Ë¾Ò²ð¤·¤¿STM32G0¤ò
¤â¤¦¤Á¤ç¤Ã¤È»È¤Ã¤Æ¸«¤è¤¦¤È»×¤¤¤Þ¤¹¡£
¤µ¤Æ¡ÄËÜÍè¤Ï¤³¤Î¤è¤¦¤Ê¹½À®¤ÇI2C¥Ç¥Ð¥¤¥¹¤ò»È¤¦Í½Äê¤Ç¤·¤¿¤¬¡Ä
»Äǰ¤Ê¤¬¤é¥ê¥Þ¥Ã¥×¤Î´Ø·¸¾å¤«¤Ê¤êÆñ¤·¤¤¤³¤È¤¬È½ÌÀ¡Ä¥ª¥×¥·¥ç¥ó¥Ð¥¤¥È¤òÏ®¤é¤º
¼«Í³¤Ë»È¤¨¤ë¤Î¤Ï¤¿¤Ã¤¿¤Î3¥Ý¡¼¥È¤Î¤ß¡ª
¤·¤«¤âSTM32G031-Discovery¸ß´¹¤Ç¤ÏI2C¤ÎSDA¤Ç»È¤¦PA12(6Pin)¤¬
LED¤Ë¼è¤é¤ì¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ç¤ª¿É¤¤¡Ä
¤½¤ó¤Ê¤ï¤±¤ÇÀÞȾ¤Ç¤³¤Î¤è¤¦¤Ê²óÏ©¹½À®¤Ë¤·¤Æ¤ß¤Þ¤·¤¿¡£LED¤ÈI2C¤ÎSDA¤ò
´³¾Ä¤µ¤»¤Ê¤¤¤è¤¦¤Ë¤ï¤¶¤ï¤¶¹â®¥Ð¥Ã¥Õ¥¡¤ò¶´¤àËÜËöžÅݡĤÀ¤¬¤½¤ì¤¬¤¤¤¤
SWCLK,SWDIO,nReset¤Ï¤¤¤Ä¤Ç¤â»È¤¨¤ë¤è¤¦¤·¤Æ¤ª¤¤Þ¤·¤¿¡£Àè¿Í¤ÎÊý¡¹¤â
I2CÀìÍÑ¤ÇÆ°¤«¤¹¤³¤È¤òÁ°Äó¤Ç¤³¤ì»È¤Ã¤Æ¤ë´¶¤¸¤Ç¤¹¤Í¡£
¤½¤ì¤È¤¢¤Þ¤Ã¤¿PC14(1Pin)¤Ï1wire¤Ç¤â¤Ö¤é²¼¤²¤ë¤È¤·¤Þ¤¹¤«¡Ä
¥Ô¥ó¤ÎÁªÄê¤Ë¤Ä¤¤¤Æ¤Ïº£²ó¤Ï²¼µ¤ÎÊý¤Îµ»ö¤ò»²¹Í¤Ë¤·¤Þ¤·¤¿¡£
¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
CrescentÍÍ
http://meerstern.seesaa.net/article/477348927.html
¥·¥¹¥Æ¥à´ØÏ¢¥Ô¥ó¤ÎGPIO²½¤ËºÝ¤¹¤ëÃí°Õ¤ò¾Ü¤·¤¯²òÀ⤵¤ì¤Æ¤¤¤Þ¤¹¡£
caa45040ÍÍ
https://qiita.com/caa45040/items/a6ca28ae4b1dfa5c489c
¥ª¥×¥·¥ç¥ó¥Ð¥¤¥È¤ò¤¤¤¸¤ê¥ê¥¹¥¯¤òÉé¤Ã¤Æ¤¿¤¯¤µ¤óÀ½ºî¤µ¤ì¤Æ¤ª¤é¤ì¤Þ¤¹
¤Í¤à¤¤¤µ¤ó¤âS-5851A»ý¤Ã¤Æ¤¤¤ë¤Î¤Ç¤»¤Ã¤«¤¯¤À¤«¤é¤Þ¤Í¤µ¤»¤Æ¤â¤é¤¤¤Þ¤¹
±Õ¾½¤Ï¤â¤Á¤í¤ó¥É¥Ã¥È¥Þ¥È¥ê¥¯¥¹¤ÊÃæ²ÚI2C±Õ¾½¤Ç¤¹¡ª
ROM¤¬32Kbyte¤¢¤ë¤Î¤Çfontx2¤Çank¥Õ¥©¥ó¥È¤¯¤é¤¤¤Ïɽ¼¨¤Ç¤¤Þ¤¹¤Í¡ª
±Õ¾½¤Ë¤Ä¤¤¤Æ¤Ï²áµîµ»ö¤Î¤³¤Á¤é¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£
°ì»þ´üaitendo¤ÇÇä¤Ã¤Æ¤¿¤Î¤Ç»ý¤Ã¤Æ¤ëÊý¤Ï¤Þ¤À¤¤¤ë¤«¤â¡ª¡©
ÆÃ¤Ë¥ê¥Þ¥Ã¥×¤È¤«¤Ï¹Ô¤ï¤º¡¢¥Ñ¥ï¡¼¥ª¥ó¥ê¥»¥Ã¥È¸å¤ÎGPIO¥Ý¡¼¥È¤ò¤½¤Î¤Þ¤Þ
»ÈÍѤ¹¤ë¤Î¤Ç5Pin¤¬I2C2¤ÎSCL,6Pin¤¬I2C2¤ÎSDA¤È¤·¤Þ¤¹¡£
¤Þ¤¿¡¢S-5851A¤Î¥¢¥É¥ì¥¹¤ÏAD1=1,AD0=0¤È¤·¤Æ
0x94(7¥Ó¥Ã¥È¥¢¥É¥ì¥¹¤À¤È0x4A)¤Ë¡£
¤¢¤È¤ÏSTM32F03¤Î¥×¥í¥¸¥§¥¯¥È¤«¤éI2C¥é¥¤¥Ö¥é¥ê¤ò¥µ¥¯¤Ã¤È°Ü¿¢¤·Æ°ºî´°Î»¡ù
¤¹¤´¤¤¤ä¤Ã¤±¤Ä´¶¤Ç¤¹¤¬¤¢¤Ã¤±¤Ê¤¯¤Ç¤¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£¤µ¤¹¤¬»ä
STM32G0¤ÎI2C¼þ¤ê¤ÏSTM32F3¤äF0·Ï¤È¤Û¤ÜƱ¤¸¥ì¥¸¥¹¥¿¹½À®¤Ê¤Î¤Ç¤ä¤ä¤³¤·¤¤
¥¿¥¤¥ß¥ó¥°¥ì¥¸¥¹¥¿¤ÎÀßÄêÃͤ⥿¥¤¥ß¥ó¥°ÃÍ·×»»µ¡¤Ç»»½Ð²Äǽ¤Ç¤¹¡£
STM32¤ÎHSI¤Ï16MHz,¤½¤³¤«¤éSysClock¤Î64MHz¤Ë¤·¤Þ¤¹¡£
¤³¤ÎÀßÄê¤Ç100kHz¤ÎI2C¥¯¥í¥Ã¥¯¤òÀ¸À®¤¹¤ë¿ôÃͤòÂåÆþ¤·¤Þ¤¹¡£
¥ª¥·¥í¥¹¥³¡¼¥×¤Ç¼ÂºÝ¤ÎÇÈ·Á¤ò¥¥ã¥×¥Á¥ã¤·¤¿¤È¤³¤í¤Ç¤¹¡£¤¤Ã¤«¤ê100kHz¤Ï
½Ð¤Þ¤»¤ó¤¬¤Þ¤¡¤À¤¤¤¿¤¤¶á¤¤¤Ç¤¹¤Í¡£²èÁü¤ÏSTTS751¤È¤ÎÄÌ¿®(I2C¥¢¥É¥ì¥¹0x72¡¢
7¥Ó¥Ã¥È¥¢¥É¥ì¥¹¤Ç¤Ï0x39)¤Ç¤¹¡£
¤³¤ó¤Ê´¶¤¸¤ÇI2C¤Î²òÀϤËPicoscopeÂç³èÌö¤Ç¤¹¤ï¡£
¤½¤¦¤À¤ÍÀëÅÁ¤À¤Í¡£
¤½¤ó¤Ê¤ï¤±¤Ç½Å¤¤¹ø¤ò¾å¤²¤ÇSTM32G0¤Î³¤¤ä¤Ã¤Æ¤ß¤Þ¤·¤¿¤¬¤¢¤È¤«¤éÍ褿¿Í¤Ë
¤É¤ó¤É¤óÀè¤ò±Û¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬¤¤¤Ä¤â¤Î´¶¤¸¤Ç¤ä¤Ã¤Æ¤¤¤³¤¦¤È»×¤¤¤Þ¤¹¡£
¤½¤·¤Æ¡Ä¾®¤µ¤Êµð¿ÍSTM32G0¤Ç¼¡Æ°¤«¤¹¥Ç¥Ð¥¤¥¹¤Ï¡Ä
¤³¤¤¤Ä¤À¡ª
¤Ä¤Å¤¯¡ª
¤ª¤Ã¤È¡¼¤½¤ÎÁ°¤Ëµ×¡¹¤Î¿·µ¬¥×¥í¥¸¥§¥¯¥È¤Ë¤Ê¤ê¤Þ¤¹¤¬¤³¤Á¤é¤Ë¥¢¥Ã¥×¥í¡¼¥É¤·¤Æ
¤ª¤ê¤Þ¤¹¤Î¤Ç¼«¸ÊÀÕǤ¤Ç¤É¤¦¤¾¡£
¤¤¤í¤¤¤í»î¤¹46(+2020ǯȿ¾Ê²ñ)
¤Í¤à¤¤¤µ¤ó¤Ï°¤¯¤Ê¤¤Á´Éô¥³¥í¥Ê¤Î¤»¤¤Á´Éô¡ª
È¿¾Ê²ñ½ªÎ»¡ª
¡Ä
¤µ¤ÆËÜÂê¤ËÆþ¤ê¤Þ¤¹¡Ä
¡üOpenOCDºÇ¶á¤Î¹¹¿·¥È¥Ô¥Ã¥¯
Æü¡¹Ãå¼Â¤Ëµ¡Ç½¤òÁý¶¯¤·¤Æ¤¤¤ëOpenOCD¡£¤³¤³¿ô¤«·î¤Î¹¹¿·¤Ç¤á¤Ü¤·¤¤¹¹¿·¤ò
¥Ô¥Ã¥¯¥¢¥Ã¥×¤·¤Æ¤ß¤Þ¤¹¡£
£±¡¥QSPI/OCTOSPI¤Î¥µ¥Ý¡¼¥È¤¬¤Ä¤¤¤Ë¸ø¼°¼ÂÁõ¡ª¡ª
²¿Ç¯ÂÔ¤¿¤»¤¿¤ó¤ÀYO!
¤Í¤à¤¤¤µ¤óÂÔ˾¤ÎQSPI-ROM¤ÎOpenOCD¤«¤é¤ÎÆÉ¤ß½ñ¤µ¡Ç½¤¬¤è¤¦¤ä¤¯¸ø¼°¤Ë
¥Þ¡¼¥¸¤µ¤ì¤ë±¿¤Ó¤È¤Ê¤ê¤Þ¤·¤¿¡£¤Í¤à¤¤¤µ¤ó¤ÎSTM32F7¤äH7¤ÎºîÎã¤Çmakefile
¤ß¤¿¤éµ¤ÉÕ¤¤¤¿Êý¤â¤¤¤ë¤È»×¤¤¤Þ¤¹¡£°ì±þ°ÊÁ°¤«¤é¥Ñ¥Ã¥Á¤òÅö¤Æ¤¿¥Ó¥ë¥É¤Ï
¸ø³«¤·¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¤Ê¤«¤Ê¤«¤Ë¤Ã¤Á¤Ë¤Ê¼ûÍפÀ¤Ã¤¿¤Î¤Çɽ¤Î½Ð¤µ¤º¤Ë¤·¤Æ
¤ª¤¤Þ¤·¤¿¡£
¸ø¼°¥Þ¡¼¥¸¤Ë¤¢¤¿¤ê¡¢¼ã´³¤Îư¤«¤·Êý¤Îº¹°Û¤¬È¯À¸¤·¤Æ¤Þ¤·¤¿¤Î¤Ç¤³¤Á¤é¤Ç
µÛ¼ý¤·¤Æ¤ª¤ê¤Þ¤¹¡£
makefile¤Ï516¹ÔÌܤ«¤é¡¢
¼ÂºÝ¤Ë½ñ¤¹þ¤ß¤Ë»ÈÍѤ¹¤ëOpenOCD¤Îcfg¤Ï»ä¤Î¥Ð¥¤¥Ê¥êƱº¤Îstm32h7disco_dap_flash.cfg
¤Î170¹ÔÌܤ¯¤é¤¤¤ò»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¼ÂºÝ¤ËQSPI-ROM¤ËÆÉ¤ß½ñ¤¤·¤¿ÍͻҤϤ³¤ó¤Ê´¶¤¸¤Ç¤¹¡£
¢mass_erase¤Î»þ
> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd -s C:/Devz/ARM/OCD/tcl -f target/stm32h7disco_dap_flash.cfg -c "eraser_qspi"
Open On-Chip Debugger 0.11.0-rc1+dev-00010-gc69b4deae (2020-12-27-08:37)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
force hard breakpoints
Info : STLINK V3J4M2 (API v3) VID:PID 0483:374E
Info : Target voltage: 3.219171
Info : Unable to match requested speed 1800 kHz, using 1000 kHz
Info : Unable to match requested speed 1800 kHz, using 1000 kHz
Info : clock speed 1000 kHz
Info : stlink_dap_op_connect(connect)
Info : SWD DPIDR 0x6ba02477
Info : stm32h747xih6.cpu0: hardware has 8 breakpoints, 4 watchpoints
Error: stm32h747xih6.cpu0 -- clearing lockup after double fault
Polling target stm32h747xih6.cpu0 failed, trying to reexamine
Info : stm32h747xih6.cpu0: hardware has 8 breakpoints, 4 watchpoints
Info : starting gdb server for stm32h747xih6.cpu0 on 3333
Info : Listening on port 3333 for gdb connections
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
Info : flash1 'micron mt25ql512' id = 0x20ba20 size = 65536kbytes
Info : flash2 'micron mt25ql512' id = 0x20ba20 size = 65536kbytes
shutdown command invoked
> Process Exit Code: 0
> Time Taken: 00:02
¢FontX2¥Õ¥¡¥¤¥ë¤Ê¤É¤Î¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ò½ñ¤¹þ¤ó¤À»þ
> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd -s C:/Devz/ARM/OCD/tcl -f target/stm32h7disco_dap_flash.cfg -c "mt_flash_qspi lib/FONTX2/inc/fonts/ILFONT/ILGZ24XF.FNT 0x90010000"
Open On-Chip Debugger 0.11.0-rc1+dev-00010-gc69b4deae (2020-12-31-18:42)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
force hard breakpoints
Info : STLINK V3J4M2 (API v3) VID:PID 0483:374E
Info : Target voltage: 3.217121
Info : Unable to match requested speed 1800 kHz, using 1000 kHz
Info : Unable to match requested speed 1800 kHz, using 1000 kHz
Info : clock speed 1000 kHz
Info : stlink_dap_op_connect(connect)
Info : SWD DPIDR 0x6ba02477
Info : stm32h747xih6.cpu0: hardware has 8 breakpoints, 4 watchpoints
Info : starting gdb server for stm32h747xih6.cpu0 on 3333
Info : Listening on port 3333 for gdb connections
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08050484 msp: 0x20020000
Info : flash1 'micron mt25ql512' id = 0x20ba20 size = 65536kbytes
Info : flash2 'micron mt25ql512' id = 0x20ba20 size = 65536kbytes
Info : Device: STM32H74x/75x
Info : flash size probed value 2048
Info : STM32H7 flash has dual banks
Info : Bank (0) size is 1024 kb, base address is 0x08000000
Info : Device: STM32H74x/75x
Info : flash size probed value 2048
Info : STM32H7 flash has dual banks
Info : Bank (1) size is 1024 kb, base address is 0x08100000
Info : wrote 636586 bytes from file lib/FONTX2/inc/fonts/ILFONT/ILGZ24XF.FNT in 17.585402s (35.351 KiB/s)
shutdown command invoked
> Process Exit Code: 0
> Time Taken: 00:19
QSPI¤ÎÆÉ¤ß½ñ¤¤Ë´Ø¤·¤Æ¤ÎÃí°ÕÅÀ¤Ç¤¹¤¬¸½¾õ¤Ï´°Á´°ÂÄê¤È¤Ï¸À¤¨¤º¡¢¾Ãµî¤ä
½ñ¤¹þ¤ß¤ò¹Ô¤¦ÅÙ¤ËÅŸ»¤òÅêÆþ¤·¤Ê¤ª¤µ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¤¤¤º¤ì¤Ï²ò·è¤µ¤ì¤ë¤Ç¤·¤ç¤¦¤¬¤³¤ÎÅÀ¤À¤±¤Ï¤´Î±°Õ¤¯¤À¤µ¤¤¡£
£²¡¥ST-Link¤Ç16bit¤Î¥á¥â¥êÆÉ¤ß½ñ¤¤¬¼ÂÁõ¤µ¤ì¤ë
²¿Ç¯ÂÔ¤¿¤»¤¿¤ó¤ÀYO!¤â¤¦7ǯ¤¯¤é¤¤¤¿¤Ã¤Æ¤ëYO¡ª
º£¹¹¤â¤¦ÃÙ¤¤¤è¤¥¡ª¡ª¡ª
FM3¤Î¥Õ¥é¥Ã¥·¥å¥³¥ó¥È¥í¡¼¥é¤¿¤¿¤¯°Ê³°¤Ë²¿¤ÎÍѤ¬¤¢¤ë¤Î¤«¡ª¡©
º£¤È¤Ê¤Ã¤Æ¤Ï»È¤¤Æ»¤¬Ê¬¤«¤ê¤Þ¤»¤ó¡Ä
¡üarm-gccÄê´ü¹¹¿·
arm-gcc¤â12·î¤Ë¹¹¿·³Ý¤«¤Ã¤Æ¤Þ¤·¤¿¡£
¼ç¤ÊÊѹ¹ÅÀ¤Ï¤Ä¤¤¤ËGCC10.0¤Ë¤Ê¤Ã¤¿¤³¤È¤Ç¤·¤ç¤¦¤«¡£
¤È¤ê¤¢¤¨¤ºSTM32H7¤Î¥Ó¥ë¥É¥µ¥¤¥º¤ÎÈæ³Ó¡Ä
¢Á°²ó¤Î
arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 8-2019-q3-update) 8.3.1 20190703 (release) [gcc-8-branch revision 273027]
Copyright (C) 2018 Free Software Foundation, Inc.
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 768116 0 768116 bb874 main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
765464 2652 2383344 3151460 301664 main.elf
main.elf :
section size addr
.text 0xbaca0 0x8000000
.ctors 0x0 0x80baca0
.dtors 0x0 0x80baca0
.ARM.exidx 0x8 0x80baca0
.itcm 0x170 0x0
.data 0xa5c 0x24000000
.bss 0x11c68 0x24000a60
.heap 0x0 0x240126c8
.dtcm 0x20c 0x20000000
.stack 0x4 0x2000020c
.ram1_d2 0x0 0x30000000
.ram2_d2 0x0 0x30020000
.ram3_d2 0x0 0x30040000
.ram4_d3 0x0 0x38000000
.batram 0x0 0x38800000
.extram 0x233f78 0xd0000000
.qspirom 0x0 0x90000000
.comment 0x76 0x0
.debug_aranges 0x4d48 0x0
.debug_info 0x186579 0x0
.debug_abbrev 0x1f290 0x0
.debug_line 0xba997 0x0
.debug_frame 0x16ca8 0x0
.debug_str 0x1c2fb 0x0
.debug_loc 0x1439d1 0x0
.ARM.attributes 0x32 0x0
.debug_ranges 0x1dc00 0x0
Total 0x6fab68
> Process Exit Code: 0
> Time Taken: 02:09
¢º£²ó¤Îarm-none-eabi-gcc (GNU Arm Embedded Toolchain 10-2020-q4-major) 10.2.1 20201103 (release)
Copyright (C) 2020 Free Software Foundation, Inc.
Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 770912 0 770912 bc360 main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
768260 2652 2383336 3154248 302148 main.elf
main.elf :
section size addr
.text 0xbb780 0x8000000
.ctors 0x0 0x80bb780
.dtors 0x0 0x80bb780
.ARM.exidx 0x8 0x80bb780
.itcm 0x17c 0x0
.data 0xa5c 0x24000000
.bss 0x11c60 0x24000a60
.heap 0x0 0x240126c0
.dtcm 0x20c 0x20000000
.stack 0x4 0x2000020c
.ram1_d2 0x0 0x30000000
.ram2_d2 0x0 0x30020000
.ram3_d2 0x0 0x30040000
.ram4_d3 0x0 0x38000000
.batram 0x0 0x38800000
.extram 0x233f78 0xd0000000
.qspirom 0x0 0x90000000
.comment 0x4d 0x0
.debug_aranges 0x4d20 0x0
.debug_info 0x118dd1 0x0
.debug_abbrev 0x18cba 0x0
.debug_line 0xb91af 0x0
.debug_frame 0x13678 0x0
.debug_str 0x1bc3c 0x0
.debug_loc 0x14a497 0x0
.ARM.attributes 0x32 0x0
.debug_ranges 0x1cd68 0x0
Total 0x687fd4
> Process Exit Code: 0
> Time Taken: 02:07
¤¦¡É¡Ä¥µ¥¤¥ºÁý¤¨¤Æ¤ë¡Ä
¼Â¤Ï¤Á¤ç¤Ã¤Èº¤¤Ã¤¿¤³¤È¤¬¤¢¤Ã¤ÆGCC10.0¤Ë¾å¤¬¤Ã¤¿¤»¤¤¤ÇChaN»á¤ÎFatFs¤Ç
¥ï¡¼¥Ë¥ó¥°¤¬½Ð¤Á¤ã¤Ã¤Æ¤¤¤Þ¤¹¡£

¢¬2048¹ÔÌܤǥ¥Ë¥ó¥°¤¬½Ð¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤ÏÇÛÎó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬0¤«¤é¤µ¤é¤Ë¥Ç¥¯¥ê¥á¥ó¥È¤µ¤ì¤ë
¥³¡¼¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤È¿ä¬¤µ¤ì¤Æ¤È¤¤Ëȯư¤µ¤ì¤ë¤è¤¦¤Ç¤¹¡£
/* itoa (hexdecimal) */
i = 7;
do {
c = (BYTE)((seq % 16) + '0');
if (c > '9') c += 7;
ns[i--] = c;
seq /= 16;
if(i==0) break; /* Nemui */
} while (seq);
ns[i] = '~';
¢¬¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬0¤Î»þ¤ÎȽÄêʸÄɲ䷤ƤªÃã¤òÂù¤·¤Æ¤Þ¤¹¡Ä
ChaN¤µ¤ó¤³¤ì¸«¤Æ¤¿¤é¸ú²ÌŪ¤Ê¥ï¡¼¥Ë¥ó¥°Âкö¤ª´ê¤¤¤·¤Þ¤¹¡ª£±£±¡ª¡ª¡ª

¤¢¤È¤³¤ì¤Ïµ¤¤Ë¤·¤Ê¤¤¤Ç¤¤¤¤¤é¤·¤¤¤Ç¤¹¡Ä
¤½¤ì¤ÈSTM32F7discovery¤Ë¤ª¤¤¤ÆºÇŬ²½¤ÎÌäÂê¤Ë°ú¤Ã¤«¤«¤Ã¤ÆÀµ¾ï¤Ë
LCD¤¬É½¼¨¤µ¤ì¤Ê¤¯¤Ê¤ë¸½¾Ý¤¬È¯À¸¤·¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¤¹¤¬pragma¤ÇºÇŬ²½¤ò
ÀڤäÆÂн褷¤Æ¤Þ¤¹¡Ä¤â¤Ã¤È¤¤¤¤ÊýË¡¤¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬º£¤Ï¤³¤ì¤¬
ºÇŬ²ò¡Ä
¡ü½©·î¤ÇSTM32G0¡¢STM32L0Äɲ᪡ª
¤Ê¤ó¤È½©·î¤µ¤ó¤è¤êSTM32L0¤È8pin¤ÎSTM32G0¤¬Äɲäµ¤ì¤Æ¤Þ¤¹¡ª¡ª


¼Â¤Ï¤¹¤Ç¤ËÆþ¼ê¤·¤ÆÆ°ºî³Îǧ¤â¹Ô¤Ã¤Æ¤Þ¤¹¤¬¤³¤³¤ÇÏ乤ˤϿ¤¹¤®¤ë
ÆâÍÆ¤Ç¤¹¤Î¤Ç¼¡²ó°Ê¹ß¤Ë¤³¤¦¤´´üÂÔ¡ª¡ª¡ª¡ª
¡ü°Â²Á¤ÊAVR128DA48ɾ²Á¥Ü¡¼¥É¥²¥Ã¥Ä¡ª

AVR¤ÎÀµÅö¿Ê²½·Ï¤ÎAVR128¥·¥ê¡¼¥º¡£
AVR128DA48¤ÎĶ³Ê°Â¤Îɾ²Á¥Ü¡¼¥É¤ò¼ê¤ËÆþ¤ì¤Þ¤·¤¿¡ª¡ª
¤½¤Î̾¤âAVR128DA48 Curiosity Nano¡ª¡ª¡ª
¤·¤«¤âÅ۵ÊÑ´¹µ¡Ç½¤ò»ý¤Ã¤¿mEDBG¤Ä¤¡ª¡ª
¤â¤¦AVR¥é¥¤¥¿¤Ïºî¤ë»þÂ夫¤é°Â²Á¤ÇÇ㤦»þÂå¤ËÊÑÁ«¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤Í¡Á
¤Á¤Ê¤ß¤Ëavrdude¤Ï¥Ó¥ë¥É¥¤¥ó¤µ¤ì¤¿mEDBG¤ÈAVR128¥·¥ê¡¼¥º¤Ë¤ÏÂбþ¤·¤Æ
¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¿À¥Ñ¥Ã¥Á¤Ë¤è¤Ã¤Æ¼«Í³¼«ºß¤Ë¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¡ª¡ª
¤³¤Á¤é¤âSTM32G0¤ÈƱ¤¸¤¯Íèǯ¤ß¤Ã¤Ã¤Ã¤Ã¤Ã¤Ã¤Ã¤Ã¤Ã¤Á¤ê¤ÈÆÃ½¸¤µ¤»¤Æ¤â¤é¤¤
¤Þ¤¹¤Î¤Ç´üÂÔ¤·¤Æ¤ªÂÔ¤Á¤¯¤À¤µ¤¤¡ª¡ª
¤È¸À¤¤¤¿¤¤¤È¤³¤í¤Ç¤¹¤¬Àè¹Ô¤ÇAVR128DA48 Curiosity Nano¤ËÂбþ¤·¤¿
avrdude¤ò¸ø³«¤·¤Æ¤ª¤ê¤Þ¤¹¡ª¡ª¡ª
¶½Ì£¤¬¤¢¤ëÊý¤Ï¤É¤ó¤É¤ó»È¤Ã¤Æ¤¯¤À¤µ¤¤¡ª¡ª¡ª
¡Ä¤È¤¤¤¦¤ï¤±¤Çº£Ç¯¤â¶î¤±¹þ¤ß¤Ç¤Ð¤¿¤Ð¤¿¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬¤¿¤¯¤µ¤ó
Ç㤤¹þ¤ó¤À¥Þ¥¤¥³¥ó¤ä¥»¥ó¥µ´ðÈĤȤ«¤Îɾ²Á¤âÍèǯ¤â¿Ê¤á¤Æ¤¤¤¤¿¤¤¤È»×¤¤¤Þ¤¹¡Ä
³§¤µ¤Þ¤â¤è¤¤¤ªÇ¯¤ò¡Á
>¤Í¤à¤¤¤µ¤ó¡Å¡ÅDropBox¤Î¸«¤¨¤Ê¤¯¤Ê¤Ã¤¿²èÁüŽÉŽÎ޳ŽÊ¡Ä
Íèǯ¤«¤éËܵ¤½Ð¤¹¡ª¡ª¡ª¡ª¡ª£±¡ª¡ª
STM32H7¤ò»È¤Ã¤Æ¤ß¤ë4 -¥¥ã¥Ã¥·¥å¡¦¥ï¥ó¥À¥ê¥ó¥°(ÃæÊÓ)-
¢«Á°²ó¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¼¡²ó¢ª
¼«Âð¤ÎPC´Ä¶¤ò´°Á´¤ËWin10¤ËÀÚ¤êÂØ¤¨¤Þ¤·¤¿¡£
¥Ï¡¼¥É¥¦¥¨¥¢¤â11ǯ¤Ö¤ê¤Ë¿·Ä´¤·¤Æ¥á¥â¥ê¤â16GB¤â¾è¤Ã¤±¤Æ¤Þ¤¹¡ª¡ª¡ª¡ª
¥·¥¹¥Æ¥à¥Ç¥£¥¹¥¯¤âºÇ¿·¤ÎM.2SSD¤Ë´¹Áõ¤·¤Æ¤³¤ì¤Ç¸þ¤³¤¦20ǯ¤ÏÀ臘¤³¤È¤¬
¤Ç¤¤ë¤Ç¤·¤ç¤¦¡ª¡ª¡ª¡ª¡ª
¤µ¤Æ¡¢º£²ó¤ÏÁ°²óÀâÌÀ¤·¤¿³Æ¼ï¥¥ã¥Ã¥·¥åÀßÄ꤬¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Ë¤É¤¦±Æ¶Á
¤·¤Æ¤¯¤ë¤Î¤«¤ò¼Âưºî¤ò¸ò¤¨¤ÆÀâÌÀ¤·¤Æ¤¤¤³¤¦¤È¤ª¤â¤¤¤Þ¤¹¡£
Èæ³Ó¤È¤¤¤¦¤³¤È¤Çlibpng(ÇÜÀºÅÙÉâÆ°¾®¿ôÅÀ±é»»¤¢¤ê)¤Î¥Ç¥³¡¼¥É/ɽ¼¨»þ´Ö¤ò·×¬¤·¤Æ
¤¤¤¤Þ¤¹¡£ŽÃ޽ŽÂÍÑpng²èÁü¤Ï¼«ºî¤ÎÆú΢ŪÈþ¾¯½÷޲Ž×޽ŽÂ¤ò»ÈÍѤ·¤Æ¤Þ¤¤¤ê¤Þ¤¹¡ª
ÆÍ¤Ã¹þ¤ß¤Ï¼õ¤±ÉÕ¤±¤Þ¤»¤ó¡ª¡ª¤¤¤Ê¤¤¤µ¤ó¤«¤ï¤¤¤¤¡ª!1¡ª¡ª¡ª1¡ª
¤Þ¤¿¡¢png²èÁü¤òÆÉ¤ß½Ð¤¹¥¹¥È¥ì¡¼¥¸¤Ï°ÊÁ°¾Ò²ð¤·¤¿»º¶ÈÍÑMicroSD¤Î64GBÉʤò»ÈÍÑ
¤·¤Þ¤¹¡£°Â¤¯¤Æ¿®ÍêÀ¤¬¤¢¤Ã¤Æ»È¤¤¾¡¼ê¤¬Îɤ¤¤Î¤Ç½ÅÊõ¤·¤Þ¤¹♥
¡ü¥¥ã¥Ã¥·¥å̵¤·
¤Þ¤º¤Ï¥Ç¡¼¥¿¥¥ã¥Ã¥·¥å¤½¤Î¤â¤Î¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£
ËÜÅö¤ÏAXI-SRAM¤À¤±Ìµ¸ú¤Ë¤·¤¿¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¤Ê¤¼¤«png¤Î¥Ç¥³¡¼¥É»þ¤ËHardFault¤Ë
¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç»ÅÊý¤Ê¤¯¤¼¤ó¤Ö¥¥ã¥Ã¥·¥åOFF¤Ë¤·¤Æ¤Þ¤¹¡£
¥¥ã¥Ã¥·¥å¸ú¤¤¤Æ¤Ê¤¤¤»¤¤¤ÇÃÙ¤¤¤Î¤Ç¤¹¤¬AXI¥Ð¥¹¤Î¥¯¥í¥Ã¥¯¤¬200MHz¤È¹â®¤Ê¤Î¤Ç
¤½¤ì¤Ç¤â½½Ê¬"Áᤤ"¤Ç¤¹¤Í¡Ä
¡ü¥é¥¤¥È¥Ð¥Ã¥¯&¥é¥¤¥È¥¢¥í¥±¡¼¥È¤Ê¤·
¤³¤Á¤é¤Ï¤¤¤Ä¤â¤Î¤Ç¸ø³«¤·¤Æ¤¤¤ë¥¥ã¥Ã¥·¥åÀßÄê¤È¤Ê¤ê¤Þ¤¹¡£
¥é¥¤¥È¥¹¥ë¡¼¤Î¥¨¥é¥Ã¥¿¤¬Ç§ÃΤµ¤ì¤Æ¤·¤Þ¤Ã¤¿º£¤³¤ì¤ËÍê¤é¤¶¤ë¤òÆÀ¤Þ¤»¤ó¡£
¡ü¥é¥¤¥È¥Ð¥Ã¥¯&¥é¥¤¥È¥¢¥í¥±¡¼¥È¤¢¤ê
¥é¥¤¥È¥¢¥í¥±¡¼¥È¤Ê¤·¤È¤Û¤È¤ó¤ÉÊѤï¤é¤º¸íº¹ÄøÅ٤Ǥ¹¡£
¤³¤ì¤Ê¤é¥é¥¤¥È¥¢¥í¥±¡¼¥È¤¢¤ê¤Ç¤¤¤¤¤¸¤ã¤ó¤È¤ª»×¤¤¤Ç¤·¤ç¤¦¤¬¡Ä
»Äǰ¤Ê¤¬¤éLTDC¤ÈÁêÀ¤¬Èó¾ï¤Ë°¤¯LTDC¤¬´É³í¤¹¤ë¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡Îΰè¤Ë¤³¤Î
ÀßÄê¤ò¹Ô¤Ã¤Æ¤¤¤ë¤È¤´Í÷¤ÎÄ̤êɽ¼¨¤¬Êø¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡Ä
°ì±þÂкö¤Ç¤¤Ê¤¤¤³¤È¤â¤Ê¤¤¤Ç¤¹¤¬¥¥ã¥Ã¥·¥å¥³¥ó¥È¥í¡¼¥ë´Ø¿ô¤ò¤¢¤Á¤³¤Á¤ËÊü¤ê
¤³¤Þ¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤¿¤áÁ´¤¯¸½¼ÂŪ¤Ç¤Ï¤Ê¤¤¤Ç¤¹¡£
¤½¤ì¤Ê¤éSDRAM¤Ë¤Ï¤½¤ÎÀßÄꤷ¤Ê¤¤¤ÇAXI-SRAM¤À¤±¤Ë¤¹¤ì¤Ð¤È¤ª»×¤¤¤Ç¤Ç¤·¤ç¤¦¤¬
¤Í¤à¤¤¤µ¤ó¤â¤½¤¦¤·¤è¤¦¤È»×¤Ã¤¿¤Î¤Ç¤¹¤¬¤Ê¤ó¤ÈSAI¤È¤âÁêÀ¤¬°¤¯¹â¥Ó¥Ã¥È¥ì¡¼¥È¤Î
²»À¼ºÆÀ¸»þ¤ËŽÌŽÞŽÁŽÌŽÞŽÁ¥Î¥¤¥º¤¬Æþ¤ê¤ä¤¬¤ê¤Þ¤¹orz¤³¤Á¤é¤â¤¢¤Á¤³¤Á¤Ç¥¥ã¥Ã¥·¥å¥³¥ó¥È
¥í¡¼¥ë¤·¤Þ¤¯¤Ã¤¿¤éÌäÂê¤Ê¤¤¤Î¤Ç¤¹¤¬¤½¤ó¤Ê¤ó¤¹¤ë¤¯¤é¤¤¤Ê¤é¥é¥¤¥È¥Ð¥Ã¥¯¡Ü¥é¥¤¥È
¥¢¥í¥±¡¼¥È¤Ê¤·¤Î¤Û¤¦¤Ç¤¤¤¤¤ä¤È¤Ê¤êº£¤Ë»ê¤Ã¤¿¼¡Âè¤Ç¤¹¡£
¡ü¥é¥¤¥È¥¹¥ë¡¼
º£¤È¤Ê¤Ã¤Æ¤Ï¥¨¥é¥Ã¥¿¤Ç¶Ø¤¸¼ê¤Ë¤Ê¤Ã¤¿¥é¥¤¥È¥¹¥ë¡¼¥â¡¼¥É¤Ç¤¹¡£
¥é¥¤¥È¥Ð¥Ã¥¯¤è¤êÃÙ¤¤¤Ç¤¹¤¬¥¥ã¥Ã¥·¥å̵¤·¤è¤êÃÇÁ³ÁᤤÍýͳ¤Ï¼Â¥á¥â¥ê¤Ë½ñ¤¹þ¤ß¤Ë
¤¤¤Ã¤¿¤È¤¤Ë¥é¥¤¥È¥Ð¥Ã¥Õ¥¡¤¬¸ú¤¤¤ÆÂ®ÅÙ¤¬¾å¤¬¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£
¤¤¤Á¤¤¤Áclean¤·¤Ê¤¤¤ÇºÑ¤à¤«¤é³Ú¤À¤Ã¤¿¤ó¤Ç¤¹¤±¤É¤Í¥é¥¤¥È¥¹¥ë¡¼¡Ä
¡ü¤ª¤Þ¤±¡¦Ž¶ŽØŽ¶ŽØŽÁŽŽ°ŽÝ¤ÎF7
STM32F769I-Disco¤Ç¤âƱ¤¸MicroSD¤ò»È¤Ã¤Æ¤ä¤Ã¤Æ¤ß¤Þ¤·¤¿¡£
¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡¤ò½ü¤¯DMA¤ÎÁ÷¼õ¿®¥Ð¥Ã¥Õ¥¡¡¦³ÆÊÑ¿ô¡¦¥Ò¡¼¥×Îΰè¤ò¥¥ã¥Ã¥·¥å
¤·¤Ê¤¯¤Æ¤âĶ¹â®¤Ëưºî¤Ç¤¤ëDTCM¤ËÀßÄꤷ¤ÆÆ±¤¸¤è¤¦¤Ë¤ä¤Ã¤Æ¤ß¤¿¤Î¤¬¤³¤Á¤é¡£
H7¤ÈÈæ¤Ù¤ë¤È¥³¥¢¥¯¥í¥Ã¥¯¤¬1/2¤Î200MHzưºî¤Ê¤Î¤Ç¤¹¤¬°Õ³°¤È·òÆ®¤·¤Æ¤Þ¤¹¡£
F7¥·¥ê¡¼¥º¤Ç¤ÏDTCMÎΰè¤Ç¤âDMA¤Ç¤¤ë¤Î¤Ç¤³¤Î¤è¤¦¤Ê·ÝÅö¤¬¤Ç¤¤ë¤Î¤Ç¤¹¤¬
H7¤ÏľÀܤǤ¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤Î¤Ç¥é¥¤¥È¥¹¥ë¡¼¤¬»È¤¨¤Ê¤¯¤Ê¤Ã¤¿¤Î¤â¤¢¤Ã¤Æ
DMA¤¹¤ë¤À¤±¤Ç¤â¤¤¤í¤ó¤Ê¹©Éפ¬É¬ÍפǤ¹¡£
¼¡²ó¤ÏSTM32H7¤Ç¥¥ã¥Ã¥·¥å¤ò¸ú¤«¤»¤¿¾õÂÖ¤ÇDMA¤ò¤É¤Î¤è¤¦¤Ë°ÂÄꤷ¤ÆÆ°¤«¤·¤Æ
¤¤¤±¤ÐÎɤ¤¤Î¤«¤ò²òÀ⤷¤Æ¤¤¤³¤¦¤È»×¤¤¤Þ¤¹¡£
20191104ÄÉ:
jujurou¤µ¤ó¤¬F7¤Ç¤ÏSDRAM¤Î¥é¥¤¥È¥Ð¥Ã¥¯+¥é¥¤¥È¥¢¥í¥±¡¼¥È¤Ê¤·¤Ç¤âDMA2D¤Ç
ɽ¼¨¤ª¤«¤·¤¯¤Ê¤ë¤ÈÊó¹ð¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤Í¤à¤¤¤µ¤ó¤âÄɤäÆÃΤé¤Ù¤Æ¤ß¤Þ¤·¤¿¡Ä
¤¬¡Ä(STM32F746G-Discovery¤Ç»î¤·¤¿)
¤¦¤¦¤à¤Í¤à¤¤¤µ¤ó¤Î¤¤¤Ä¤â¤Î¤¸¤ã¤É¤¦¤¤¤¦¾õ¶·¤Ç¤â¥Ç¡¼¥¿²½¤±¤·¤Æ¤Ì¤§¡Ä
¢¨9·îÅÙÈǤλþÅÀ¤Ç¥é¥¤¥È¥Ð¥Ã¥¯ÈǤËÊѹ¹ºÑ¤ß¤Ç¤¹¡£
¥¥ã¥Ã¥·¥å¤ò¸ú¤«¤»¤¿RAMÎΰè¤Ë¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡¤ò³ÎÊݤ·¤ÆLTDC¤òưºî¤µ¤»¤Æ¤¤¤ë
»þÅÀ¤ÇDMA¤·¤Æ¤ë»þ¤ÈƱ¤¸¤è¤¦¤Ë¤Ê¤êDMA2D¤»¤º¤È¤â¥¥ã¥Ã¥·¥å¤ÈLTDC¥³¥ó¥È¥í¡¼¥é
¤È¤Î´³¾Ä¤¬È¯À¸¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤³¤ì¤Ï¥é¥¤¥È¥¢¥í¥±¡¼¥È¤¢¤ë¤Ê¤·¤Ë´Ø·¸¤Ï
¤Ê¤¤¤Î¤Ç¥é¥¤¥È¥Ð¥Ã¥¯¤Ç¤Ï¥Ç¡¼¥¿Å¾Á÷Á°¤Ëɬ¤º¥¥ã¥Ã¥·¥å¤ÎClean¤¬É¬ÍפǤ¹¡£
¤Í¤à¤¤¤µ¤ó¤Î¤¤¤Ä¤â¤Î¤Ç¤³¤ì¤Ë°ú¤Ã¤«¤«¤Ã¤¿Î㤬ChaN¤µ¤ó¤Îjpeg¥é¥¤¥Ö¥é¥ê¤ò»È¤¤
jpeg¥Õ¥¡¥¤¥ë¤òɽ¼¨¤µ¤»¤è¤¦¤È¤·¤¿»þ¤Ç¡¢disp_blt´Ø¿ôÆâ¤ÇžÁ÷ľÁ°¤Ë¥¯¥ê¡¼¥ó¤ò
¹Ô¤¦¤³¤È¤Ë¤è¤êÂкö¤·¤Æ¤ª¤ê¤Þ¤¹¡£
¤½¤·¤ÆÁ°²ó¤â´Êñ¤ËÀâÌÀ¤·¤Þ¤·¤¿¤¬¥¥ã¥Ã¥·¥å¥³¥ó¥È¥í¡¼¥ë¤ò¤·¤Æ¤¤¤ë¤Ë¤â¤«¤«¤ï¤é¤º
¥é¥¤¥È¥¢¥í¥±¡¼¥È»þ¤Ëɽ¼¨¤¬Êø¤ì¤Æ¤·¤Þ¤¦¸¶°ø¤Ï½ñ¤¹þ¤ß¥¥ã¥Ã¥·¥å¥ß¥¹»þ¤Ë¼Â¥á¥â¥ê
¤«¤é¥Ç¡¼¥¿¤òÆÉ¤ß½Ð¤·¥¥ã¥Ã¥·¥å¥é¥¤¥ó¤ËŸ³«¤·¤Æ¤¤¤ëưºî¤½¤Î¤â¤Î¤Ë¤¢¤ê¤Þ¤¹¡£
¼Â¥á¥â¥ê(SDRAM)¤«¤é¤Îreadưºî¤Ë¤è¤Ã¤Æ¥¥ã¥Ã¥·¥å¥é¥¤¥ó¤¬µÕ±øÀ÷¤µ¤ì¡¢·ë²Ì¤È¤·¤Æ
´óÀ¸Eviction¤¬µ¯¤³¤ê¤Þ¤¯¤êɽ¼¨¤¬Êø¤ì¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¥Ç¡¼¥¿¥¥ã¥Ã¥·¥å¥µ¥¤¥º¾å¸Â°Ê²¼¤ÎÍÆÎ̤ǥÁ¥Þ¥Á¥Þ½ñ¤´¹¤¨¤ë¡Ä¤¿¤È¤¨¤ÐFONTX2¤Î
ɽ¼¨¤È¤«¤Î»þ¤Ë°ìÈÖÊø¤ì¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
¢¬¤³¤ó¤Ê´¶¤¸¤ËÊø¤ì¤Þ¤¹¡£
¤³¤ì¤ÏLTDC¤Ë¸Â¤é¤ºSAI¤È¤«¤Î´ðËܽñ¤¹þ¤ß¤Ã¤Ñ¤Ê¤·¤Î¤Ö¤ÃÊü¤·¤Î¥Ú¥ê¥Õ¥§¥é¥ë¤Ç¤â
µ¯¤³¤ê¤Þ¤¹¤¬Ä¹¤¯¤Ê¤ê¤½¤¦¤Ê¤Î¤Ç¼¡²ó¤Ë¤Ç¤â²òÀ⤷¤Þ¤¹¡£
¤¤¤í¤¤¤í»î¤¹28
¤ª¤¤¤ª¤¤¤Ä¤¤¤ËGWÍ褿¤È»×¤Ã¤¿¤é¤â¤¦°ì¥ö·î·Ð¤Ã¤Á¤Þ¤¤¤Þ¤·¤¿¤è¤É¤¦¤¤¤¦¤³¤È¤ÀYO!
¡üSTM32L0¥·¥ê¡¼¥º¤ò»È¤¦
¿ôǯÁ°¤ËÇã¤Ã¤¿¤Î¤Ç¤¹¤±¤ÉÃȤ᤹¤®¤ÆÉå¤Ã¤Á¤ã¤¤¤Þ¤·¤¿¤Æ¤Ø♥
STM32L0¥·¥ê¡¼¥º¤ÏCortex-M0+¤ò¥³¥¢¤Ë»ý¤ÄÄã¾ÃÈñÅÅÎÏÆÃ²½·¿¤Î
ARM¥Þ¥¤¥³¥ó¤È¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£
¤³¤Îɾ²Á¥Ü¡¼¥ÉSTM32L0538-Discovery¤âÄã¾ÃÈñÅÅÎÏ¤ËÆÃ²½¤·¤¿ºî¤ê¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¼çÌò¤ÎSTM32L0¤Ï´ðÈÄ΢Ì̤ˤ¢¤ê¤Þ¤¹¡£
Ì̤ܶϤ³¤ÎÅŻҥڡ¼¥Ñ¡¼¤Ç¤¹¡£ÅŸ»¤òÀڤäƤâɽ¼¨ÆâÍÆ¤¬Êݸ¤µ¤ì¤ë¤È¤¤¤¦Í¥¤ì¤â¤Î
¤Ç¤¹¤¬Ä̾ï¤Î¥É¥Ã¥È¥Þ¥È¥ê¥¯¥¹±Õ¾½¤Î¤è¤¦¤Ë´Êñ¤Ë¤Ï°·¤¨¤º¤«¤Ä²èÌ̽ñ¤´¹¤¨¤âŤ¤
»þ´Ö³Ý¤«¤ë¤Î¤Ç¤â¤Ã¤Ñ¤éÀŻ߲èɽ¼¨¤Ëα¤á¤Æ¤ª¤¯¤Î¤¬¤Þ¤È¤â¤Ê»È¤¤Êý¤È¤¤¤¨¤Þ¤¹¡£
L0¥·¥ê¡¼¥º½é´ü¤ÎSTM32L053C8¤¬»ÈÍѤµ¤ì¤Æ¤ª¤ê¤Þ¤¹¡£
¤³¤ÎÅŻҥڡ¼¥Ñ¡¼¤Î¥É¥é¥¤¥Ð¤Ë¤ÏSTM32L152¤¬»ÈÍѤµ¤ì¤Æ¤¿¤ê¤·¤Þ¤¹¡£
¤³¤Á¤é¤¬É½¼¨¤·¤Æ£²¥ö·î·Ð²á¤·¤¿¸å¤Î²èÌ̤Ǥ¹¡£ÅŸ»¤òÍî¤È¤·¤Æ¤âɽ¼¨ÆâÍÆ¤¬Êݤ¿
¤ì¤ë¤Î¤Ç¤¹¤¬»þ´Ö¤Î·Ð²á¤È¶¦¤Ë¤ä¤Ï¤êÇö¤ì¤Æ¤¤¤¤Þ¤¹¡£¤ª¤â¤Ê¥¿¡¼¥²¥Ã¥È¤È¤µ¤ì¤Æ
¤¤¤ëŹÊޤβÁ³Êɽ¼¨ÈĤǤλÈÍѤò¹Í¤¨¤¿¤é½½Ê¬¤¹¤®¤ëÊÝ»ý»þ´Ö¤È¤â¤¤¤¨¤Þ¤¹¡£
¤Ç¤âÇò¹õ¤Ê¤Î¤Ï¥¦¥±¤ë¤Î¤Ç¤·¤ç¤¦¤«¡©¡©¡©¡©¤¢¤È¤Ï¥Æ¥¥¹¥È¥ê¡¼¥À¡¼ÍÑÅӤȤ«¡©¡©
¥Õ¥ê¡¼¤Î³«È¯´Ä¶¤«¤é»È¤¦¾ì¹ç¤Ï¤ª¤Ê¤¸¤ßOpenOCD¤ÇÆâ¢¥Õ¥é¥Ã¥·¥å¤Ë½ñ¤¹þ¤ß¤Þ¤¹¡£
¢¨L0¥·¥ê¡¼¥º¤Ï¤«¤Ê¤ê¥¯¥í¥Ã¥¯Íî¤È¤µ¤Ê¤¤¤È¥³¥±¤Þ¤¯¤ê¤Þ¤¹¡£µ¤¤òÉÕ¤±¤Æ¤¯¤À¤µ¤¤¡£
> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd -s C:/Devz/ARM/OCD/tcl -f target/stm32l0discovery_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.10.0+dev-00143-gf6449a7-dirty (2017-05-20-14:25)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 300 kHz
adapter_nsrst_delay: 100
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
none separate
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
Info : Unable to match requested speed 300 kHz, using 240 kHz
Info : Unable to match requested speed 300 kHz, using 240 kHz
Info : clock speed 240 kHz
Info : STLINK v2 JTAG v28 API v2 SWIM v18 VID 0x0483 PID 0x374B
Info : using stlink api v2
Info : Target voltage: 3.240553
Info : stm32l0.cpu: hardware has 4 breakpoints, 2 watchpoints
Info : Unable to match requested speed 300 kHz, using 240 kHz
Info : Unable to match requested speed 300 kHz, using 240 kHz
adapter speed: 240 kHz
target halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x08002148 msp: 0x20002000
STM32L0: Enabling HSI16
Info : Unable to match requested speed 2500 kHz, using 1800 kHz
Info : Unable to match requested speed 2500 kHz, using 1800 kHz
adapter speed: 1800 kHz
adapter speed: 1200 kHz
auto erase enabled
Info : Device: STM32L0xx (Cat. 3)
Info : STM32L flash size is 64kb, base address is 0x8000000
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000000e msp: 0x20002000
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000000e msp: 0x20002000
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000000e msp: 0x20002000
wrote 16384 bytes from file main.elf in 3.218750s (4.971 KiB/s)
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000002e msp: 0x20002000
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000002e msp: 0x20002000
verified 16096 bytes in 0.140625s (111.778 KiB/s)
Info : Unable to match requested speed 300 kHz, using 240 kHz
Info : Unable to match requested speed 300 kHz, using 240 kHz
adapter speed: 240 kHz
adapter speed: 1200 kHz
shutdown command invoked
> Process Exit Code: 0
> Time Taken: 00:04
½ñ¤¹þ¤ß»þ¤Î¥í¥°¤Ï¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£
¤Í¤à¤¤¤µ¤ó¶àÀ½STM32L0¥Ç¥Ð¥¤¥¹¸þ¤±¥Õ¥é¥Ã¥·¥å½ñ¤¹þ¤ßÍÑcfg¤Ï
¤Í¤à¤¤¤µ¤ó¤ÎOpenOCD¥Ð¥¤¥Ê¥ê¤Ë¤â¤Á¤í¤ó¼ýÏ¿ºÑ¤ß¤Ç¤¹¡ª
L0¥·¥ê¡¼¥º¤Î¥Õ¥é¥Ã¥·¥å½ñ¤¹þ¤ß¤Ï¿ôǯÁ°¤«¤éOpenOCD¤ËÂбþ¤·¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬
1Word¤´¤È¤ÎŽÁŽÏŽÁŽÏ½ñ¤¤·¤«Âбþ¤·¤Æ¤ª¤é¤º¤Í¤à¤¤¤µ¤ó¤âŽ¢»È¤¨¤Í¤§¡ªŽ£¤ÈȽÃǤ·¤Æ
Èî¤ä¤·¤Ë¤·¤Æ¤ª¤ê¤Þ¤·¤¿¤¬º£Ç¯¤Ë¤Ê¤Ã¤Æ¤è¤¦¤ä¤¯¥Þ¥¤¥³¥ó¦¥í¡¼¥À¡¼¤Î¥½¡¼¥¹¤¬
¸«Ä¾¤µ¤ì¡¢¤Þ¤È¤â¤Ë»ÈÍѤǤ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¤Á¤Ê¤ß²¿¸Î¤½¤¦¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤«¤È¤¤¤¦¤ÈCortex-M3¥·¥ê¡¼¥º¤ÎSTM32L1
¥·¥ê¡¼¥º¤È¥Õ¥é¥Ã¥·¥å½ñ¤¹þ¤ßÍÑ¥³¡¼¥É¤ÈƱ¤¸°·¤¤¤Ë¤·¤Æ¤·¤Þ¤Ã¤¿¤»¤¤¤Ç
M0+¤Ç»ÈÍÑÉÔ²Äǽ¤ÊM3¤ÎÌ¿Î᤬¥í¡¼¥À¤Î¥Ð¥¤¥È¥³¡¼¥É¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ
¤·¤Þ¤Ã¤Æ¤¤¤¿¤«¤é¤Ê¤Î¤Ç¤·¤¿¡£
¤Í¤à¤¤¤µ¤óÅö»þ¤ÏNuvoton¤äKinetis¤Î¥µ¥Ý¡¼¥È¤ËÌöµ¯¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤Î¤Ç
STM32¤Ë´Ø¤·¤Æ¤Ï´Êñ¤Ê¥³¡¼¥É¤ÎÄɲÃÄøÅÙ¤·¤«¥³¥ß¥Ã¥È¤Ç¤¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤¬
ºÙ¤«¤¤»ö¹Í¤¨¤¿¤éÀè¤Ë¤¹¤¹¤á¤Þ¤»¤ó¤Î¤Ç¤È¤ê¤¢¤¨¤º¤É¤ó¤É¤ó³èÍѤ·¤Æ¤¤¤³¤¦¤È
»×¤¤¤Þ¤¹¡£¤¤¤º¤ì¤ÏNuvoton¤â¥í¡¼¥À¤Î¥³¡¼¥É¸«Ä¾¤·¤¿¤¤¤Ç¤¹¤Í¡Á¡£
¤È¤¤¤¦¤ï¤±¤Ç¤ª¤¤Ñ¤Î¥é¥¤¥ó¥Ê¥Ã¥×¤ËÄɲä·¤Þ¤·¤¿¤Î¤Ç¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡ª
¤ª¤Ê¤¸¤ß¤ÎUART¤Ë¥ê¥¿¡¼¥²¥Ã¥È¤·¤¿printf¤Î¼Â¹Ô¤È¥á¥â¥ê±Õ¾½¤ËFONTX2¥É¥é¥¤¥Ð¤ò
ÍѤ¤¤ÆÊ¸»úɽ¼¨¤¹¤ëÆâÍÆ¤È¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£
¤â¤Á¤í¤óHAL¥é¥¤¥Ö¥é¥êÂбþ¤È¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¡ù
¡ü²áµî¤Îµ»ö¤ÎÀµÅöÀ¤Ë¤Ä¤¤¤Æ¹Í
3·î²¼½Ü¤«¤é³¤¤¤Æ¤ª¤ê¤Þ¤¹¤¬¤Ö¤í¤°¾å¤ÇDropBox¤Î²èÁü¤¬É½¼¨¤µ¤ì¤Ê¤¯¤Ê¤Ã¤¿ÌäÂê¤ò
¤Ý¤Á¤Ý¤Á¤ÈÃÏÆ»¤Ë½¤Àµ¤·¤Æ¤ª¤ê¤Þ¤¹¡£
201705Ëö¸½ºß¤Ï¥¢¥¯¥»¥¹¿ô¤¬Â¿¤«¤Ã¤¿ESP32¡¦ESP8266¡¦¥À¥¤¥È¥ì¡¦Ï»¹Ã¡¦
STM32F4¤Î¤Îµ»ö¤Ï¤¹¤Ù¤Æ½¤Àµ¤¬´°Î»¤·¡¢STM32F7¤Î½¤Àµ¤â¤Û¤Ü½ª¤¨¤¿¤È¤³¤í¤Ç¤¹¡£
»Ä¤ê¤Ï2016ǯÅÙ°ÊÁ°¤Î¾®¥Í¥¿´ØÏ¢¤Îµ»öÁ´Éô¤ÈÅ쳤¼«Á³ÊâÆ»¤Îµ»ö¤È¤Ê¤ê¤Þ¤·¤¿¡£
¤½¤ì¤Ëȼ¤Ã¤Æ¼«Ê¬¤¬½ñ¤¤¤¿²áµî¤Îµ»ö¤ÎÆâÍÆ¤Î¸«Ä¾¤·¤âŬµ¹¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
ÆÃ¤Ë¥ê¥ó¥¯Àڤ줬ÌÜΩ¤Á¤Þ¤¹¤¬¼£¤»¤ë¤â¤Î¤Ï²¿¤È¤«¼£¤·¤Æ¤¤¤Þ¤¹¡£¤µ¤¹¤¬¤Ë
3ǯ°Ê¾åÁ°¤Îµ»ö¤Ë¤Ê¤ë¤È¤É¤¦¤·¤Æ¤âº£¤Ç¤Ï¸í¤Ã¤¿³µÇ°¤Ç¤¢¤ë¤ÈȽÌÀ¤·¤¿¤ê
¤½¤Î»þ¤ÏÄ̤¸¤¿¼êË¡¤¬¸½ºß¤Ç¤ÏÄ̤¸¤Ê¤«¤Ã¤¿¤ê¤È¤¤¤Ã¤¿¤³¤È¤¬Âô»³½Ð¤Æ¤¤Þ¤¹¡£
¤Ç¤¹¤¬Âбþ¤Ë¤â¤ä¤Ï¤ê¸Â³¦¤Ï¤¢¤ê¤Þ¤¹¡£
¤³¤Á¤é¤ÎÊý¤Ï»ä¤Î5ǯÁ°¤Î¤Ö¤í¤°µ»ö¤ò»²¾È¤·¤ÆÃΤꤿ¤¤¾ðÊ󤬾ÃÌǤ·Åþã¤Ç¤¤Ê¤«¤Ã¤¿
¤³¤È¤Ë¸ÀµÚ¤µ¤ì¤Æ¤ª¤é¤ì¤Þ¤¹¤¬2012ǯ¤Î¤Í¤à¤¤¤µ¤ó¤Ï´û¤ËŽ¢CMSISv3°Ê¹ß¤ò»È¤¨Ž£¤È
¥¢¥É¥Ð¥¤¥¹¤·¤Æ¤¤¤ë¤Î¤Ç¤½¤ì¤Ë½¾¤ï¤º¼«¸Êή¤Ç¤µ¤ì¤Æ¾¡¼ê¤Ëº¤¤é¤ì¤Æ»ä¤Î¤»¤¤¤Ë¤µ¤ì
¤Æ¤â¤½¤ì¤Ï¤Á¤ç¤Ã¤È¤Á¤¬¤¤¤Þ¤¹¤è¤È¡¢ÆÃ¤ËÌÈÀÕ»ö¹à¤Ï¤Ö¤í¤°¤Î¥×¥í¥Õ¤Ë¤âÌÀµ¤·¤Æ
¤¢¤ê¤Þ¤¹¤Î¤Ç»ä¤Ë²¿Ç¯¤âÁ°¤ÎÆâÍÆ¤òÊä½þ¤¹¤ëµÁ̳¤Ï¤Ê¤¤¤Ç¤¹¡£¤È¡£
¤³¤ì¤À¤±¤Ï¤Ï¤Ã¤¤ê¤È¿¿¼Â¤òÅÁ¤¨¤¿¤«¤Ã¤¿¡£
¤È¤Ï¤¤¤¨¤³¤Î¤Þ¤ÞÊüÃÖ¤¹¤ë¤Î¤Ï»ä¤È¤·¤Æ¤â¿´¶ì¤·¤¤¤Î¤Ç2017ǯ¤ÎÆâÍÆ¤Ë¨¤·¤¿¤â¤Î¤Ë
¾ðÊó¤ò½¤Àµ¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤·¤¿¡£
°ìÊý¤³¤Á¤é¤ÎÊý¤¬»ØÅ¦¤µ¤ì¤¿EN¤ÈBOOT´Ö°ã¤¨¤Æ¤¿·ï¤ÏESP-WROOM-32¤«¤é
Êü¼Í¤µ¤ì¤¿Åż§ÇȤαƶÁ¤«¤é¤«»ä¤ÎƬ¤¬¤Ü¤±¤Æ¤Æ´°Á´¤Ë»ä¤Î¥ß¥¹¤Ç¤¹¡£
¤Ê¤ó¤Ë¤»¤è¤É¤Ã¤«¤ÎÔä¤Ë¤Þ¤¿Ž¢¤³¤¤¤Ä¤¬½ñ¤¤¤Æ¤ë¤³¤È¤Ï¥Ç¥¿¥é¥áŽ£¤È¤«½ñ¤«¤ì¤Ê¤¤¤è¤¦
À¤´Ö¤Ë¸ø³«¤¹¤ëÁ°¤Ë°ì©¤ª¤¤¤ÆÀºÆÉ¤·¤Æ´Ö°ã¤¤¤ò½¤Àµ¤¹¤ëÊʤò½¬´·¤Å¤±¤Æ¤³¤ì¤«¤é¤Ï
¤Ê¤ª°ìÁؤΤ³¤Èµ¤¤òÉÕ¤±¤Æ¹Ô¤³¤¦¤È»×¤¤¤Þ¤·¡¢¤¿¡ª
¡üFatFs¤¬0.13¤Ë¹¹¿·
ChaN»á¤ÎFatFs¤â5·îÃæ½Ü¤Ë¹¹¿·¤·¤Æ¤ª¤ê¤Þ¤·¤¿¡ª
¼ç¤Ê¹¹¿·ÆâÍÆ¤Ï"syscalls.c"¤äoption¥Õ¥©¥ë¥ÀÆâ¤Î¥³¡¼¥É¥Ú¡¼¥¸ÊÑ´¹¥Æ¡¼¥Ö¥ë
¤¬Çѻߤµ¤ì¤Æffsystem.c¤Èffunicode.c¤ËÊѹ¹¤µ¤ì¤¿¤³¤È¡¢¤¢¤È´ö¤Ä¤«¤ÎÄêµÁ¤â
ÀÜÆ¬¸ì¤Ë"FF_"¤¬ÉÕÍ¿¤µ¤ì¤ÆÂ¾¤Î¥½¡¼¥¹¥³¡¼¥É¤È¤ÎÄêµÁ¤Î¥Ð¥Ã¥Æ¥£¥ó¥°¤¬Ä㸺¤µ¤ì
¤Æ¤¿¤³¤È¤Ç¤¹¡£
exFAT´Ø¤¹¤ë¥ë¡¼¥Á¥ó¤Ï½éÅоì°Ê¹ßÆü¿Ê·îÊâ¤Ç¿Ê²½¤·¤Þ¤¯¤Ã¤Æ¤¤¤ë¤Î¤Ç³§¤µ¤ó¼«¿È
¤Çforum¤ä¹¹¿·¾ðÊó¤ò¾ï¤Ë³Îǧ¤·¤¿Êý¤¬Îɤ¤¤Ç¤·¤ç¤¦¡£
¤Í¤à¤¤¤µ¤óŪ¤Ë¤Ïdefine¤ÎÀÜÆ¬¸ì¤Ë"FF_"¤¬ÉÕÍ¿¤µ¤ì¤¿¤Î¤¬¸ú¤¤Þ¤·¤¿¡£¼«Ê¬¤Ç½ñ
¤¤¤¿Éôʬ¤Ë¤â¿¿ô¤ÎFatFs¤Îdefine¤ÇÀڤäƤ¢¤Ã¤¿¤Î¤Ç¸«Æ¨¤µ¤Ê¤¤¤è¤¦¤Ë½¤Àµ¤·¤Æ
²ö¤Ã¤¿¤Î¤ÇÂçÊѤǤ¹¡£¤Ç¤¹¤¬²¿¤È¤«Á´Éô¼£¤¹¤³¤È¤¬½ÐÍè¤Æ¤ª¤¤Ñ¤ËÃÖ¤¤¤Æ¤ë
¥µ¥Ý¡¼¥ÈÃæ¤Î4¼ï¤ÎFatFs°Ü¿¢Îã¤â̵»ö0.13Âбþ¤È¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¡ù
¡¦STM32F7(HAL¥É¥é¥¤¥Ð»ÈÍÑ)
¡¦STM32F4(SPL»ÈÍÑ)
¡¦STM32F1(SPL»ÈÍÑ)
¡¦LPC4088
¤ª¤Ã¤È¡¢ºÇ¤â½ÅÍפʻöÊÁ¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤¿¤Î¤ò˺¤ì¤Æ¤ª¤ê¤Þ¤·¤¿¡£
º£²ó¤Î¹¹¿·¤«¤éChaN¤µ¤ó¤ÎFatFs¤Ë´Ø¤¹¤ë¥Ú¡¼¥¸¤ÏÁ´¤Æ±Ñ¸ì¤Î¤ß¤Ë¤Ê¤êÆüËܸì¤Ë
Ìõ¤µ¤ì¤¿²òÀ⤬´°Á´¤Ë¾ÃÌǤ·¤Þ¤·¤¿¡£
ºòº£¤Îembedded»ö¾ð¤ò´Õ¤ß¤ë¤ÈͱפʾðÊó¤ÏËޤƱѸì·÷¤Î¥³¥ß¥å¥Ë¥Æ¥£¤Ë
½¸Ìó¤µ¤ì¤Æ¹Ô¤¯¤Î¤¬É¬Á³¤Ç¤¢¤ê¤³¤Îή¤ì¤ÏÈò¤±¤é¤ì¤Ê¤¤»öÊÁ¤Ç¤¹¤¬¤Í¤à¤¤¤µ¤ó¤Î
ÃÎǽ¥ì¥Ù¥ë¤Ç¤¹¤é±Ñ¸ì¤Ç°Õ»Ö¤ÎÁÂÄ̤¬ÌäÂê¤Ê¤¯¤Ç¤¤Æ¤ª¤ê¤Þ¤¹¤Î¤Ç³§¤µ¤ó¤Ë
¤È¤Ã¤Æ¤âÌäÂê¤Ê¤¤¤Ï¤º¤Ç¤¹¡Ä¤è¤Í!?(°Ò°µ)
¡üSD¥«¡¼¥É¤Îµ¬³Ê¤¬V6.00¤Ë¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×
ºòǯ½©¤ËSDv5¤Ë¹¹¿·¤ÈÊ󤸤ޤ·¤¿¤¬Áᤤ¤â¤Î¤ÇA1¥¯¥é¥¹¤ÎÄêµÁ¤¬Äɲ䵤줿V6.00¤Ø¤È
Á᡹¤Ëµ¬³Ê¤¬¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤·¤Æ¤ª¤ê¤Þ¤¹¡£¤â¤¦¹«¤Ç¤Ï¤½¤ÎA1¥¯¥é¥¹¤Î¥í¥´¤¬¾è¤Ã¤¿
SD¥«¡¼¥É¤¬½Ð²ó¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£
A1¥¯¥é¥¹¤ÎÍøÅÀ¤Ï¾®¤µ¤¤¥µ¥¤¥º¤Î¤Á¤Þ¤Á¤ÞÆÉ¤ß½ñ¤¤Î¥¹¥Ô¡¼¥É¤¬°ìÄêÃͰʾåÊݾڤµ¤ì¤Æ
¤¤¤ë¤È¤¤¤¦ÅÀ¤Ç¤¹¤¬¿ï½ê¤Ç¾å¤¬¤Ã¤Æ¤¤¤ë¥Ù¥ó¥Á¥Þ¡¼¥¯¤ò¸«¤ë¸Â¤ê¤Ç¤ÏA1ºöÄê°ÊÁ°¤«¤é
¸ºß¤¹¤ë¹â²Á³ÊÂӤιâÀǽ¥«¡¼¥É¤ÈÈæ¤Ù¤ë¤ÈÂ礤ÊͰպ¹¤Ï¤Ê¤µ¤½¤¦¤Ç¤¹¡£
¤Í¤à¤¤¤µ¤ó¤Ï¼¡Ç㤦¥«¡¼¥É¤ÏS.M.A.R.T.¤¬ºÎ¤ì¤ëDelkin¤ÎMLC¤Î¤ä¤Ä¤Ë·è¤á¤Æ¤Þ¤¹¤Î¤Ç
¤·¤«¤âº£¤Ï¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤â3D-NAND¤Ø¤Î²áÅÏ´ü¤ÇSD¥«¡¼¥É¤½¤Î¤â¤Î¤ÎÃÍÃʤ¬¤É¤ó
¤É¤ó¹â¤¯¤Ê¤Ã¤Æ¤¤¤ë¤Î¤ÇA1¥í¥´ÉÕ¤¤Î¥«¡¼¥É¸«¤«¤±¤Æ¤â¼ê¤ò½Ð¤µ¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£
¤Æ¤¤¤¦¤«Ì±À¸ÍÑSD¥«¡¼¥É¤ÎÃÍÃʤ¬¹â¤¯¤Ê¤êÁêÂÐŪ¤ËDelkin¤Î¤ä¤Ä¤¬¤ªµá¤á¤ä¤¹¤¤
ÃÍÃʤˤʤäÁ¤Þ¤¤¤Þ¤·¤¿¤Î¤Ç±¿¤è¤¯ÆÃÊ̼ýÆþ¤¬È¯À¸¤·¤¿¤é¨Ç㤤¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡ª¡ª
¤¤¤¤Ê¤ê10²¯±ß(Àǰú¤¸å)¤È¤«¼ê¤ËÆþ¤é¤Ê¤¤¤«¤·¤é¡Ä
STM32F7¤ò»È¤Ã¤Æ¤ß¤ë7 -½©·î¤µ¤ó¤è¤êF7DiscoveryÈÎÇäµÇ°-
¢¨¤È¤¢¤ëÂçÀÚ¤ÊÊý¤Îë¾Êó¤ò¼õ¤±¤ÆÎî¾ì¤á¤°¤ê¤ò¤·¤Æ¤¤¤¿¤¿¤á¹¹¿·¤¬°ì½µ´Ö°Ê¾åÃÙ¤ì¤Æ
¡¡¤Þ¤¹¡£¤¹¤ß¤Þ¤»¤ó¡£
À衹½µËö¡¢½©·î¤µ¤ó¤è¤êSTM32F7-Discovery¤¬ÈÎÇ䤵¤ì¤Þ¤·¤¿¡£
Æþ¼ê¤·¤ä¤¹¤¯¤Ê¤Ã¤¿»ö¤Ë¤è¤Ã¤Æ³§¤µ¤ó¤âF7¤Ë¿¨¤ì¤ë¥Á¥ã¥ó¥¹¤¬¤Ç¤¤¿¤È»×¤¤¤Þ¤¹¡£
¤Í¤à¤¤¤µ¤ó¤âF7¥Í¥¿¤Ç°ì¤Äµ»ö¤ò½ñ¤¤¿¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¤¤¤Þ¤¤¤Á"¤Ñ¤ó¤Á"¤¬¼å¤¯
¹¹¿·¤Ëí´í°¤·¤Æ¤¤¤¿¤Î¤Çº£²ó¤ÎÈÎÇ䳫»Ï¤ÏÅϤê¤Ë½®¤Ç¤·¤¿¡£¤·¤«¤â¤â¤¦°ì¤Ä´ò¤·¤¤
¥Ë¥å¡¼¥¹¤âƱ»þ¤Ë¤Ç¤Æ¤¤Þ¤·¤¿¡£
¡üOpenOCD¤¬STM32F7¤ÎÆâ¢¥Õ¥é¥Ã¥·¥å½ñ¤¹þ¤ß¤ËÀµ¼°Âбþ
7·î¾å½Ü¡¢»ä¤¬ºÇ½é¤Ë¤¤¤¸¤ê¤À¤·¤¿¤³¤í¤«¤éF2/F4·Ï¤ÈÊÌ·ÏÅý¤ÎSTM32F7¤Î¥Æ¥¹¥ÈÍÑ
¥É¥é¥¤¥Ð¤Ï¸ºß¤·¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬½©·î¤µ¤ó¤ÎÈÎÇä¤È»þ¤òƱ¤¸¤¯¤·¤ÆOpenOCD¤ËF7·Ï¤Î
¥Õ¥é¥Ã¥·¥å½ñ¤¹þ¤ß¥µ¥Ý¡¼¥È¤¬F2/F4¥É¥é¥¤¥Ð¤ËÀµ¼°¤Ë¤è¤¦¤ä¤¯Äɲ䵤ì¤Þ¤·¤¿¡£
Corex-M7¤ÏL1¥¥ã¥Ã¥·¥å¤ò»ý¤Ä¤Î¤Ç¥Õ¥é¥Ã¥·¥å½ñ¤¹þ¤ß¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹¤È¤
¤Ë¥á¥â¥ê¥Ð¥ê¥¢Ì¿Îá¤òÄ¥¤Ã¤Æ°Õ¿Þ¤·¤¿¼ê½ç¤Ç½ñ¤¹þ¤ß¤Î¤¿¤á¤ÎÌ¿Îá¤ò¼Â¹Ô¤µ¤»¤ë
¤è¤¦¤Ë¤·¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó¤Ç¤·¤¿¡£
ºÇ½é¤Ë¥³¥ß¥Ã¥È¤µ¤ì¤¿»þ¤Ï¤½¤ó¤ÊÍýͳ¤ÇF7ÀìÍѤΥեé¥Ã¥·¥å¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤·¤¿¤¬
Ʊ¤¸MPU¤ò»ý¤ÄF2/F4·Ï¤Ç¤âÌäÂ̵꤬¤«¤Ã¤¿¤¿¤á·ë¶Éstm32f2x.c¤ËÅý¹ç¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd -s C:/Devz/ARM/OCD/tcl -f target/stm32f7discovery_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.10.0-dev-00104-gf3be0f6-dirty (2015-11-13-09:52)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : clock speed 1800 kHz
Info : STLINK v2 JTAG v24 API v2 SWIM v11 VID 0x0483 PID 0x374B
Info : using stlink api v2
Info : Target voltage: 3.219974
Info : stm32f7x.cpu: hardware has 8 breakpoints, 4 watchpoints
stm32f7x.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0803276c msp: 0x20010000
auto erase enabled
Info : device id = 0x10016449
Info : flash size = 1024kbytes
stm32f7x.cpu: target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x20000046 msp: 0x20010000
wrote 786432 bytes from file main.elf in 18.501879s (41.509 KiB/s)
stm32f7x.cpu: target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000002e msp: 0x20010000
stm32f7x.cpu: target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000002e msp: 0x20010000
stm32f7x.cpu: target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000002e msp: 0x20010000
verified 600552 bytes in 2.451303s (239.251 KiB/s)
shutdown command invoked
> Process Exit Code: 0
> Time Taken: 00:21
½ñ¤¹þ¤ß¤Ï¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£°ÊÁ°¤ÈÁ´¤¯ÊѤï¤Ã¤Æ¤Þ¤»¤ó¤Í¡Á¡£
»ä¤¬Ä󶡤·¤Æ¤¤¤ë¥Ð¥¤¥Ê¥ê¤Ï¤â¤Á¤í¤óSTM32F7-Discovery¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡ú
¤Þ¤¿¡¢°ÊÁ°¤âÅÁ¤¨¤Þ¤·¤¿¤¬STLink/V2-1¤Î¥Õ¥¡¡¼¥à¤Ï2.24.11°Ê¹ß¤Ë¥¢¥Ã¥×¥Ç¡¼¥È¤·¤Æ
¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£¸Å¤¤ÈÖ¤À¤Èmbed¤ÎMSC¤ÎÊý¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È´³¾Ä¤·¤Æ½ñ¤
¹þ¤ß¤¬É¬¤º¼ºÇÔ¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£½©·î¤µ¤ó¤Ç¹ØÆþ¤Ç¤¤ëÅۤϤµ¤¹¤¬¤ËºÇ¿·ÈǤË
¤Ê¤Ã¤Æ¤ë¤Ï¤º¤Ç¤¹¤Î¤Ç¤¿¤Ö¤óÌäÂê¤Ê¤¤¤Ç¤·¤ç¤¦¤±¤É¡£
¡üMPU¤ÈSDRAM¤Î¥¥ã¥Ã¥·¥åÀßÄê
²áµî¤Ë¤â¾¯¤·¿¨¤ì¤¿MPU¤Î»ö¤Ç¤¹¤¬¡¢F2/F4·Ï¤Ç¤Ï¤Û¤È¤ó¤É½ÐÈÖ¤¬¤Ê¤«¤Ã¤¿Âåʪ¤Ç¤¹¤¬
L1¥¥ã¥Ã¥·¥å¤¬¼ÂÁõ¤µ¤ì¤¿F7·Ï¤Ç¤Ï¶Ë¤á¤Æ½ÅÍפʰÕÌ£¤ò»ý¤Á¤Þ¤¹¡£¤·¤Ã¤«¤ê¹Í¤¨¤ÆÀßÄê
¤·¤Ê¤¤¤È¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ËÂ礤ʱƶÁ¤¬½Ð¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
½ñ¤¯¤¤¤¦»ä¤â¥¥ã¥Ã¥·¥å¤Î³µÇ°¤ò¤è¤¯Íý²ò¤·¤Æ¤Ê¤¯¤ÆDMA¤Ç̵Â̤˶ìÀ路¤¿¤ê
¤·¤Æ¤Þ¤·¤¿¤¬¿·¤¿¤ËFMC¤ò»È¤Ã¤¿SDRAM¤Ç¼êÍî¤Á¤ò¸«¤Ä¤±¤Æ¤·¤Þ¤¤¤Þ¤·¤¿orz

¢¬AN4667¤è¤ê°úÍÑ
Ä̾ï¤ÏFMC¤ÏD-Cache¤òÄ̤¸¤Æ¥¢¥¯¥»¥¹Â®Å٤θþ¾å¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤¬
͸ú¤Ê¥¢¥É¥ì¥¹Îΰè¤ÏCortex-M7¤Î¥³¥¢¾å¤ÇÀ©¸Â¤¬¤¢¤ê¤Þ¤¹¡£
SDARAM¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¥¢¥É¥ì¥¹(0xC0000000~)¤Ç¤Ï¤´Í÷¤Î¤È¤ª¤ê¥¥ã¥Ã¥·¥å
¥á¥â¥ê¤Î²¸·Ã¤Ë¤¢¤ä¤«¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£

¢¬AN4667¤è¤ê°úÍÑ
FMC¤ÎSDRAM¤Î¥¢¥É¥ì¥¹¤ò¥ê¥Þ¥Ã¥×¤·¤Æ¥¥ã¥Ã¥·¥å¤¬¸ú¤¯¥¢¥É¥ì¥¹Îΰè¤ËÊѤ¨¤ë
ÊýË¡¤â¤¢¤ê¤Þ¤¹¤¬MPU¤Ç¥¥ã¥Ã¥·¥å²Ä¤ÎÎΰè¤ËÀßÄꤷ¤Æ¤·¤Þ¤¦Êý¤¬´Êñ¤Ç¤¹¡£

MPU¤ÎÀßÄê¤Ï¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£¥¥ã¥Ã¥·¥å͸ú¤Î»þ¤Ë"MPU_ACCESS_NOT_BUFFERABLE"
¤È¤¹¤ë¤È¥é¥¤¥È¥¹¥ë¡¼¤È¤Ê¤ê¤Þ¤¹¡£
¥é¥¤¥È¥Ð¥Ã¥¯¤Ï"MPU_ACCESS_BUFFERABLE"¤Ç¤¹¡£
¤Ê¤ª¡¢FMC¤äSDRAM¤ò͸ú¤Ë¤·¤Æ¤Ê¤¯¤Æ¤âMPU¤Ï¤½¤ì¤é¤È´°Á´¤ËʬΥ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢
ÀßÄꤷ¤¿½Ö´Ö¤Ë¤¤¤¤Ê¤êHardFault¤È¤«¤Ë¤Ê¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤Þ¤¿¡¢QSPI¤ÎÎΰè¤Ë¤Ä¤¤¤Æ¤ÏÁ°ÅӤΤȤª¤ê¸µ¤«¤é¥¥ã¥Ã¥·¥å²Ä¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç
ÆÃ¤ËMPU¤òÀßÄꤹ¤ëɬÍפϤʤ¤¤Ç¤¹¡£
¤Æ¤ï¤±¤ÇÁᮤ¤¤Ä¤â¤Îjpeg¥Õ¥¡¥¤¥ë¤Î¥Ç¥³¡¼¥É»þ´Ö¤ÇÈæ³Ó¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¤½¤Î£±¡¥¥Õ¥é¥Ã¥·¥å¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÏAXIM

¢¬MPU¤Ï²¿¤âÀßÄꤷ¤Æ¤Ê¤¤SDRAM¤ÎD-Cache̵¸ú¾õÂ֤Ǥ¹¡£
¡¡ºÇŬ²½¥¹¥¤¥Ã¥Á¤Ï-Ofast¡¢FONTX2¥É¥é¥¤¥Ð¤ÏÆâ¢¥Õ¥é¥Ã¥·¥å¤«¤é¤Ç¤¹¡£

¢¬MPU¤ò»È¤Ã¤ÆSDRAM¤ÎD-Cache͸ú¡¢¥é¥¤¥È¥¹¥ë¡¼¤Ç¤¹¡£
¡¡ºÇŬ²½¥¹¥¤¥Ã¥Á¤Ï-Ofast¡¢FONTX2¥É¥é¥¤¥Ð¤ÏÆâ¢¥Õ¥é¥Ã¥·¥å¤«¤é¤Ç¤¹¡£

¢¬MPU¤ò»È¤Ã¤ÆSDRAM¤ÎD-Cache͸ú¡¢¥é¥¤¥È¥Ð¥Ã¥¯¤Ç¤¹¡£
¡¡ºÇŬ²½¥¹¥¤¥Ã¥Á¤Ï-Ofast¡¢FONTX2¥É¥é¥¤¥Ð¤ÏÆâ¢¥Õ¥é¥Ã¥·¥å¤«¤é¤Ç¤¹¡£
ͽÁÛÄ̤ꥥã¥Ã¥·¥å̵¸ú¤Î¥Ç¥Õ¥©¥ë¥È¾õÂÖ¤ÎÊý¤¬ÃÇÁ³¤Ï¤äi...
¡Ä
¡©¡©¡©
¡©¡©¡©¤É¤¦¤¤¤¦¤³¤È¤Ê¤ó¤À¡©¡©¡©(¢«C.V.ݯ°æ¤Î¥¤¥±¥Ü¤Ç)
¥¥ã¥Ã¥·¥å̵¸ú¤¬°ìÈÖÁᤤ¤¸¤ã¤Ê¤¤¤Ç¤¹¤«¡¼¡ª¡©¤¿¤Ö¤óAXIM¥Ð¥¹·Ðͳ¤Ç¥×¥í¥°¥é¥à¤ò
¼Â¹Ô¤·¤Æ¤ë¤«¤é¥Ð¥¹¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤È¤«¥¥ã¥Ã¥·¥å¥é¥¤¥ó¤¬´³¾Ä¤·¤Þ¤¯¤Ã¤Æ
µÕ¤Ë¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬Äã²¼¤·¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤Í¡£
ޥޥޥ¤¹¤ß¤Þ¤»¤óŬÅö¤Ê¹Í»¡¤Ç¡Ä¤Æ¤ï¤±¤ÇAXI¥Þ¥È¥ê¥¯¥¹¤Î±Æ¶Á¤ò¼õ¤±¤Ê¤¤ITCM¤«¤é
¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤Þ¤¹¤«¡£
¤½¤Î£²¡¥¥Õ¥é¥Ã¥·¥å¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÏITCM

¢¬MPU¤Ï²¿¤âÀßÄꤷ¤Æ¤Ê¤¤SDRAM¤ÎD-Cache̵¸ú¾õÂ֤Ǥ¹¡£
¡¡ºÇŬ²½¥¹¥¤¥Ã¥Á¤Ï-Ofast¡¢FONTX2¥É¥é¥¤¥Ð¤ÏÆâ¢¥Õ¥é¥Ã¥·¥å¤«¤é¤Ç¤¹¡£

¢¬MPU¤ò»È¤Ã¤ÆSDRAM¤ÎD-Cache͸ú¡¢¥é¥¤¥È¥¹¥ë¡¼¤Ç¤¹¡£
¡¡ºÇŬ²½¥¹¥¤¥Ã¥Á¤Ï-Ofast¡¢FONTX2¥É¥é¥¤¥Ð¤ÏÆâ¢¥Õ¥é¥Ã¥·¥å¤«¤é¤Ç¤¹¡£

¢¬MPU¤ò»È¤Ã¤ÆSDRAM¤ÎD-Cache͸ú¡¢¥é¥¤¥È¥Ð¥Ã¥¯¤Ç¤¹¡£
¡¡ºÇŬ²½¥¹¥¤¥Ã¥Á¤Ï-Ofast¡¢FONTX2¥É¥é¥¤¥Ð¤ÏÆâ¢¥Õ¥é¥Ã¥·¥å¤«¤é¤Ç¤¹¡£
ITCM·Ðͳ¤À¤È¥Ð¥¹¤Î¶¥¹ç¤¬¸º¤ê¤Þ¤¹¤Î¤Ç³Î¤«¤Ë¥¥ã¥Ã¥·¥å¤¬¸ú¤¤¤Æ¤¤¤ë¤Î¤¬
ʬ¤«¤ê¤Þ¤¹¤Í¡ú
½ê¤ÇËÜÍè¤Ê¤é¥é¥¤¥È¥¹¥ë¡¼¤è¤ê¥é¥¤¥È¥Ð¥Ã¥¯¤ÎÊý¤¬Á᤯¤Ê¤ë¤Ï¤º¤Ê¤Î¤Ç¤¹¤¬¡¢
¥é¥¤¥È¥¹¥ë¡¼¤ÎÊý¤¬¤Û¤ó¤Î¾¯¤·Áᤤ·ë²Ì¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¥¥ã¥Ã¥·¥å¤ò¸ú¤«¤»¤Æ
¤¤¤ë¤È¥¥ã¥Ã¥·¥å¥Ò¥Ã¥È¤È¥ß¥¹¤Î»þ¤Î¥Ö¥ìÉý¤¬¤«¤Ê¤êÂ礤¯½Ð¤Æ¤¯¤ë¤Î¤Ç
¤½¤Ã¤Á¤ÎÊý¤¬µ¤¤Ë¤Ê¤ë¤¯¤é¤¤¤Ç¤¹¤±¤É¡£
¤ª¤¤Ñ¤ÎF7¤Î¥µ¥ó¥×¥ë¤Ç¤ÏAXIM/ITCM¤ÎξÊý¤ÇSDRAMÎΰè¤ÎMPU͸ú¡¦¥é¥¤¥È
¥¹¥ë¡¼¥¥ã¥Ã¥·¥åÀßÄê¤Ë¤·¤Æ¹¹¿·¤·¤Æ¤ª¤ê¤Þ¤¹¡£
°ÊÁ°¤ÏQSPI-ROM¤ËFONTX2¥É¥é¥¤¥Ð¤òÃÖ¤¤¤Æ¤¤¤¿¾ì¹çʸ»ú¤Îɽ¼¨¤ÇÊø¤ì¤ë
¤³¤È¤¬¤¢¤Ã¤¿¤Î¤Ç¤¹¤¬SDRAMÎΰè¤âMPU¡¦¥¥ã¥Ã¥·¥å͸ú¤Ë¤¹¤ë¤È¤½¤ì¤¬
°ìÀÚȯÀ¸¤·¤Ê¤¯¤Ê¤Ã¤¿¤È¤¤¤¦Éû¼¡Åª¸ú²Ì¤¬¸«¤é¤ì¤Þ¤·¤¿¤Î¤ÇAXIM¤À¤È
¼ã´³¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬Íî¤Á¤Þ¤¹¤¬´º¤¨¤ÆMPU¤ò¸ú¤«¤»¤Æ¤¤¤Þ¤¹¡£
¤â¤Á¤í¤ó¥¥ã¥Ã¥·¥å¤ò·Ðͳ¤¹¤ë¤ÈDMA¤ÎÌäÂ꤬¤Þ¤¿»ý¤Á¾å¤¬¤Ã¤Æ¤¤Þ¤¹¤¬
»ä¤Î¥µ¥ó¥×¥ë¤Ç¤ÏDMA2D¤ò¤½¤¦¤Ê¤ë»È¤¤Êý¤Ï¤·¤Æ¤Ê¤¤¤Î¤¬Ê¬¤«¤Ã¤¿¤Î¤Ç
DMAÂкö¤ÏÆÃ¤Ë¹Ô¤ï¤ºÍͻҸ«¤È¤·¤Æ¤ª¤ê¤Þ¤¹¡£
¤µ¤é¤Ë¤Ä¤¤¤Ç¤Ç¤¹¤¬CubeF7¤âV1.2.0¤Ë¤Ê¤Ã¤ÆHAL¥é¥¤¥Ö¥é¥ê¤âV1.0.2¤Ë
¥¢¥Ã¥×¥Ç¡¼¥È¤·¤Æ¤ª¤ê¤Þ¤¹¤Î¤Çº¹¤·Âؤ¨¤Æ¤¢¤ê¤Þ¤¹¡£
¤Ç¤âSDMMC¤Îuint64_t¤Ç½èÍý¤·¤Ê¤¤ã¤Ê¤é¤Ê¤¤½èÍý¤¬uint32_t¤Î¤Þ¤Þ¤Ç
¤Þ¤À¼£¤Ã¤Æ¤Ê¤¤¤Î¤Ç»ä¼«¤éHAL¥é¥¤¥Ö¥é¥ê¤Ë½¤Àµ¤ò²Ã¤¨¤Æ¤ª¤¤Þ¤·¤¿Ž¸Ž¿Ž§¡ª
STM32F7¤ò»È¤Ã¤Æ¤ß¤ë6 -¥¿¥Ã¥Á¥Ñ¥Í¥ëÆþÎϤÈQSPI¤ÎÄɲÃ-
¤â¤¦µ¤¤Å¤¤¤¿Êý¤â¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬STM32F7¸þ¤±¤Î¤¤¤Ä¤â¤Î¤ò9·î1ÆüÈǤË
¹¹¿·¤·¤Æ¤ª¤ê¤Þ¤¹¡£
Êѹ¹ÅÀ¤ÏºÙ¤«¤¤¥Ð¥°ÄÙ¤·¤ÈÍÆÎÌÀ¥¿¥Ã¥Á¥Ñ¥Í¥ëÆþÎÏ¡¢¤½¤·¤ÆQSPI¤ÎÂбþ¤Ç¤¹¡£
¡üCTP(ÍÆÎÌÀ¥¿¥Ã¥Á¥Ñ¥Í¥ëÆþÎÏ)Âбþ
STM32F7Discovery¤Ë¤Ï¾åµ¤Î¥¿¥Ã¥Á¥Ñ¥Í¥ëÉÕ¤¤ÎTFT-LCD¥â¥¸¥å¡¼¥ë¤¬ÅëºÜ
¤µ¤ì¤Æ¤¤¤Þ¤¹¡£·¿È֤ǥ°¥°¤Ã¤Æ¤â½Ð¤Æ¤³¤Ê¤¤¤Î¤Ç¤ª¤½¤é¤¯ÆÃÃíÉʤʤΤǤ·¤ç¤¦¡£
CTP¥³¥ó¥È¥í¡¼¥é¤Ë¤ÏFT5336GQQ¤Ê¤ëʪ¤¬»ÈÍѤµ¤ì¤Æ¤ª¤ê¤Þ¤¹¡£
¤µ¤Æ¡¢°ÊÁ°¤Ï¤â¤Ã¤È¤âñ½ã¤ÊADS7843·Ï¡¢¤Á¤ç¤Ã¤È¥¤¥ó¥Æ¥ê¥¸¥§¥ó¥¹¤Ê
µ¡Ç½¤ò¤â¤ÄSTMPE811Åù¤ÎÄñ¹³Ëì¼°¤Î¤â¤Î¤ò°·¤Ã¤Æ¤¤Þ¤·¤¿¡£
ÍÆÎÌÀ¤Î¾ì¹ç¤Ï¥á¥«¥Ë¥º¥à¤¬Á´¤¯°ã¤¤Ê£»¨¤Ë¤Ê¤ë¤Î¤ÇÀìÍÑIC¤ËÍê¤é¤¶¤ë¤ò
ÆÀ¤Ê¤¤¤Î¤Ç¤¹¤¬¤½¤ì¤Î»È¤¤Êý¤òÇİ®¤¹¤ë¤Î¤Ç¤â¤³¤ì¤Þ¤¿Ê£»¨¤ÇÀµ¹¶Ë¡¤Ç
¹Ô¤¯¤È¤È¤Æ¤â»þ´Ö¤¬¤«¤«¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¤½¤ó¤Ê¤ï¤±¤ÇST¥Þ¥¤¥¯¥íÄ󶡤ÎCubeF7¥é¥¤¥Ö¥é¥ê·²¤Ë¤ÏBSP¤È¤·¤Æ
FT5336GQQÍѤΥ¢¥¯¥»¥¹ÍÑ´Ø¿ô¤¬¤Á¤ã¤ó¤ÈÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£
¤·¤«¤âF7-DiscoveryÍѤËI/O¤ÎÀßÄê¤â¸æëФ¨¤Æ¤ª¤ê¤Þ¤¹¡£
¼ÂÁõ¤ÏÇï»ÒÈ´¤±¤¹¤ë¤¯¤é¤¤ÍưפǤ·¤¿¡£»ä¤Î²áµî¤Î¥¿¥Ã¥Á¥Ñ¥Í¥ëÆþÎϤÎ
½èÍý¤È·ë¹ç¤µ¤»¤ÆGPIO¤Î¥¨¥Ã¥¸³ä¤ê¹þ¤ß¤Î½èÍý¤òÄɲ乤ë¤À¤±¤ÇºÑ¤ß¤Þ¤·¤¿¡£
F7-Discovery¤Î¥Ç¥â¤Ç¤Ï¥¿¥Ã¥Á¤·¤¿¾õÂÖ¤¬ÊѤï¤é¤Ê¤¤¤È³ä¤ê¹þ¤ß½èÍý¤ò
È´¤±¤é¤ì¤Ê¤¤¹½Â¤¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¥Ç¥Ã¥É¥í¥Ã¥¯¤Î´í¸±À¤¬¤¢¤Ã¤¿¤Î¤Ç¡¢
¤½¤³¤À¤±¤Ï¾Ê¤¤¤Æ¤¤¤Þ¤¹¡£
¾¤Î¾å°Ì¤Î¥ì¥Ù¥ë¤Î½èÍý¤Ï°ìÀÚÊѤ¨¤Æ¤¤¤Ê¤¤¤Î¤Ç²áµî¤ÎÄñ¹³Ëì¼°¤Î¤â¤Î¤ÈƱ¤¸
¤è¤¦¤Ê´¶³Ð¤ÇÁàºî¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
ËÜÍè¤Ê¤é¤ÐFT5336GQQ¤ÎBSP¤¬¤ä¤Ã¤Æ¤ë½èÍý¤òʬ²ò¡¦ºÆ¹½ÃÛ¤·¤Æ¼«Ê¬ÆÈ¼«¤Î
¥¿¥Ã¥Á¥Ñ¥Í¥ëÆþÎϽèÍý¤È¤¹¤Ù¤¤È¤³¤í¤Ê¤Î¤Ç¤¹¤¬»Äǰ¤Ê¤¬¤é»ä¤Îµ»½ÑÎϤϤ½¤³¤Þ¤Ç
µÚ¤Ð¤º¤¢¤¨¤Ê¤¯°Â°×¤ÊÊýË¡¡¢"½ÐÍè¹ç¤¤¤Î½èÍý"¤òÄ󼨤µ¤ì¤¿¥é¥¤¥»¥ó¥¹¤Ë½¾¤Ã¤Æ
ÍøÍѤµ¤»¤Æ¤â¤é¤¦¤³¤È¤Ë¤·¤Þ¤·¤¿¡£F7¤Ë¤Ê¤Ã¤Æ¤«¤é¤ÏÊ£»¨²½¤âÁê¤Þ¤Ã¤Æ¤½¤¦¤¤¤¦
¾ìÌ̤¬Â¿¿ô½Ð¤Æ¤¤Æ¤¤¤Þ¤¹¡£
»ä¤âµð¿Í¤Î¸ª¤Î¾å¤Ë¾è¤ë¾®¿Í¤Î¤¦¤Á¤Î°ì¿Í¤Ë¤¹¤®¤Ê¤¤¤Î¤Ç¤¹¡Ä!
Á°¸þ¤¤Ë¹Í¤¨¤ë¤È¥½¡¼¥¹¥³¡¼¥É¤ò¸ø¼°¤Î¤â¤Î¤È¸ß´¹À¤ò»ý¤¿¤»¤ÆÌäÂê¤òÀÚ¤êʬ¤±
°×¤¯¤¹¤ë¤Ê¤ó¤Æ¤³¤È¤â¸À¤¨¤Þ¤¹¤¬¤æ¤¯¤æ¤¯¤ÏSegger¤ÎSTemWin¤È¤«¤â»È¤Ã¤Æ¤ß¤¿¤¤
¤Î¤Ç²¿¤Ç¤â¤«¤ó¤Ç¤â¼«ºî¤Ë¤È¤é¤ï¤ì¤º½ÀÆð¤Ë¤ä¤Ã¤Æ¤³¤¦¤È»×¤¤¤Þ¤¹¡£
¤â¤Ê¤«¤µ¤ó¤â¤³¤¦¸À¤Ã¤Æ¤Þ¤¹¤·¤Ç¤âÁǤÎEclipse¤Ê¤ó¤ÆÀäÂФ˻Ȥ¤¤Þ¤»¤ó¤è¤¥¡ª¡ª
޹ŽÞŽÎ޹ŽÞŽÎޥޥޥŽÊާŽÊާ¼ºÎéŽ¥Ž¥Ž¥¼¡¤Ë¿Ê¤ß¤Þ¤·¤ç¤¦Ž¥Ž¥Ž¥
¡üQSPI-ROM¤ò¥á¥â¥ê¥Þ¥Ã¥×¥É¥â¡¼¥É¤Ç»È¤¦
¤³¤Á¤é¤ÏLPC4330¤Î»þ¤Ë¤â¾Ò²ð¤·¤¿ÅÛ¤ÈÆ±¤¸¤Ç¤¹¤Í¡£SPI-ROM¤Î¥á¥â¥êÎΰ褬
ÆÃÊ̤ʴؿô¤ò·Ðͳ¤»¤º¤Ë¥ê¥Ë¥¢¤Ë¥¢¥¯¥»¥¹¤Ç¤¤ë¤È¤¤¤¦ÊØÍø¤Êµ¡¹½¤Ç¤¹¡£
¤³¤ÈSTM32F7¤Ë¸Â¤Ã¤Æ¤ÏD-Cache¤ò¶´¤à¤Î¤Ç½¾Íè¤ÎSPI-ROM¤Ç¤Ï¤É¤¦¤·¤è¤¦¤â
¤Ê¤«¤Ã¤¿Â®ÅÙŪ¤Ê¥Ü¥È¥ë¥Í¥Ã¥¯¤Ï¤¢¤ëÄøÅÙ²ò¾Ã¤µ¤ì¤ë¤è¤¦¤Ç¤¹¡£
F7¤ÎHAL¥é¥¤¥Ö¥é¥ê¤Ë¤ÏQSPI¤Î´Ø¿ô/BSP¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¤¬¥á¥â¥ê¥Þ¥Ã¥×¥É¥â¡¼¥É
¤Ç»ÈÍѤ¹¤ë¾ì¹ç¤Ï°ìÅÙ¥¤¥Ë¥·¥ã¥é¥¤¥º¤·¤µ¤¨¤¹¤ì¤Ð¸å¤ÏÉáÄÌ¤ÎÆâ¢¥Õ¥é¥Ã¥·¥å
¥á¥â¥ê¤ÈÁ´¤¯¤ª¤ó¤Ê¤¸¤Ç¤¹¡£
º£²ó¤âBSP¤òºÇÂç¸Â¤ËÍøÍѤµ¤»¤Æ¤â¤é¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢QSPI¤Î¥á¥â¥ê¥Þ¥Ã¥×¥É¥â¡¼¥É¤Ç¤Ï
ÆÉ¤ß½Ð¤·ÀìÍѤǻȤ¦¾ì¹ç¤Ï³ä¤ê¹þ¤ß½èÍý¤ÏÁ´¤¯ÉÔÍפʤΤǽé´ü²½»þ¤ÎNVIC¤ÎÀßÄê
¤ò¾Ê¤¤¤Æ¤ª¤¯¤³¤È¤â¤Ç¤¤Þ¤¹¡£
»ä¤ÏQSPI-ROM¤òFONTX2¤Î¥Ç¡¼¥¿ÃÖ¾ì¤È¤·¤ÆÍøÍѤ·¤Þ¤·¤¿¡£
F746Discovery¤Ç¤ÏN25Q128A¤¬ÅëºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£N25Q128A¤Ï°ì¥»¥¯¥¿¤¢¤¿¤ê
64kByte¤º¤Äʬ¤«¤ì¤Æ¤¤¤Þ¤¹¤Î¤ÇFONTX2¥Õ¥¡¥¤¥ë¤ò½ñ¤¹þ¤à¥¢¥É¥ì¥¹¤ÏȾ³Ñ¤ò
0x90000000¡¢Á´³Ñ¤Ï0x90010000¤ËÇÛÃÖ¤·¤Æ¤ß¤Þ¤·¤¿¡£
¤¢¤ÈQSPI-ROM¤Ë¥Ç¡¼¥¿¤ò½ñ¤¹þ¤àÊýË¡¤Ç¤¹¤¬STLinkUtility¤ÎVer3.7¤«¤éF7Discovery
ÍѤγ°Éô¥Õ¥é¥Ã¥·¥å¥í¡¼¥À¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤òÍøÍѤ·¤Æ½ñ¤¹þ¤ß¤Þ¤¹¡£
À褺¤ÏȾ³Ñ
¤ª¼¡¤ÏÁ´³Ñ¡£
¤Ê¤ó¤Ç¤«³ÈÄ¥»Ò¤Ïbin,elf,hex¤·¤«ÂÌÌܤʤΤÇFONTX2¥Õ¥¡¥¤¥ë½ñ¤¹þ¤àºÝ¤Ï
³ÈÄ¥»Ò¤òbin¤ËÊѤ¨¤Æ½ñ¤¹þ¤ó¤Ç¤¯¤À¤µ¤¤¡£
¤³¤¦¤ä¤Ã¤ÆQSPI-ROM¤Ë½ñ¤¹þ¤ó¤À¥Ç¡¼¥¿¤Ï¾åµ¤Î¤è¤¦¤Ë¤·¤Æ»²¾È¤·¤Þ¤¹¡£
¥á¥â¥ê¥Þ¥Ã¥×¥É¥â¡¼¥É¤À¤«¤é¤Ç¤¤ëµ»¤Ç¤¹¤Í¡Á
̵»ö¤Ëµ¯Æ°¤·¤Þ¤·¤¿¡£S-JIS·Á¼°¤Îtxtʸ½ñ¤â¤´¤é¤ó¤ÎÄ̤ê¤Ç¤¹¡£
¥Ó¥ë¥É»þ¤ËµðÂç¤ÊFONTX2¥Õ¥¡¥¤¥ë¤òÁȤ߹þ¤àɬÍפ¬¤Ê¤¯¤Ê¤ê¡¢¥Õ¥é¥Ã¥·¥å½ñ¤¹þ¤ß
¤Ë³Ý¤«¤ë»þ´Ö¤âÀáÌó¤Ç¤¤Æ¥Æ¥ó¥Ý¤è¤¯¥Ç¥Ð¥Ã¥°¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ë¤È»×¤¤¤Þ¤¹¡£
¥Ç¥Ð¥Ã¥¬¤«¤éQSPI¤Î¥á¥â¥ê¤ò»²¾È¤¹¤ë¤È¤³¤ó¤Ê´¶¤¸¤Ë¸«¤¨¤Þ¤¹¡£
¤â¤Á¤í¤ó»²¾È»þ¤Ï¥á¥â¥ê¥Þ¥Ã¥×¥É¥â¡¼¥É¤Ë¤Ê¤Ã¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤³¤ì¤ÏȾ³Ñ¤ÎFONTX2¤Ç¤¹¡£
¤³¤Á¤é¤ÏÁ´³Ñ¤Ç¤¹¡£
¸½ºß¤Ï¤Þ¤À¸ÂÄêŪ¤«¤Ä¼Â¸³Åª¤Ê»ÈÍѤˤȤɤޤäƤ¤¤Þ¤¹¤¬QSPI-ROM¤Î͸ú¤Ê
³èÍÑË¡¤¬¿·¤¿¤Ë¸«¤Ä¤«¤Ã¤¿¤é¾Ò²ð¤·¤Æ¤¤¤¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
¡ü¤ª¤Þ¤±
¤¤¤Ä¤â¤Î¤Îmakefile¤ß¤¿¤é²¿¤ò¤É¤¦¤¹¤ì¤Ð¤ï¤«¤ë¤È¤Ï»×¤¤¤Þ¤¹¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï
°Ê²¼¤Î"¤Ò¤È¤Þ¤º³Î¼Â¤Ëư¤¯ÀßÄê"¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
1:Æâ¢¥Õ¥é¥Ã¥·¥å¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹
¡¡->AXIM
2:SDRAM
¡¡->͸ú
3:¥¿¥Ã¥Á¥Ñ¥Í¥ë
¡¡->͸ú
4:FONTX2
¡¡->Æâ¢¥Õ¥é¥Ã¥·¥å¤«¤é»²¾È¤«¤ÄQSPI¤Ï̵¸ú
"4:"¤ÎFONTX2¤Î¥É¥é¥¤¥Ð¤ÇQSPI-ROM¤ò»²¾È¤·¤¿¤¤¾ì¹ç¤ÏÅö¤¿¤êÁ°¤Ç¤¹¤¬¡¢
¤¢¤é¤«¤¸¤áȾ³Ñ/Á´³Ñ¤½¤ì¤¾¤ì¤ÎFONTX2¥Õ¥¡¥¤¥ë¤ò¾å¤Ç¾Ò²ð¤·¤¿¼ê½ç¤Ç
QSPI-ROM¤ÎŬÀڤʥ¢¥É¥ì¥¹¤ËSTLinkUtil¤ò»ÈÍѤ·¤Æ½ñ¤¹þ¤ó¤Ç¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
STM32F7¤Ï¤Â¤á¤Þ¤·¤¿
ºòǯ½©¤Ë¥×¥ì¥¹¥ê¥ê¡¼¥¹¤Çȯɽ¤µ¤ì¤¿STM32F7¤Ç¤¹¤¬»ä¤¬ESP-ROOM-02Ï®¤ê¤Ë
Ì´Ãæ¤Ë¤Ê¤Ã¤Æ¤ë´Ö¤Ë¤Ò¤Ã¤½¤ê¤È»Ô¾ì¤ËήÄ̤·¤Æ¤ª¤ê¤Þ¤·¤¿¡£
ŽË¤ò¸«¤Æ¤¿¤é¹ñÆâ³°Ìä¤ï¤º´û¤ËÆþ¼ê¤·¤ÆOpenOCD¤Ç¥Ð¥ê¥Ð¥ê»È¤¤Åݤ·¤Æ¤ë¿Í¤¿¤Á¤â¤¤¤Æ
STM32¹¥¤¤Î»ä¤È¤·¤Æ¤Ï¤¹¤Ã¤«¤êή¤ì¤Ë¼è¤ê»Ä¤µ¤ì¤¿´¶¤¸¤Ç¤¹¤¬DigiKey¤ÇÂçÎ̤˺߸Ë
¤·¤Æ¤¤¤¿¤Î¤Ç»ä¤â°ì¤Ä¹ØÆþ¤·¤Æ¤ß¤Þ¤·¤¿¡£
ÌܤÎÁ°¤Ë¸½¤ì¤¿STM32F7-Discovery¤Ï»ä¤ÎÃΤäƤëDiscovery·Ï¤Î¥¥Ã¥È¤ÎÁÛÁü¤ò
ͤ¨¤¿±Õ¾½¤âSD¥«¡¼¥É¥¹¥í¥Ã¥È¤â³°ÉôSDRAM¤âQSPI-ROM¤â¤Ä¤¤¤¿Ì´¤ÎÁ´ÉôºÜ¤»¤Ç¤·¤¿¡ª
¤Á¤Ê¤ß¤Ë±Õ¾½¤Î¥¿¥Ã¥Á¥Ñ¥Í¥ë¤ÏÄñ¹³Ëì¼°¤Ç¤Ï¤Ê¤¯¤Ê¤ó¤ÈÀÅÅÅÍÆÎ̼°¤Ç¤¹¡ª
¤Ê¤ó¤Æ¥´¡¼¥¸¥ã¥¹¤Ê¡Ä
Cortex-M7¥³¥¢¤ò»ý¤ÄSTM32F746NGH6¤¬ÅëºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥¹¥Ú¥Ã¥¯¤Ë¤Ä¤¤¤Æ¤Ïºòǯ
½©¤â¿¨¤ì¤Þ¤·¤¿¤¬ÎÌ»º³«»Ï¸å¤ËºÇÂçÆ°ºî¼þÇÈ¿ô¤¬200->216MHz¤Ë¥Ñ¥ï¡¼¥¢¥Ã¥×¤·¤Æ
¤Þ¤¹¡£¥Ç¥Ð¥Ã¥¬¤ÏSTLinkV2-1¤¬ÅëºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
ÅöÁ³¤Î¤´¤È¤¯SDRAM¤¬ÅëºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£Micron¤Î128MBit¤ÎSDRAM¤Ç¤¹¡£
Ʊ¤¸¤¯STM32F7¥·¥ê¡¼¥º¤ÎÌ̤ܶΰì¤ÄQ(uad)SPI-ROM¤Ç¤¹¡£LPC4000¥·¥ê¡¼¥º¤Î
SPIFI¤ÈƱ¤¸¤¯¥ê¥Ë¥¢¤Ê¥¢¥¯¥»¥¹¤¬¤Ç¤¤ë¤Î¤¬ÆÃħ¤Ç¤¹¡£FontX2¥Õ¥¡¥¤¥ëÅù¤Î
Â絬Ìϥǡ¼¥¿¤Ï°ìÀÚ¹çºâ¤³¤³¤Ë¤Ö¤Á¹þ¤ß¤Þ¤·¤ç¤¦¡ª
¤Þ¤¿¡¢EthernetÍѤÎPHY¤âÅëºÜ¤Ç¤¹¡£Àܳ¤¹¤ë¥Ô¥ó¿ô¤¬¾¯¤Ê¤¤RMIIÊý¼°¤Ç
STM32F7¤ÈÀܳ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤µ¤é¤ËUSB-HighSpeedÍѤÎPHY¤Þ¤Ç¤Ä¤¤¤Æ¤¤¤Þ¤¹¡ª¡ª¤³¤Á¤é¤ÏULPI¤ÇÀܳ¤µ¤ì¤Þ¤¹¡£
¸å¤Ç¿¨¤ì¤Þ¤¹¤¬USB¥á¥â¥ê¤òÀܳ¤¹¤ë¤Î¤Ë¤Á¤ç¤¦¤ÉÎɤ¤¤Ç¤¹¤Í¡£
¤µ¤é¤Ë¤µ¤é¤ËI2S-Codec¤âÅëºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡ª¡ª¡ªSTM32F4¤Ç¤âÅëºÜ¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¤¬
Ʊ¤¸¤è¤¦¤Ë"¤¤¤Ä¤â¤Î"¤¬½ÐÍ褽¤¦¤Ç¤¹¡£SAI¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÇÀܳ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤½¤·¤Æ¤³¤ì¤À¤±¤½¤í¤Ã¤Æ¤ªÃÍÃʤϤʤʤʤó¤È$50¤Ç¤¹¤è±ü¤µ¤ó¡ª¡ª(DigiKey¤è¤ê)
¤³¤ó¤Ê»þÂå¤Ë¤Ê¤Ã¤¿¤Î¤Ç¤¹¤Í¡Ä2009ǯ¤Î¤³¤í¤ÏÁ´¤¯¹Í¤¨¤é¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡Ä
¤·¤ß¤¸¤ß
¤·¤ß¤¸¤ß¤¹¤ë¤Î¤Ï¤½¤ÎÊդˤ·¤ÆÁᮤ¤¤¸¤Ã¤Æ¤ß¤Þ¤·¤¿¡£
STLink¦¤ÎUSB-miniB¥±¡¼¥Ö¥ë¤òPC¤ÈÀܳ¤¹¤ë¤È¥É¥é¥¤¥Ð¤òÆÉ¤ß¹þ¤ó¤À¸åSTM32F7
¦¤Ë¤âÅŸ»¤¬¶¡µë¤µ¤ì¤Æ¥×¥í¥°¥é¥à¤¬Áö¤ê½Ð¤·¤Þ¤¹¡£
¤¹¤°¤Ë¥Ê¥¦¤¤¥í¥´¤¬½Ð¤Æ¤¤Þ¤¹¡£
¤¹¤°¤Ë¥á¥Ë¥å¡¼²èÌ̤ˤʤꡢ¥¿¥Ã¥×¤Ç¤¤¤¯¤Ä¤«¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Áª¤Ù¤ë¤è¤¦¤Ë
¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤·¤«¤âCPU¤ÎÉé²ÙΨ¤â¥ê¥¢¥ë¥¿¥¤¥à¤Çɽ¼¨¤µ¤ì¤Þ¤¹¡£
200MHz¤Çư¤¤¤Æ¤¤¤ë¤Î¤Ç·ë¹½È¯Ç®¤·¤Þ¤¹¡£F4¥·¥ê¡¼¥º¤È°ã¤Ã¤Æ¦¤T¤Ï10Åٰʾ夢¤ë¤È
»×¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤ì¤Ç¤â¾¤ÎÉʼï¤ÎƱ¼þÇÈ¿ô¤Î¤â¤Î¤ÈÈæ¤Ù¤ë¤ÈÄ㤤¤Û¤¦¤Ç¤¹¤¬¡£
ÀÅÅÅÍÆÎ̼°¥¿¥Ã¥Á¥Ñ¥Í¥ë(CTP)¤Ê¤Î¤ÇʪÍý¤Ç²¡¤·¤Æ¤â¤À¤á¤Ç¤¹¡£»Ø¤ÇÁàºî¤·¤Þ¤·¤ç¡£
À褺¤Ï"audioplayer"¤Ç¤¹¡£USB¥á¥â¥ê¤Ë»Å¹þ¤ó¤Àwave¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ó¤ÇºÆÀ¸¤·
¤Þ¤¹¡£¥Ç¥â¤ÏHS¦¤ÎUSB-OTG¤À¤±¤·¤«È¿±þ¤·¤Þ¤»¤ó¤Î¤Ç¤´Ãí°Õ¤¯¤À¤µ¤¤¡£USB-FS¤ä
SD¥«¡¼¥É¤Ï̤¼ÂÁõ¤Î¤è¤¦¤Ç¤¹¡£
ºÆÀ¸¤·¤Æ¤ë½ê¤Ç¤¹¡£²»ÎÌÄ´À᤬¶¹¤¯¤Æ²»Î̤ò¾å¤²¤è¤¦¤È¤¹¤ë¤È»Ø¤¬¥á¥Ë¥å¡¼¤Ë
¤¢¤¿¤Ã¤Æ¤·¤Þ¤Ã¤ÆºÇ½é¤Î²èÌ̤ËÌá¤Ã¤Æ¤·¤Þ¤¤¤¬¤Á¤Ç¤¹¡£¤É¤¦¤Ç¤â¤¤¤¤¤Ç¤¹¤¬¡£
info¥á¥Ë¥å¡¼¤Ç¤Ï¸½ºß¤Îưºî¼þÇÈ¿ô¤ä¥Õ¥¡¡¼¥à¥¦¥¨¥¢¤Î¥Ð¡¼¥¸¥ç¥ó¤¬É½¼¨¤µ¤ì¤Þ¤¹¡¢
¥Õ¥¡¡¼¥à¥¦¥§¥¢¤È¤ä¤é¤ÏÌÞÏÀSTM32CubeF7¤Î»ö¤Ç¤¹¡Ä¡£
¤É¤¦¤Ç¤â¤¤¤¤¤³¤È¤Ç¤¹¤¬¤¿¤Þ¤Ë°ÛÍͤËCPUÉé²Ù¤¬100%¤Ë¤Ê¤Ã¤ÆÆ°ºî¤¬°ÛÍͤˤâ¤Ã¤µ¤ê
¤·¤¿¤ê¸Ç¤Þ¤Ã¤¿¤ê¤¹¤ë¤Î¤Ç¤¹¤¬»ä¤ÎÁàºî¤¬Á᤹¤®¤ë¤»¤¤¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡©¡©¡©
¤µ¤Æ¡¢¥Ç¥â¥×¥í¥°¥é¥à¤ò¿¨¤ë¤Î¤Ï¤³¤ÎÊդˤ·¤Æ¤Í¤à¤¤¤µ¤ó¤Î¤¤¤Ä¤â¤Î¤Î½àÈ÷¤ò¡¢
GCC¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ó¥ë¥É¤Ç¤¤ë´Ä¶¤ò¸Ç¤á¤Æ¹Ô¤³¤¦¤È»×¤¤¤Þ¤¹¡£OpenOCD¤Ï¤Þ¤À
¥ì¥Ó¥å¡¼Ãʳ¬¤Ç¤¹¤¬STM32F7¥Õ¥é¥Ã¥·¥å½ñ¤¹þ¤ßÍѥѥåÁ¤¬¸ø³«¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
ʵ¤ä¤ä¤³¤·¤¤¤Î¤Ç¤¹¤¬¥Ñ¥Ã¥Á¤ÏCortex-M7ÍѤÈSTM32F7ÍѤÎ2¼ïÎफɬÍפǤ·¤¿
http://openocd.zylin.com/#/c/2786/
http://openocd.zylin.com/#/c/2784/
http://openocd.zylin.com/#/c/2753/4
http://openocd.zylin.com/#/c/2753/5
2753¤ÏÍ×Ãí°Õ¤Ç¤¹¡£#5¤Î¥Ñ¥Ã¥Á¤À¤±¤¢¤Æ¤Æ¤âF7Âбþ¤Ë¤Ê¤ê¤Þ¤»¤ó¡ª
¤Þ¤¡¤ä¤êÊý¤µ¤¨¤ï¤«¤ì¤Ð¥Ó¥ë¥É¤Ï¤¤¤Ä¤â¤É¤ª¤ê¤Ê¤Î¤Ç¤é¤¯¤Á¤ó¤Ç¤¹¡ú
¥Ð¥¤¥Ê¥ê¤Ï´û¤ËSTM32F7Âбþ¤Ë¹¹¿·¤·¤Æ¤¢¤ê¤Þ¤¹♥
cfg¥Õ¥¡¥¤¥ë·²¤â¹¹¿·¤·¤Þ¤·¤¿¤Î¤Ç¤É¤¦¤¾¡£
STLink/V2-1¤â¥Õ¥¡¡¼¥à¤¬M11¤Ë¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç»öÁ°¤Ë¥¢¥Ã¥×¥Ç¡¼¥È¤·¤Æ
¤ª¤¤Þ¤·¤ç¤¦¡£STLink-Utility¤â3.6¤Ë¹¹¿·¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
20150714ÄÉ:
M11¤Ë¹¹¿·¤·¤Ê¤¤¤ÈOpenOCD¤Ç½ñ¤¹þ¤à¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤Î¤Ç¤´Ãí°Õ¡ª¡ª¡ª¡ª
¤Þ¤ÀF7¸þ¤±¤ÎGCC¥×¥í¥¸¥§¥¯¥È¤Ï¤³¤µ¤¨¤Æ¤¤¤Ê¤¤¤Î¤Çµ»ö¤ò½ñ¤¯2ÆüÁ°¤Ë1.0.1¤Ë
¥¢¥Ã¥×¥Ç¡¼¥È¤·¤¿¤Ð¤Ã¤«¥ê¤ÎCubeF7¤ÎF7Discovery¸þ¤±¤Î¥Ç¥â¥×¥í¥°¥é¥à¤Î
¥Ó¥ë¥ÉºÑ¤ßhex¥Õ¥¡¥¤¥ë¤òOpenOCD¤«¤é¾Æ¤¤¤Æ¤ß¤Þ¤¹¡£¤½¤ÎÁ°¤ËSTLink-Utility¤Ç
Àܳ¤·¡¢¥Ç¥â¥×¥í¥°¥é¥à¤Îhex¤òÆÉ¤ß¹þ¤Þ¤»¤Æ¤ß¤Þ¤·¤¿
¤³¤Îhex¥Õ¥¡¥¤¥ë¡¢19MByte¤âͤë¤Î¤Ç¤¹¤¬¥Õ¥©¥ó¥È¤È²èÁü¥Ç¡¼¥¿¤¬¤¢¤ëQSPI¤ÎÎΰè¤â
´Þ¤Þ¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹(0x90000000°Ê¹ß¤ÎÎΰè)¡£¤Þ¤À³°ÉÕ¤±¤ÎQSPI¤ÎÆÉ¤ß½ñ¤¤Ë¤Ï
Âбþ¤·¤Æ¤¤¤Ê¤¤¤Î¤ÇÆâ¢¥Õ¥é¥Ã¥·¥å¤·¤«½ñ¤¹þ¤à¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤¬QSPI¤Ë»Å¹þ¤ó¤Ç
¤¢¤ë¥Ç¡¼¥¿¤Ï¥·¥«¥È¤·¤ÆÆâ¢¥Õ¥é¥Ã¥·¥å¤Î¤À¤±ÌµÍý¤ä¤ê¹¹¿·¤Ç¤¤Þ¤¹¡£
STLink-Utility¤ÎExternalFlashLoader¤ËF7Discovery¸þ¤±¤ÎQSPI¥É¥é¥¤¥Ð̵¤¤¤ó¤Ç¤¹
¤±¤©Ž¥Ž¥Ž¥###¤½¤ì¤Ï¤ª¤¤¤È¤¤¤ÆOpenOCD¤ËÏäò°Ü¤·¤Þ¤¹¡ª¡ª¡ª¡ª
°Æ¤ÎÄêQSPI¤ÎÎΰè¤Ç¤Ï¥¨¥é¡¼¤¬½Ð¤Þ¤¹¤¬²¿¤È¤«¥Õ¥é¥Ã¥·¥å¤Ï½ñ¤¹þ¤ß¤Ç¤¤Æ¤Þ¤¹¡£
̵»ö¥Õ¥¡¡¼¥à¥¦¥¨¥¢¤òV1.0.1¤ËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤·¤¿¡£
¤½¤ó¤Ê¤ï¤±¤ÇSTM32F7¤ò¤Û¤ó¤È¤Ë¿¨¤ê¤À¤±¤Ç¤·¤¿¤¬¿¨¤ì¤Æ¤ß¤Þ¤·¤¿¡£
¤³¤ì¤«¤é¤¤¤Ä¤â¤Î¥Ó¥ë¥É´Ä¶¤Ë¹ç¤ï¤»¤¿¥×¥í¥¸¥§¥¯¥Èºî¤ê¤ò¿Ê¤á¤Æ¹Ô¤¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
F4¤Î»þ¤ËCubeF4¸þ¤±¤Ë¥Ú¥ê¥Õ¥§¥é¥ë¥É¥é¥¤¥Ð¤Î°Ü¿¢¤ò»î¤ß¤Þ¤·¤¿¤¬·ë¶ÉUART¤Þ¤Ç¤·¤«
¼ÂÁõ¤Ç¤¤Ê¤«¤Ã¤¿¤Î¤Çº£ÅÙ¤³¤½Ëܵ¤½Ð¤·¤Þ¤¹¡ª¡ª
(2ǯ¤Ö¤ê4ÅÙÌÜ)
STM32F7¤¬È¯É½¤Ë¤Ê¤Ã¤ÆCMSIS¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤â¤è¤¦¤ä¤¯V4.00¤Ë¤Ê¤Ã¤¿
20150717ÄÉ
STM32F7¤Ï¤Â¤á¤Þ¤·¤¿
20150717ÄÉ
¾¯¤·Á°¤ËCortex-M4¤ò¤µ¤é¤Ë¿Ê²½¤µ¤»¤¿Cortex-M7¤¬È¯É½¤µ¤ì¡¢¤Í¤à¤¤¤µ¤ó¤ò´Þ¤à
°ìÉô¤ÎÊý¤Î´Ö¤ÇÁûÁ³¤È¤·¤Æ¤ª¤ê¤Þ¤·¤¿¡£Æ±»þ¤ËSTMicro¤µ¤ó¤«¤é¤âƱ¥³¥¢¤¬ÅëºÜ¤µ¤ì¤¿
STM32F7¥·¥ê¡¼¥º¤¬È¯É½¤µ¤ì¡¢´û¤ËBGAÉʤ¬¥µ¥ó¥×¥ë¤È¤·¤Æ
½Ð²Ù¤µ¤ì¤Æ¤¤¤ë¤½¤¦¤Ç¤¹¡£
´û¤ËSTM32F7ÍѤΥµ¥¤¥È¤â¤¢¤Ã¤Æ¥Ç¡¼¥¿¥·¡¼¥È¤â
¸ø³«¤µ¤ì¤Æ¤ª¤ê¤Þ¤¹(RM¤Ï¤Þ¤À¤Ç¤¹¡Ë¡£
Cortex-M7¥³¥¢¤Ç¤ÏAXI+AHB¤Î¥Þ¥È¥ê¥¯¥¹¤Ë¤Ê¤ê¡¢Ì©·ë¹ç¥á¥â¥ê(TCM)¤â
¥¤¥ó¥¹¥È¥é¥¯¥·¥ç¥ó¤È¥Ç¡¼¥¿ÀìÍѤËÍѰդµ¤ì¤µ¤é¤Ë³°Éô¥á¥â¥êÍѤËI/D¤È¤â
4kByte¤º¤ÄL1¥¥ã¥Ã¥·¥å¤âÅëºÜ¤µ¤ì¤Æ¤ª¤ê¤Þ¤¹¡£
¤Í¤à¤¤¤µ¤ó¤¬STM32F7¤ÇÃåÌܤ·¤¿¤Î¤ÏLPC4300¥·¥ê¡¼¥º¤Ç¤Ï¤ª¤Ê¤¸¤ß¤Î¥¯¥¢¥Ã¥É
SPI-ROM¤ÎÂбþ¤Ç¤¹¡£
¤³¤ì¤Ë¤è¤ê¥ê¥Ë¥¢¤Ê¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤µ¤ì¤ÆÆâ¢¥Õ¥é¥Ã¥·¥å¤ÈƱ¤¸´¶³Ð¤Ç
»ÈÍѤǤ¤ë¤³¤È¤Ë¤Ê¤ë¤¿¤áFONTX2¤Î¤è¤¦¤ÊÂçÍÆÎ̤Υǡ¼¥¿¤ò°·¤¦¥×¥í¥°¥é¥à¤â
ÁȤ߰פ¯¤Ê¤ê¤Þ¤¹¤Í♥
Æâ¢¥Õ¥é¥Ã¥·¥å¤¬1MB¤ËÍÞ¤¨¤é¤ì¤Æ¤¤¤ë¤Î¤â¥Ç¡¼¥¿¤Î²ô¤ÏSPI-ROM¤Ë²¡¤·¹þ¤á¤è
¤È¤¤¤¦°Õ¿Þ¤¬¤¢¤ë¤È»×¤¤¤Þ¤¹¡£
¤¢¤ÈCortex-M7¤Ç¤ÏÉâÆ°¾®¿ôÅÀ±é»»¥æ¥Ë¥Ã¥È(FPv5)¤¬ÇÜÀºÅÙ¤Þ¤ÇÂбþ¤·¤Æ
¤¤¤Þ¤¹¡Ä¤¬¡¢STM32F7¤Ç¤ÏSTM32F4¤ÈƱ¤¸Ã±ÀºÅ٤ΤߤÎÂбþ¤È¤Ê¤ë¤½¤¦¤ÇF**K!
ȯɽ¤µ¤ì¤¿Åö½é¤Ï¥Ç¡¼¥¿¥·¡¼¥È¤è¤¯ÆÉ¤ß¹þ¤ó¤Ç¤ª¤é¤º¡¢¤Ä¤¤¤ËÇÜÀºÅÙ¤Ë
Âбþ¤«¡¼¡ª¤È»×¤¤¹þ¤ó¤Ç¤¿¤Î¤Ç¤Ì¤«´î¤Ó¤Ç¤·¤¿orz
¥¢¡¼¥¥Æ¥¯¥Á¥ã¤È¤·¤Æ¤ÏCortex-M4F¤ÈƱ¤¸ARMv7E-M¤È¤Ê¤ë¤Î¤Ç¥Ð¥¤¥Ê¥ê¤Ï
¸ß´¹½ÐÍè¤ë¤½¤¦¤Ç¤¹¡£STM32F4¤Ç¤ÏTCM¤Ç¤Ï¤Ê¤¯CCM¤¬¤¢¤ê¤Þ¤·¤¿¤¬¤½¤ì¤¬
ÇÛÃÖ¤µ¤ì¤Æ¤¤¤¿¥¢¥É¥ì¥¹¤ÏTCM¤È¤ÏÁ´¤¯°Û¤Ê¤ê¤Þ¤¹¤Î¤Ç¶Å¤Ã¤¿»È¤¤Êý¤µ¤ì¤Æ
¤¤¤ëÊý¤Ï·ë¶É¥ê¥ó¥«¥¹¥¯¥ê¥×¥È¤«¤éÁȤßľ¤·¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¤´Ãí°Õ¤¯¤À¤µ¤¤¡£
¤·¤«¤·¤Ê¤¬¤éCCM¤Ç¤Ï¤Ç¤¤Ê¤«¤Ã¤¿DMAžÁ÷¤¬DTCM¤Ç¤Ï²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç
¤«¤Ê¤êÁÇľ¤Ë¥×¥í¥°¥é¥à¤òÁȤळ¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£
¤µ¤Æ¡¢È¯É½¤µ¤ì¤¿¤Ð¤Ã¤«¤Ç¾¦ÍѤϤȤ⤫¤¯GCC¥³¥ó¥Ñ¥¤¥é¤â¤³¤ì¤«¤éÂбþ³«»Ï¤È¤Ê¤ë
¤è¤¦¤Ç¤¹¤Î¤ÇSTM32F7¤ò¼ÂºÝ¤ËÆþ¼ê¤·¤ÆÍ·¤Ù¤ë¤è¤¦¤Ë¤Ê¤ë¤Î¤ÏȾǯ¤¯¤é¤¤Àè¤Ë
¤Ê¤ë¤«¤Ê¤È»×¤¤¤Þ¤¹¡£
STM32F2¤Î»þ¸«¤¿ESÉʤ¬Ãæ²Ú¤«¤éή¤ì¤Æ¤¤Æ¤¯¤ì¤¿¤é¤â¤Ã¤ÈÁᤤ¤«¤â¡£
20141001ÄÉ¡§
Lauchpad¤ÎARM-GCC¤¬¥¢¥Ã¥×¥Ç¡¼¥È¤µ¤ì¤Þ¤·¤¿¤¬¤Ê¤ó¤ÈCortex-M7¤ÎÂбþ¤¬
¥®¥ê¥®¥ê¤ÇÆÍ¤Ã¹þ¤Þ¤ì¤¿¤è¤¦¤Ç¤¹¡ª
STM32F7Âбþ¤Ë¤¹¤ë¾ì¹ç¤ÏSTM32F4¤«¤é¤Ï°Ê²¼¤Î¤è¤¦¤Ë¥ª¥×¥·¥ç¥ó¤òÊѤ¨¤ë¤³¤È¤Ë
¤è¤ê²Äǽ¤Ç¤¹¡£
STM32F4:
-mthumb -mcpu=cortex-m4 -march=armv7e-m -mtune=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16
STM32F7:
-mthumb -mcpu=cortex-m7 -march=armv7e-m -mtune=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-sp-d16
¤½¤·¤ÆCMSIS¤Î¥µ¥Ý¡¼¥È¤ÎÊý¤Ç¤¹¤¬¤³¤Á¤é¤ÎÊý¤Ïȯɽ¤ÈƱ»þ¤ËCMSIS¤â¥¢¥Ã¥×¥Ç¡¼¥È
¤·¤Æ¥Ø¥Ã¥À¥é¥¤¥Ö¥é¥ê¤â¤ä¤Ã¤È¤³3.30->4.00¤Ë¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤â¤Á¤í¤óCortex-M7¥³¥¢¤Î¥Ø¥Ã¥À¤âÄɲäµ¤ì¤Æ¤ª¤ê¤Þ¤¹¡£¤è¤¦¤ä¤¯¥á¥¸¥ã¡¼¥Ê¥ó¥Ð¤Î
¹¹¿·¤Ë¤Ê¤ê¤Þ¤·¤¿¤¬»ä¤¬»î¤·¤¿¤È¤³¤í¤Ç¤ÏÁ´¤¯±Æ¶Á¤Ï¤Ê¤«¤Ã¤¿¤Î¤Ç¤½¤Î¤Þ¤Þº¹¤·Âؤ¨¤Æ
»ÈÍѤ¬²Äǽ¤«¤È»×¤¤¤Þ¤¹¡£
¤ª¤¤Ñ¤Î¥×¥í¥°¥é¥à¤â10·îÅ٤ι¹¿·¤«¤é½ç¼¡V4.00ÈÇCMSIS¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë
º¹¤·Âؤ¨¤Æ¹¹¿·¤·¤Æ¤¤¤¤Þ¤¹¤Î¤Ç¤è¤í¤·¤¯¤ª¤Í¤¬¤¤¤·¤Þ¤¹¡£
¤ª¤Þ¤±

STM32F411RE-Nucleo¤¬²ÆÁ°¤Ë¼ê¤ËÆþ¤ê¤Þ¤·¤¿¡£STM32F411¥·¥ê¡¼¥º¤ÏF401¤Î
µ¡Ç½³ÈÄ¥ÈǤΰÌÃ֤Ť±¤Î¤è¤¦¤Ç¤¹¡£PCM1723»á¤¬Èó¾ï¤Ë¾Ü¤·¤¯¹Í»¡¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
PCM1723»á¤âCubeMX¤Î¥Ð¥°¤Ë¸ÀµÚ¤µ¤ì¤Æ¤Þ¤¹¤Í¡Ä
¤Ê¤ª¡¢¤ª¤¤Ñ¤ÎF401-Nucleo¸þ¤±¤Î¥Ð¥¤¥Ê¥ê¤Ï¤½¤Î¤Þ¤ÞSTM32F411ÈǤǤâ
»ÈÍѲÄǽ¤Ç¤¹♥
OpenOCD¤ÏSTM32F411¥·¥ê¡¼¥º¤Ï̤Âбþ¤À¤Ã¤¿¤Î¤ÇÂбþ¤µ¤»¤Æ¤ª¤ê¤Þ¤¹¡£
ËÜÍè¤ÏOpenOCD¾®¥Í¥¿¹Ô¤¤Î°Æ·ï¤Ç¤¹¤¬¾®¥Í¥¿²á¤®¤ÆºÜ¤»¤é¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç
¤³¤Á¤é¤Ç¹ðÃΤµ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£
¼¡²ó¤ÏÂçʪ¤Î¹¹¿·¤¬¹µ¤¨¤Æ¤¤¤Þ¤¹¤Î¤Ç¤´´üÂÔ²¼¤µ¤¤♥
¤ª¤¤Ñ¤Ë¤¢¤ëWindowsÍѥХ¤¥Ê¥ê¤â¤¹¤Ç¤ËÂбþºÑ¤Ç¤¹¤Î¤Ç¤´ÍøÍѤ¯¤À¤µ¤¤¡£
¤ª¤Þ¤±¤Î¤ª¤Þ¤±

¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¤¢¡ª¡ª
RTCÍѤΥÁ¥Ã¥×¥³¥ó¥Ç¥ó¥µ¤Ï°ÌÃÖŪ¤Ëʪ¤¬Åö¤¿¤ê°×¤¤°ÌÃ֤ˤ¢¤Ã¤Æ¤¹¤°·ç¤±¤ëorz
2.5¸µ¤À¤Ã¤¿¤Ï¤º¤¬¤¤¤Ä¤Î´Ö¤Ë¤«5¸µ¤ËÃ;夲¤·¤¿¤«¤È»×¤Ã¤¿¤é¤µ¤é¤Ë8¸µ¤Ë¤Ê¤ê»ÅÉñ¤ËÆüËܤÇ300±ß¤ÇÇä¤é¤ì¤Æ¤¤¤ëi2c±Õ¾½¤òư¤«¤¹
Ìó2ǯÁ°¡¢¤Í¤à¤¤¤µ¤ó¤Ïtaobao¤Ç¥Ô¥óÇÛÃְʳ°¾ÜºÙÉÔÌÀ¤Îi2c±Õ¾½¤òĶÇ˳ÊÃͤÎ
2.5¸µ¤Ç¹ØÆþ¤·¤Æ¤ª¤ê¤Þ¤·¤¿¡£¤½¤Î¸å¤Ê¤¼¤«µÞ¤Ë8¸µ¤ËÃ;夲¤·¤ä¤¬¤Ã¤Æ¤ª¤ê¤Þ¤·¤¿¤¬
»ä¤ÏÇ˳ʤ«¤Äͱ߹â¤À¤Ã¤¿¤Î¤ò³èÍѤ·¤Æ30¸Ä¤¯¤é¤¤¥¬¥á¤Æ°ÊÍèËØ¤Éưºî¤µ¤»¤º
¤½¤Î¤Þ¤Þ¤ÇÊüÃÖ¡£
¤¬¡¢
2014ǯ¤Î½Õ¡¢aitendo¤µ¤ó¤â¤³¤Î±Õ¾½¤ËÁ²¤¯Ìܤò¤Ä¤±¤¿¤è¤¦¤Ç°ì¤ÄÅö¤¿¤ê
300±ß¤ÇÈÎÇ䤷¤Æ¤¤¤Þ¤¹¡£¤µ¤¹¤¬ÂçΦŹ¡¢°¤Áæ¤Ã¥¹¤Í
¤³¤Î¤Þ¤ÞÉå¤é¤»¤ë¤Î¤â¤Ê¤ó¤Ê¤Î¤Ç狼¤¬¤³¤ì¤ò»È¤Ã¤ÆÌÌÇò¤¤Êª¤òºî¤Ã¤Æ¤â¤é¤¨¤ë
¤è¤¦¤Ë¤È¤Î´ê¤¤¤ò¹þ¤á¤Æ¹þ¤á¤Æ»ä¤ÎÅö»þ¤Î²òÀÏ·ë²Ì¤ò¸ø³«¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
¡ü¤³¤ì¤Ï¤Ê¤ó¤À
¤³¤ì¤Ïº£¤È¤Ê¤Ã¤Æ¤Ï¤´¤¯°ìÈÌŪ¤Ê¥É¥Ã¥È¥Þ¥È¥ê¥¯¥¹·Á¼°¤Î¥â¥Î¥¯¥í±Õ¾½¤Ç¤¹¡£
¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÏI2C¤Î¤ß¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¥×¥éÀ½¤Î³°ÏȤÏLED¤ò¤Ä¤±¤ë¤¯¤Ü¤ß¤Î¤è¤¦¤Ê°ÕÌ£¿¼¤Ê¤â¤Î¤â¸«¼õ¤±¤é¤ì¤Þ¤¹¤¬
¤¢¤Þ¤êµ¤¤Ë¤·¤Æ¤Þ¤»¤ó¡£
¡ü¤À¤«¤é¤³¤ì¤Ï¤Ê¤ó¤À
¤Ê¤ó¤Ê¤ó¤Ç¤·¤ç¤¦¤Í¤³¤ì¡ÄÇ´Ã奯¡¼¥×Åù¤Ç¤Ù¤Ã¤¿¤ê¤Ä¤±¤é¤ì¤Æ¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç
´Êñ¤Ë¼è¤êµî¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£Ãæ²Ú±Õ¾½¤ÏÆæ¤¬Â¿¤¤¤Ç¤¹¡£
¡ü¥Þ¥¤¥³¥ó¤È¤É¤¦¤Ä¤Ê¤²¤ì¤Ð¤¤¤¤¤Î¤«¡©
¥Ç¡¼¥¿¥·¡¼¥È¤ËÄ󼨤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¥Ô¥óÇÛÃ֤ΤߡĤۤó¤Ã¤È¤³¤ì¤À¤±¤Ç¤¹¡£
¤·¤«¤·¤½¤Î¾ðÊó¤À¤±¤Ç¤â½½Ê¬²òÀϤ¬²Äǽ¤Ç¤¹¡£
¤³¤³¤Ç´×ÏõÙÂê¡¢I2C¤È¤¤¤¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ç¤¹¤¬¡Ä
¤Ò¤È¤Þ¤º¡¢I2C¤Îµ¬³Ê¤ÏNxP¤Î¥µ¥¤¥È¤ËPDF¤Ë¤Æ¸ø³«¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¤·¤Ã¤«¤ê³Îǧ¤·
¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£¸å½Ò¤·¤Þ¤¹¤¬ºÇ½é¤ÏGPIO¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤ÎÊý¤¬Æ°ºî¤ÎÇİ®¤¬
¤·¤ä¤¹¤¤¤«¤È»×¤¤¤Þ¤¹¡£¤¤¤º¤ì¤Îưºî¤Ë¤ª¤¤¤Æ¤â¥ª¡¼¥×¥ó¥É¥ì¥¤¥ó¤Çưºî¤µ¤»¤ë¤Î¤Ï
ÊѤï¤é¤Ê¤¤¤¿¤á¡¢SDA,SDL¤Î³Æ¿®¹æÀþ¤Ë¤Ï¥×¥ë¥¢¥Ã¥×Äñ¹³¤ÏÀäÂФËɬÍפǤ¹¡£
¥×¥ë¥¢¥Ã¥×Äñ¹³»»½Ð¼°¤Ï¡¡Rp(kohm)>(Vdd-0.4)/3(mA)¡¡
¤Ê¤Î¤Ç°ìÈÌŪ¤Ê+3.3V·Ï¤Ç¤Ï
Rp > (3.3-0.4)/3 = 0.967(kohm)¤È¤Ê¤ê¤Þ¤¹¤¬¡¢
100pF¤ÎÍÆÎ̤Ç400kBpsÄÌ¿®»þ¤Î½êÍ×Ω¤Á¾å¤¬¤ê»þ´Ö300nSec¤ò¹Íθ¤¹¤ë¤È
Rp < 300(nSec)/100(pF) = 3(kohm)
·×»»¾å¤Ï0.967kohm~3kohm¤¬Å¬ÀÚ¤ÊÄñ¹³ÃͤʤϤº¤Ç¤¹¤¬¡¢1kohmÉÕ¶á¤Ç¤Ï
¥É¥é¥¤¥ÖǽÎϤ¬Ä㤤F**K¤ÊI2C±Õ¾½¤À¤ÈACK¤¬Low¤Ë°ú¤¤¤Æ¤¯¤ì¤Ê¤¤¤³¤È¤¬
¤¢¤ë¤Î¤Ç·ë¶É¼Â¬(¥ª¥·¥í¥¹¥³¡¼¥×¤ÎÇÈ·Á)¤ò¸µ¤Ë°ÂÁ´Ãͤòµá¤á¤ë±©ÌܤË
¤Ê¤ê¤Þ¤¹¡Ä¤á¤É¤¤
Bolymin¤Î¥¥ã¥é¥¯¥¿I2C±Õ¾½¤òư¤«¤·¤¿ºÝ¤Î¼Â¬¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
(MAX400kbpsÄÌ¿®»þ)
¡¡¡¡1kohm ¡ß
¡¡¡¡1.5kohm ¡û
¡¡¡¡2.2kohm ¡û
¡¡¡¡2.7kohm ¡û
¡¡¡¡3.3kohm ¡û
¤È¤¤¤¦¤ï¤±¤Ç400kBps¤ÇI2C¥Ç¥Ð¥¤¥¹¤òưºî¤µ¤»¤ëºÝ¤Ï¥×¥ë¥¢¥Ã¥×Äñ¹³¤Ï
2.7kohm¤¬ºÇ¤âŬ¤·¤Æ¤¤¤ë¤«¤È»×¤ï¤ì¤Þ¤¹¡£
¤Ç¤¹¤¬Â®ÅÙŪ¤ËÄÙ¤·¤Î¸ú¤¯100kbps¤Þ¤ÇÍî¤È¤¹¤Ê¤é4.7kohm¤ÇÄߤäȤ±¤ÐÂçÄñ¤Ï
ÌäÂê¤Ï¤¢¤ê¤Þ¤»¤ó¡£¡Ä¤Æ¸À¤¦¤ï¤±¤Çº£²ó¤â4.7kohm¤Ç¹Ô¤¤Þ¤¹¡£
À褺¤Ï±Õ¾½¤È°Õ¼±¤»¤º°ì¤Ä¤ÎI2C¥Ç¥Ð¥¤¥¹¤È»×¤¤¹þ¤ó¤ÇI2C¤ÎACK¤¬Ê֤äƤ¯¤ë
¥¢¥É¥ì¥¹¤ò¥µ¡¼¥Á¤·¤Æ¤ä¤ê¤Þ¤·¤ç¤¦¡£¤Û¤È¤ó¤É¤Î¥Ç¥Ð¥¤¥¹¤Ï8bitÊÑ¿ô¤Ç¼¨¤µ¤ì¤ë
ÈÏ°ÏÆâ¤Ê¤Î¤ÇÁܺ÷¿ô¤â¾¯¤Ê¤¯¤½¤ó¤Ê»þ´Ö¤¬¤«¤«¤ê¤Þ¤»¤ó¡£
¤Ç¡¢¥Ò¥Ã¥È¤·¤¿¥¢¥É¥ì¥¹¤Ï0111_101x¤È0111_100x¤Ç¤·¤¿¡£¥Ò¥Ã¥È¤·¤¿
¥¢¥É¥ì¥¹¤ò¸µ¤Ë¤¤¤í¤¤¤í¥°¥°¤Ã¤Æ¤ß¤ë¤ÈI2C¤Ç64x96¤Î¥É¥Ã¥È¥Þ¥È¥ê¥¯¥¹¤Ë
Ŭ¹ç¤·¤¿¥É¥é¥¤¥ÐIC¤ÏUC1602S¤¬ºÇ¤â¶á¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¿ä¬¤·¤Þ¤·¤¿¡£
¥Ç¡¼¥¿¥·¡¼¥È¤ò¸«¤ë¤È¥Ç¡¼¥¿¤È¥³¥Þ¥ó¥É¤Î¥ì¥¸¥¹¥¿¤¬¾åµ¥¢¥É¥ì¥¹¤Î¤È¤ª¤ê
Æó¤Ä¤Ëʬ¤«¤ì¤Æ¤ª¤ê¿ä¬¤¬Àµ¤·¤«¤Ã¤¿¤Èʬ¤«¤ê¤Þ¤¹¡£
¤³¤³¤Ç²þ¤á¤Æ¤³¤ÎI2C±Õ¾½¡¢"GG0906186FWNNC"¤òư¤«¤·¤»¤·¤á¤ë¤¿¤á¤Î
½àÈ÷¤ò¹Ô¤¤¤Þ¤¹¡£¥É¥Ã¥È¥Þ¥È¥ê¥¯¥¹±Õ¾½¤Ëɬ¿Ü¤Î¥Ð¥¤¥¢¥¹Å۵¤òºî¤ê½Ð¤¹
¤¿¤á¤ÎÅ۵¥É¥é¥¤¥Ð¤âUC1602S¤Ë¤ÏÆþ¤Ã¤Æ¤¤¤ë¤Î¤Ç¸å¤Ï¥Ç¡¼¥¿¥·¡¼¥È¤ò»²¹Í¤Ë
VLCDÍѤΥ¥ã¥Ñ¥·¥¿¤ò³°ÉÕ¤±¤·¤Æ¤ä¤ì¤Ð¤ª¤·¤Þ¤¤¤Ç¤¹¡£
¶ñÂÎŪ¤Ë¤Ï¾åµ²óÏ©¿Þ¤ÎÍ×ÎΤÇVLCD¤Ë0.33uF¤Ö¤é²¼¤²¤ì¤Ð¤è¤¤¤Ç¤¹¡£
¡üư¤«¤¹¡ª
»ÈÍѤ¹¤ë¥Þ¥¤¥³¥ó/´ðÈĤϺ£Î®¹Ô¤ê¤ÎSTM32-Nucleo¥Ü¡¼¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
½é¤á¤ÆÆ°ºî¤µ¤»¤ëºÝ¤ÏÄ㮤Ǥ¹¤¬¥Ç¥Ð¥Ã¥°¤¬¤·¤ä¤¹¤¤GPIO¤Ë¤è¤ëI2C¥Ð¥¹¤Î
¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó(¥½¥Õ¥ÈI2C)¤¬Îɤ¤¤Ç¤¹¡£¾å¤Ç¤âÃí°Õ¤·¤Þ¤·¤¿¤¬À©¸æ¤Ï
¤¹¤Ù¤ÆOD¤Ç¤¹¡ª¤¢¤È΢¥ï¥¶¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢STM32¤Î¾ì¹ç¤ÏGPIO¤ò½ÐÎϤË
ÀßÄê¤ò¤·¤Æ¤¤¤Æ¤âOD¤ÇÀ©¸æ¤·¤ÆREAD¤ÎºÝ¤Ï¥Ý¡¼¥È¤òHI(=µ¿»÷¥È¥é¥¤¥¹¥Æ¡¼¥È)
¤Ë¤·¤Æ¤ª¤±¤Ð¥¿¡¼¥²¥Ã¥È¥Ç¥Ð¥¤¥¹¤«¤éÅǤ«¤ì¤ë¿®¹æ¥ì¥Ù¥ë¤¬¤ï¤«¤ê¤Þ¤¹¤Î¤Ç
Æþ½ÐÎϤòÀÚ¤êÂØ¤¨¤ë¼ê´Ö¤¬¾Ê¤±¤Æ¥ª¥È¥¯¤Ç¤¹¡ú
¡Ä¤Æ¤¤¤¦¤«¥Ï¡¼¥É¥¦¥¨¥¢I2CÀ©¸æÈǤΤۤ¦¤ÏF1/F4·Ï¤ÈÁ´¤¯°ã¤Ã¤Æ¤ÆÆ°¤«¤·Êý¤ò¸«¤Ä¤±
¤Æ¤ëºÇÃæ¤Ê¤Î¤Çº£¤·¤Ð¤é¤¯¤ªÂÔ¤Á¤¯¤À¤µ¤¤¡£
20230822ÄÉ:
2023ǯ¸½ºß¤Ï¥Ï¡¼¥É¥¦¥¨¥¢I2C¤Ç¤â¥Ð¥ê¥Ð¥ê°ÂÄêÆ°ºî¤·¤Æ¤Þ¤¹¡ª¡ª¡ª¡ª
UC1602S¤Î¥¤¥Ë¥·¥ã¥é¥¤¥º¤Î¤¿¤á¤Î¼öʸ¤â¤Í¤à¤¤¤µ¤ó¤¬´û¤ËÄ´ºººÑ¤Ç¤¹¤Î¤Ç
¤´°Â¿´¤¯¤À¤µ¤¤¡£¤´Í÷¤ÎÄ̤ê¤Ë̵»öɽ¼¨¤¬½ÐÍè¤Þ¤·¤¿¡£
TFT-LCD¤Ç»ÈÍѤ·¤¿FONTX2¥É¥é¥¤¥Ð¤ò»ÈÍѤ·¤Æ¤ª¤ê¤Þ¤¹¡£
¤³¤ì¤À¤±¤Ç¤Ï»È¤¤¤É¤³¤í¤¬Ê¬¤«¤ê¤Å¤é¤¤¤Î¤ÇƱ¤¸I2CÀܳ¥Ç¥¸¥¿¥ë²¹ÅÙ·×STTS751¤ò
¤Ä¤Ê¤²¤Æ´Ê°×¤Î²¹Åٷפò޻ޏ¤Ã¤ÈºîÀ®¤·¤Æ¤ß¤Þ¤·¤¿¡£
ÆÃ¤Ë´í¤Ê¤²¤Ê¤¯²¹ÅÙ¤òɽ¼¨¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤·¤¿♥
¤ä¤Ã¤±¤ÄÇÛÀþ¤Ç¤¹¤¬¤³¤¦¤¤¤¦½ÐÍè¹ç¤¤¥Ü¡¼¥É¤ÏËÜÅö¤ËÊØÍø¤Ç¤¹¤Í¡Á
º£²ó¤ÎF0ÈÇNucleo¸þ¤±¤Î¥½¡¼¥¹¥³¡¼¥É¤Ï¤ª¤¤Ñ¤ËÃÖ¤¤¤Æ¤ª¤¤Þ¤¹¡£°µ½Ì¥Õ¥¡¥¤¥ëÆâ
¤Îlib¥Õ¥©¥ë¥À¤ËxMSTN¤È¤¤¤¦¥Õ¥©¥ë¥À¤¬¤¢¤ê¡¢¥É¥Ã¥È¥Þ¥È¥ê¥¯¥¹±Õ¾½¤ÎÀ©¸æ¤Î¤¿¤á¤Î
¥³¡¼¥É¤¬½¸Ã椷¤Æ¤¤¤Þ¤¹¡£
º£²óÀ©¸æ¤·¤¿UC1602S¤ÏxMSTN/drivers¥Õ¥©¥ë¥À¤Ëuc1602.c¤È¤·¤ÆÃê¾Ý²½¤·¤Æ
¤¢¤ê¤Þ¤¹¤Î¤ÇÊ̤Υޥ¤¥³¥ó¤ämbed¤Ë°Ü¿¢¤µ¤ì¤ëÊý¤Ï¤´»²¹Í¤Ë¡£°Ü¿¢¤ÏÍÆ°×¤Ë
¤Ç¤¤ë¤Ï¤º¤Ç¤¹¡£
¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏSTTS751¤ÎÀ©¸æ¤ÏIFʸ¤ÇÀڤäƤ¤¤Þ¤¹¤Î¤ÇSTTS751¤ò
¤ª»ý¤Á¤Ç¤Ê¤¤Êý¤âaitendo¤µ¤ó¤«¤é¹ØÆþ¤·¤¿i2c±Õ¾½Ã±ÂÎ¤Ç¤âÆ°ºî³Îǧ¤¬
²Äǽ¤Ç¤¹¡£¤³¤Î±Õ¾½¤ÏưºîÅÅή¤¬¤«¤Ê¤ê¾®¤µ¤¯¡¢Äã¾ÃÈñÅÅÎϤʹ©ºî¤Ë¤â
¤«¤Ê¤ê»È¤¨¤ë¥¢¥¤¥Æ¥à¤È¤Ê¤ë¤Ç¤·¤ç¤¦¡£
I2C¥Í¥¿¤Ï½ñ¤¤¿¤¤¤³¤È¤¬Âô»³Í¤ê¤¹¤®¤Æ¤Þ¤È¤Þ¤ê¤¬¤Ä¤«¤Ê¤¤¾õÂ֤Ǥ¹¡£
ÆÃ¤Ë²ø¤·¤¤Ãæ²ÚÀ½I2C¥¥ã¥é¥¯¥¿±Õ¾½¤ÎÅŸ»ÅêÆþ»þ¤ÎÊÑ¤ÊÆ°ºî¤È¤«²óÈò¤Î
¤¿¤á¤Î¥Ð¥¹¥ê¥«¥Ð¥ê¤È¤«¥¥ê¤¬¤Ê¤¤¤Ç¤¹¡£¤Ç¤¹¤¬º£²ó¤ß¤¿¤¤¤Ê¤Ò¤ç¤ó¤Ê¤³¤È¤ò
¥Á¥ã¥ó¥¹¤Ë¤·¤Æ¸ø³«¤·¤Æ¤¤¤¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
STM32F4¥·¥ê¡¼¥º¤ò»È¤Ã¤Æ¤ß¤ë11 - STM32F429I-DiscoveryȯưÊÔ -
¤§¡¼¡ÄÁ°²ó¤ÎSTM32¤Îµ»ö¤ÎºÇ¸å¤Ç¿·¤·¤¤¥³¡¼¥É¥¹¥Ë¥Ú¥Ã¥È¤È¾Î¤¹¤ë¤É¤³¤È¤Ê¤¯
ÈÜàФÊ̾¾Î¤Î¤Õ¤ì¤³¤ß¤Çȯɽ¤µ¤ì¤¿STM32CubeMX¤È¤½¤ÎF4¥·¥ê¡¼¥º¤Î¥µ¥Ý¡¼¥È¤ò
¹Ô¤¦CubeF4¤È¤¤¤¦¿·¤¿¤Ê¥Õ¥¡¡¼¥à¥¦¥¨¥¢¥é¥¤¥Ö¥é¥ê¤Ë¿¨¤ì¤Þ¤·¤¿¤¬¡Ä
»ä¤â°Ü¿¢¤òÌܻؤ·¤Æ´èÄ¥¤Ã¤Æ¤¿¤Î¤Ç¤¹¤¬¡Ä
»ä¤Î½¾Íè¤Î¤¤¤Ä¤â¤Î¤ËÅö¤Æ¤Ï¤á¤è¤¦¤È»×¤¦¤È²þ¤¸Ä½ê¤¬Â¿´ô¤ËµÚ¤Ó¡¢¤µ¤é¤Ë¥³¡¼¥É
¥µ¥¤¥º¤È¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤âÁý²Ã¤·¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç°Ü¿¢¤Ï¸«Á÷¤ê¤Ë¤·¤Æ¿·µ¬¤Ëºî¤ë
¥×¥í¥¸¥§¥¯¥È¤«¤éCubeF4¤ò»ÈÍѤ¹¤ëÊý¿Ë¤Ëƨ¤²ÊѤ¨¤Þ¤·¤¿¡£
STM32CubeF4¤Ë¤ÏÃê¾Ý²½¤¬¤µ¤é¿Ê¤á¤é¤ì¡¢¥¤¥ó¥¹¥¿¥ó¥¹¤È¤¤¤¦³µÇ°¤¬Äɲ䵤ì
¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤¬¤«¤Ê¤ê¤Î¶Ê¼Ô¤Ç½¾Íè¤ÎF4¥·¥ê¡¼¥º¤Ç¸À¤¦DSP_StdPeriph_Driver
¥é¥¤¥Ö¥é¥ê¤ËÁêÅö¤¹¤ë"STM32F4xx_HAL_Driver"¤Ï¤¹¤Ù¤Æ¤³¤ì¤Î
»ÈÍѤòÁ°Äó¤È¤·¤Æ¤¤¤Æ¤µ¤é¤Ë¥µ¥¤¥º¤¬Â礤¤¹½Â¤ÂΤÈÊ»ÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
¤Î¤¬Ê¬¤«¤ê¤Þ¤·¤¿¡£
¤³¤ìSRAM¤äFLASH¤Î¥ê¥½¡¼¥¹¤¬ËÄÂç¤Ë¤¢¤ëF4¥·¥ê¡¼¥º¤À¤«¤é¤è¤¤¤â¤Î¤òF1¤äF0
¤Ë¤âÅö¤Æ¤Ï¤á¤ë¤Î¤Ï¤«¤Ê¤ê¥ä¥Ð¤¤¤È»×¤¤¤Þ¤¹¡£
»ä¤â²áÅÙ¤ÎÃê¾Ý²½¤ÏÎɤ¤¤È¤Ï»×¤Ã¤Æ¤¤¤Þ¤»¤ó¡£°Ü¿¢À¤ò½Å»ë¤·¤¹¤®¤Æ¤»¤Ã¤«¤¯¤Î
¥Þ¥¤¥³¥ó¤ÎÀǽ¤ò°ú¤½Ð¤»¤Ê¤¤¤Î¤Ç¤¢¤ì¤ÐËÜËöžÅݤǤ¹¡£
¤¢¤ó¤Þ¤·¹Í¤¨¤¿¤¯¤Ê¤¤¤Î¤Ç¤¹¤¬ÌµÍý¤¯¤½Á´CPU¤Î³Êº¹¤òËä¤á¤ë¤Ù¤¯Ãê¾Ý²½¤ò
Ìܻؤ·¡¢¤½¤·¤Æ¼ºÇÔ¤·¤Æ·ë¶É¥é¥¤¥Ö¥é¥ê¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Â¿´ô¤Ëʬ¤«¤ì¤Æ
¤·¤Þ¤Ã¤¿LPCOpen¤ÈƱ¤¸Æ»¤òÊâ¤ó¤Ç¤¤¤ë´¶¤¸¤¬¤·¤Þ¤¹¡£
¤ª¤½¤é¤¯Cube·Ï¤Î¥é¥¤¥Ö¥é¥ê¤ËÁ«°Ü¤·¤Æ¤¤¤¯¤¢¤¿¤Ã¤ÆÂ纮Í𤬵¯¤³¤ë¤È
»×¤¤¤Þ¤¹¤Í¡£ÌµÍý¤ËCube¤Ø¤ÎÁ«°Ü¤òÀú¤ëÃæÅÓȾü¤Ëȯ¸ÀÎϤ¬»ý¤Ã¤Æ¤ë¿Í¤¬
ͯ¤¯¤Î¤ÏÍÆ°×¤Ëͽ¬¤µ¤ì¤Þ¤¹¡£³ØÀ¸¤µ¤ó¤Ê¤ó¤«¤Ï¼«Ê¬¤Î¥Ü¥¹¤Î"¤»¤ó¤»¤¤"
¤Ë¤Þ¤¿Cube¥é¥¤¥Ö¥é¥ê¤Î»È¤¤Êý¤òwiki¤Ë¤Þ¤È¤á¤µ¤»¤é¤ì¤ë¤È»×¤¤¤Þ¤¹¡£
¤½¤¦¤¤¤¦¤³¤È¸À¤Ã¤Æ¤¯¤ë¿Í¤é¤Ë¤Ï"¤³¤ó¤Ê¤³¤È¤·¤Æ¤ë¤³¤È¼«ÂΤ¬»þ´Ö¤Î̵ÂÌ¡£
¤·¤¿¤±¤ê¤ã¼«Ê¬¤Ç¤ä¤ì¡ª"¤È¤Ï¤Ã¤¤êNO¤òÆÍ¤ÉÕ¤±¤ë¤Ù¤¤Ç¤¹¡£
¤È¤Ï¤¤¤¨»ä¤Î¤Ö¤í¤°¤ò¸«¤é¤ì¤Æ¤¤¤ëÊý¤Ï»ä¤è¤ê¤âµ»½ÑÎϤ¬¤Ï¤ë¤«¤Ë¾å¤ÎÊý
¤Ð¤Ã¤«¤Ê¤Î¤Ç¤½¤â¤½¤â¤³¤ó¤Ê¤È¤³¸«¤Æ¤Ê¤¤»ä¤¬Ãí°Õ¤·¤Ê¤¯¤Æ¤â³Æ¼«¤·¤Ã¤«¤ê
Âнè½ÐÍ褹¤ë¤³¤È¤¬¤Ç¤¤ë¤Ç¤·¤ç¤¦¤«¤é¤°¤À¤°¤À¸À¤¤¤Þ¤·¤¿¤¬¤ä¤Ã¤Ñ¤·
»ä¤Î۹ͫ¤«¤Ê¡Á¤È»×¤¤¤Þ¤¹¡£
¤µ¤Æ¡¢Á°ÃÖ¤¤¬Ä¹¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬°ÊÁ°¤«¤é¿¨¤ì¤Æ¤¤¿
STM32F429I-Discovery¤ÎTFT-LCD¤òSPI¤Ç¤Ï¤Ê¤¯RGB¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç
ư¤«¤¹¤³¤È¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£
Á°²ó¤ÏÄ㮤ÊSPI¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤ªÃã¤òÂù¤·¤Æ¤¤¤Þ¤·¤¿¡£
¤·¤«¤·STM32F429¥·¥ê¡¼¥º¤ËTFT-LCD¤ËÆÃ²½¤·¤¿¥°¥é¥Õ¥£¥Ã¥¯¥³¥ó¥È
¥í¡¼¥é(LTDC)¤È¥°¥é¥Õ¥£¥Ã¥¯¤ËÆÃ²½¤·¤¿DMA¤Ç¤¢¤ë(Chrom-ART Accelerator)
¤¬ÅëºÜ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤³¤ì¤é¤Îµ¡Ç½¤ò»È¤Ã¤Æ¤¤¤Ä¤â¤Î¤ÎºÆ¸½¤òÌܻؤ·
¤è¤¦¤ä¤¯´°À®¤·¤¿¤ï¤±¤Ç¤¹¡£
¡üSTM32F429I¤Ë¤¢¤ë¥°¥é¥Õ¥£¥Ã¥¯µ¡Ç½
»ä¤¬ÀâÌÀ¤¹¤ë¤è¤ê¤â¤³¤Á¤é¤ÎPDF¤ò¸«¤¿¤é°ìÌÜÎÆÁ³¤Ç¤¹¡£
LTDC¤Ë´Ø¤·¤Æ¤Ï¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡¤È¤·¤Æ³ÎÊݤ·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹¤ËRGB¤Î
¥Ç¡¼¥¿¤ò½ñ¤¹þ¤à¤À¤±¤Ç¿§¤Îɽ¼¨¤¬²Äǽ¤Ç¤¹¡£¤Þ¤¿¡¢STM32F429·Ï¤Ç¤Ï
SDRAM¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤Î¤ÇÍÆÎ̤ò¶ô¤¦²èÁü¥Ç¡¼¥¿¤Ç¤â;͵¤Ç
¼è¤ê°·¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
Chrom-ART Accelerator¤Ë´Ø¤·¤Æ¤ÏÊÌ̾DMA2D¤È¾Î¤µ¤ì¤Æ¤¤¤ÆÊ¸»úÄ̤ê
2D¥°¥é¥Õ¥£¥Ã¥¯ÆÃ²½·¿DMA¤Ç¤¹¡£¤·¤«¤â¥Ç¡¼¥¿·Á¼°¤òÊÑ´¹¤·¤Æ¥á¥â¥ê´Ö
žÁ÷¤·¤¿¤êñ°ì¥Ç¡¼¥¿¤ò»ØÄꤷ¤ÆÅ¾Á÷¤¹¤ë(¥ì¥¯¥¿¥ó¥°¥ë¥Õ¥£¥ë¤Ë¸ú²Ì¤ò
ȯ´ø)¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
STM32F429I-Discovery¤Ç¤Ï¾åµÆó¤Ä¤Îµ¡Ç½¤òÂθ³²Äǽ¤Ç¤¹¡£Æ±¥Ü¡¼¥É¤Ë
ÅëºÜ¤µ¤ì¤¿TFTLCD¤Î²òÁüÅ٤Ϲ©ºîʪ¤Ç¤Ï¥á¥¸¥ã¡¼¤Ê240x320¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
STM32¤ÎLTDCñÂΤǤϥ쥯¥¿¥ó¥°¥ë¤ò»ØÄꤷ¤Æ½ñ¤¹þ¤ß»þ¤Ë¥¢¥É¥ì¥¹¤ò
¼«Æ°¥¤¥ó¥¯¥ê¥á¥ó¥È¤·¤Ê¤¬¤éϢ³¤Ç½ñ¤¹þ¤á¤ëµ¡Ç½¤Ï¤Ê¤¤(DMA2D¤Ç
²òÀ⤷¤Þ¤¹)¤¿¤á¥¢¥É¥ì¥¹·×»»¤Ïɬ¿Ü¤Ç¤¹¡£
¶ñÂÎŪ¤Ë¤¤¤¦¤È¤¿¤È¤¨¤ÐºÂɸx,y¤Ë¥É¥Ã¥È¤òÂǤÁ¤¿¤¤¾ì¹ç¤Ï´ðËÜŪ¤Ë¤ÏÀ褺
°Ê²¼¤Î¤è¤¦¤ËºÂɸ¤ò»ØÄꤷ¤Þ¤¹
(RGB=565,1¥É¥Ã¥È¤¢¤¿¤ê2Byte¤Î¥Ç¡¼¥¿¤òÁÛÄê)¡£
lcd_c_buf_ptr = lcd_f_buf_ptr + 2*(x + (MAX_X*y));
lcd_c_buf_ptr :¥É¥Ã¥È¥Ç¡¼¥¿¤ò¼ÂºÝ¤Ë½ñ¤¹þ¤à¥á¥â¥ê¤Î¥¢¥É¥ì¥¹
lcd_f_buf_ptr :¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡¤È¤·¤Æ³ÎÊݤ·¤¿¥á¥â¥êÎΰè¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹
MAX_X :TFT-LCD¤ÎX¼´¤ÎºÇÂç¥É¥Ã¥È¿ô(F429I-Discovery¤Ç¤Ï240¤ÈÄêµÁ)
¼¡¤ËRGB¥Ç¡¼¥¿colour¤ò½ñ¤¹þ¤ß¤Þ¤¹¡£
*(volatile uint16_t*)(lcd_c_buf_ptr) = colour;
lcd_c_buf_ptr +=2;
¤è¤ê¶ñÂÎŪ¤Ê¼ÂÁõ¤Ï¤¤¤Ä¤â¤Î¤Î./lib/display/mcu_depend/src/lcdc_if_basis.c¤ò
¤´Í÷²¼¤µ¤¤¡£FONTX2Åù¤ÎÉÁ²è¥ë¡¼¥Á¥ó¤Ï´°Á´¤Ë¥É¥Ã¥Èñ°Ì¤Ç¹Ô¤Ã¤Æ¤¤¤Þ¤¹¤¬
MCU¥Ð¥¹¤È³°ÉôLCD¥³¥ó¥È¥í¡¼¥é¤È¤ÎÄÌ¿®¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¤Ê¤¯¤Ê¤ë¤Î¤Ç
¥É¥Ã¥Èñ°Ì¤Ç¤â½½Ê¬¤ËÁ᤯¤Ê¤ê¤Þ¤¹¡£¤Þ¤¿¡¢LTDC¤Ï2Ëç¤Î¥ì¥¤¥ä¡¼¤ò»ÈÍѲÄǽ¤Ç
¤µ¤é¤Ë¥¢¥ë¥Õ¥¡¥Ö¥ì¥ó¥Ç¥£¥ó¥°¤ÎÆ©²á¸ú²Ì¤â»ÈÍѲÄǽ¤Ç¤¹¡£¸½¾õ¤Ç¤Ïñ°ì¤Î
¥ì¥¤¥ä¤È¤·¤Æ¤·¤«»ÈÍѤ·¤Æ¤¤¤Þ¤»¤ó¤¬¤³¤Á¤é¤â³Ø½¬¤ò½Å¤Í¤Æ¥â¥Î¤Ë¤·¤Æ¤¤¤¤Þ¤¹¡ª
¼¡¤Ë¤â¤¦°ì¤Ä¤ÎÌ̵ܶ¡Ç½Chrom-ART Accelerator(°Ê²¼DMA2D)¤Ç¤¹¡£
»ä¤Î¤¤¤Ä¤â¤Î¤Ç¤ÏFillRect·Ï¤Î¥ì¥¯¥¿¥ó¥°¥ë»ØÄêÅɤê¤Ä¤Ö¤·¤ä¥ì¥¯¥¿¥ó¥°¥ë
»ØÄê¤Îư²è¥Ç¡¼¥¿Å¾Á÷¤Ë»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£
´ðËÜŪ¤Ë¤ÏÄ̾ï¤ÎDMA¤ÈƱ¤¸¤Ç¤¹¤¬¥°¥é¥Õ¥£¥Ã¥¯ÆÃ²½¤Ê¤Î¤ÇRGB¥Ç¡¼¥¿¤ò
³ÊǼ¤¹¤ë¥ì¥¸¥¹¥¿¤â¤¢¤ê¤Þ¤¹¡£Ã±°ì¿§ÉÁ²è¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤ËÀßÄꤷ¤Þ¤¹¡£
¢¨RGB565,¹õ¿§,Á´²èÌÌ(240x320)Åɤê¤Ä¤Ö¤·¤Î¾ì¹ç
/* configure DMA2D */
DMA2D_DeInit();
DMA2D_InitStruct.DMA2D_Mode = DMA2D_R2M;
DMA2D_InitStruct.DMA2D_CMode = DMA2D_RGB565;
DMA2D_InitStruct.DMA2D_OutputGreen = (0x07E0 & COL_BLACK) >> 5;
DMA2D_InitStruct.DMA2D_OutputBlue = 0x001F & COL_BLACK;
DMA2D_InitStruct.DMA2D_OutputRed = (0xF800 & COL_BLACK) >> 11;
DMA2D_InitStruct.DMA2D_OutputAlpha = 0x0F;
DMA2D_InitStruct.DMA2D_OutputMemoryAdd = (uint32_t)lcd_f_buf_ptr;
DMA2D_InitStruct.DMA2D_OutputOffset = (MAX_X - 1));
DMA2D_InitStruct.DMA2D_NumberOfLine = MAX_X+1;
DMA2D_InitStruct.DMA2D_PixelPerLine = MAX_Y+1;
DMA2D_Init(&DMA2D_InitStruct);
/* Start Transfer */
DMA2D_StartTransfer();
/* Wait for CTC Flag activation */
while(DMA2D_GetFlagStatus(DMA2D_FLAG_TC) == RESET){}
lcd_f_buf_ptr :¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡¤È¤·¤Æ³ÎÊݤ·¤¿¥á¥â¥êÎΰè¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹
MAX_X :TFT-LCD¤ÎX¼´¤ÎºÇÂç¥É¥Ã¥È¿ô(F429I-Discovery¤Ç¤Ï240¤ÈÄêµÁ
MAX_Y :TFT-LCD¤ÎY¼´¤ÎºÇÂç¥É¥Ã¥È¿ô(F429I-Discovery¤Ç¤Ï320¤ÈÄêµÁ
¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤Î¥ì¥¤¥ä¡¼¤Ø²èÁü¥Ç¡¼¥¿¤òžÁ÷¤·¤¿¤¤¾ì¹ç¤Ï°Ê²¼¤Î¤è¤¦¤Ë¡£
/* configure DMA2D */
DMA2D_DeInit();
DMA2D_InitStruct.DMA2D_Mode = DMA2D_M2M;
DMA2D_InitStruct.DMA2D_CMode = DMA2D_RGB565;
DMA2D_InitStruct.DMA2D_OutputGreen = 0; /*¡¡M2M·ÏžÁ÷¤Î¾ì¹ç¤Ï»È¤ï¤Ê¤¤ */
DMA2D_InitStruct.DMA2D_OutputBlue = 0; /*¡¡M2M·ÏžÁ÷¤Î¾ì¹ç¤Ï»È¤ï¤Ê¤¤ */
DMA2D_InitStruct.DMA2D_OutputRed = 0; /*¡¡M2M·ÏžÁ÷¤Î¾ì¹ç¤Ï»È¤ï¤Ê¤¤ */
DMA2D_InitStruct.DMA2D_OutputMemoryAdd = (uint32_t)lcd_f_buf_ptr;
DMA2D_InitStruct.DMA2D_OutputOffset = 1;
DMA2D_InitStruct.DMA2D_NumberOfLine = MAX_X+1;
DMA2D_InitStruct.DMA2D_PixelPerLine = MAX_Y+1;
DMA2D_Init(&DMA2D_InitStruct);
/* Configure default values for foreground */
DMA2D_FG_StructInit(&DMA2D_FG_InitStruct);
DMA2D_FG_InitStruct.DMA2D_FGMA = (uint32_t)p;
DMA2D_FGConfig(&DMA2D_FG_InitStruct);
/* Start Transfer */
DMA2D_StartTransfer();
/* Wait for CTC Flag activation */
while(DMA2D_GetFlagStatus(DMA2D_FLAG_TC) == RESET){}
lcd_f_buf_ptr :¥Õ¥ì¡¼¥à¥Ð¥Ã¥Õ¥¡¤È¤·¤Æ³ÎÊݤ·¤¿¥á¥â¥êÎΰè¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹
MAX_X :TFT-LCD¤ÎX¼´¤ÎºÇÂç¥É¥Ã¥È¿ô(F429I-Discovery¤Ç¤Ï240¤ÈÄêµÁ
MAX_Y :TFT-LCD¤ÎY¼´¤ÎºÇÂç¥É¥Ã¥È¿ô(F429I-Discovery¤Ç¤Ï320¤ÈÄêµÁ
p :žÁ÷¤·¤¿¤¤²èÁü¥Ç¡¼¥¿¤Î¥Ý¥¤¥ó¥¿
¤È¡¢½¾Íè¤ÎDMA¤ÈƱ¤¸´¶³Ð¤Ç»ÈÍѤ¬²Äǽ¤Ç¤¹¡£¤â¤Ã¤ÈÈÆÍѤÊDMA2D¤Î»ÈÍÑË¡¤Ï
Ʊ¤¸¤¯lcdc_if_basis.c¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£DMA2D¤ÏLTDC¤ÈÁȤ߹ç¤ï¤»¤ë¤È
¶¯ÎϤʥ쥤¥ä¡¼µ¡Ç½¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¤Í¡£
»ä¤Î¥µ¥ó¥×¥ë¤Ç¤ÏÁ´¤¯»È¤¤¤³¤Ê¤»¤Æ¤Þ¤»¤ó¤¬¡¼¡ª

¤È¤¤¤¦Ìõ¤Ç¤½¤ì¤òƧ¤Þ¤¨¤¿¤¤¤Ä¤â¤Î¤ò¥Ó¥ë¥É¤·¤Æ½ñ¤¹þ¤ß¡¢
ưºî¤µ¤»¤¿¤â¤Î¤¬¾å¤Î²èÁü¤Ç¤¹¡£
ÀŻ߲è¤Ç¤Ï°ã¤¤¤¬Ê¬¤«¤é¤Ê¤¤¤È»×¤¤¤Þ¤¹¤¬°ÊÁ°¤Î8-bitSPI¤Î¤ß¤Çư¤«¤·¤Æ¤¿
¤â¤Î¤È¤ÏÉÁ²è®ÅÙ¤¬¥À¥ó¥Á¤Ç¤¹¤è♥

Àˤ·¤à¤é¤¯¤ÏSTM32F429I-Discovery¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ëTFT-LCD¤¬È¯¿§¤Ë¤Á¤ç¤Ã¤È
Îô¤ëÅÀ¤Ç¤¹¡£2014ǯ¸½ºß¤Ç¤Ï͹â»ëÌî³Ñ±Õ¾½¤Ï¤¹¤Ç¤Ë¥Û¥Ó¥¤¥¹¥È¤Ç¤âÍÆ°×¤Ë
Æþ¼ê²Äǽ¤Ê¤Î¤Ç¤½¤ì¤Ë´·¤ì¤¿»ä¤Ë¤È¤Ã¤Æ¤Ï¤¢¤È°ìÊ⤬¤Û¤·¤¤¤È¤³¤í¤È´¶¤¸¤Þ¤·¤¿
(¿ʬºÇ¿·¤ÎÅÛÅëºÜ¤·¤¿¤éÃÍÃÊÄ·¤Í¾å¤¬¤ë¤Ç¤·¤ç¤¦¤±¤É)¡£
¡ü¤¤¤Ä¤â¤ÎFatFs+TFTLCDɽ¼¨¥µ¥ó¥×¥ë¤ÎºÙ¤«¤¤À°È÷¤Ê¤É

LTDC+DMA2D¤ËÂбþ¤·¤¿¤Ä¤¤¤Ç¤ËĹ¤é¤¯ÊüÃÖ¤·¤Æ¤¤¤¿Á´ÉôºÜ¤»STM32F427IIT6´ðÈĤÎ
¥×¥í¥°¥é¥à¤â¸«Ä¾¤·¤Æ°ÂÄê²½¤ò¿Þ¤ê¤Þ¤·¤¿¡£¤¤¤Þ¤µ¤éµ¤ÉÕ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢¿·¤·¤¤
STM32F4¤Ë¸ºß¤¹¤ëFMC(¥Õ¥ì¥¥·¥Ö¥ë¡¦¥á¥â¥ê¥³¥ó¥È¥í¡¼¥é)¤Ç¤ÏFSMC¤Î
ÀßÄê¤È¤ÏÈù̯¤Ë°ã¤Ã¤Æ¤ª¤ê¤Þ¤·¤¿¡Ä¡£

¤Ê¤ó¤ÈFSMC¤Ç¤Ï¸ºß¤·¤Ê¤«¤Ã¤¿ÊÑ¿ô¤¬¹½Â¤ÂΤËÄɲäµ¤ì¤Æ¤¤¤Æ¤³¤ì¤òÀßÄꤷ¤Æ
¤Ê¤«¤Ã¤¿¤»¤¤¤Çưºî¤¬ÉÔ°ÂÄê¤Ë¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤·¤¿orz¤¤¤Þ¤µ¤éµ¤ÉÕ¤¤Þ¤·¤¿¤¬
¤Þ¤ÀFMCÀ¤Âå¤Î¿·¤·¤¤STM32F4¤ò»ÈÍѤµ¤ì¤Æ¤¤¤ëÊý¤¬¾¯¤Ê¤¤¤Î¤«»ØÅ¦¤µ¤ì¤º
½õ¤«¤ê¤Þ¤·¤¿¤¦¤Õ¤Õ¤Õ¤Õ¤Õ¤Õ¤Õ£æ
¤Þ¤¿¡¢¤³¤ÎÁ´ÉôºÜ¤»´ðÈĤÏI2C¤Î¥³¡¼¥Ç¥Ã¥¯¤â¾è¤Ã¤Æ¤¤¤Æ²»¼Á¤ÏÈó¾ï¤Ë°¤¤
¤Ç¤¹¤¬mp3¤äwave¥Õ¥¡¥¤¥ë¤ÎºÆÀ¸¤â²Äǽ¤Ç¤¹¡£»ä¤Î¤¤¤Ä¤â¤Î¥×¥í¥°¥é¥à¤Ç¤Ï
SDIO·Ðͳ¤ÇSD¥«¡¼¥É¤Împ3¥Õ¥¡¥¤¥ë¤Ê¤É¤òÆÉ¤ß¤À¤·¤ÆºÆÀ¸¤·¤Þ¤¹
¡Ä¤¬¤·¤«¤·¥Ó¥Ã¥È¥ì¡¼¥È¤¬¹â¤¤mp3¤ÎºÆÀ¸¤Ç¤ÏSDIO¤Î¥Ç¡¼¥¿ÆÉ¤ß¤À¤·¤ËDMA¤Î
žÁ÷¤ò¹Ô¤¦¤ÈI2S¤ÎÊý¤Î¥µ¡¼¥¥å¥é¥â¡¼¥ÉDMAžÁ÷¤È´³¾Ä¤·¤Þ¤¯¤ê¤¢¤Ã¤È
¤¤¤¦´Ö¤Ë¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ë¤Ê¤Ã¤Æ¥¨¥é¡¼¤ò¤Ï¤¤¤Æ»ß¤Þ¤ê¤Þ¤¹¡£
¤È¤¤¤¦Ìõ¤Ç¤³¤ì¤òÈò¤±¤ë¤¿¤á¤ËSTM32F4¤Ç¤âFIFO¤Î¥Ý¡¼¥ê¥ó¥°¤Ç¤ÎÆÉ¤ß½ñ¤¤Ë
ËܳÊŪ¤ËÂбþ¤µ¤»¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ST¥Þ¥¤¥¯¥íÇÛÉÛ¤ÎSTM32F4¤Î¥Ç¥â¤Ç¤Ï
¥Ý¡¼¥ê¥ó¥°¤ÎÆÉ¤ß½ñ¤¤ÏRead/WriteBlock¤·¤«Âбþ¤·¤Æ¤ª¤é¤ºÈó¾ï¤ËÄã®ÅÙ
¤Ê¤Î¤Ç¤¹¤¬¥Þ¥ë¥Á¥Ö¥í¥Ã¥¯Å¾Á÷¤Ç¤â¥Ý¡¼¥ê¥ó¥°¤ÇÆÉ¤ß½ñ¤¤Ç¤¤ë¤è¤¦¤Ë
²þÎɤ·¤Æ¤ª¤ê¤Þ¤¹¡£¥Ý¡¼¥ê¥ó¥°¤Ç¤âDMA¤È¤Û¤ÜƱÅù¤ÎžÁ÷®ÅÙ¤¬ÆÀ¤é¤ì¤¿¤Î¤Ç
®Å٤˴ؤ·¤Æ¤ÏÌäÂê¤Ê¤·¤Ç¤¹¡£

¡Ä¤È¤¤¤¦Ìõ¤ÇDMA¤¢¤¨¤Æ¤ò»ÈÍѤ»¤º¥Ý¡¼¥ê¥ó¥°¤Ë¤è¤ëÆÉ¤ß½Ð¤·¤À¤±¤Ç̵»ö¥Ó¥Ã¥È
¥ì¡¼¥È¤Î¹â¤¤mp3¥Õ¥¡¥¤¥ë¤ÎºÆÀ¸¤â²Äǽ¤È¤Ê¤ê¤Þ¤·¤¿¤á¤Ç¤¿¤·¤á¤Ç¤¿¤·¡ª
(helix¤Î¥Õ¥©¥ë¥À¤Ë¤¢¤ëassembly.h¤Î¥Þ¥¯¥í¤¬Á°²ó¤Îµ¡Ç½ÄɲäǴְã¤Ã¤Æ¤Æ
¤½¤â¤½¤âmp3¥Õ¥¡¥¤¥ë¤¬Á´¤¯ºÆÀ¸¤Ç¤¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤¿¤Î¤Ï¸«Æ¨¤·¤Æ¤¤¤¿¤À¤¤¿¤¤)
¡ü¤â¤¤¤Ã¤³¤ª¤Þ¤±
»ä¤Î¤¤¤Ä¤â¤Î¤Ç¤Ï°ìÉô¤Împ3¥Õ¥¡¥¤¥ë¤òºÆÀ¸¤·¤¿¤È¤¤Ë¥¢¡¼¥Æ¥£¥¹¥È/¶Ê̾¾ðÊó
ɽ¼¨¤ÎºÝ¤Ë¥´¥ß¥Ç¡¼¥¿¤¬É½¼¨¤µ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤ª¤ê¤Þ¤·¤¿¤¬¡¢¤³¤Á¤é¤âʸ»úÎ󥹥ȥ¢ÍѤÎ
¥Ð¥Ã¥Õ¥¡(»ä¤Î¥×¥í¥°¥é¥à¤Ç¤ÏCCMÎΰè¤Ë¤¢¤¿¤ë)¤ò°ìö¥¼¥í¥¯¥ê¥¢¤·¤Æ¤«¤é
ɽ¼¨¤ò¹Ô¤¦¤è¤¦¤Ë¤·¤Æ¥Ð¥°¤òÄÙ¤·¤Æ¤ª¤ê¤Þ¤¹¡£

°ÊÁ°¤ÏÊѤʥ´¥ß¥Ç¡¼¥¿¤¬É½¼¨¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¤¬¡Ä¡¢

½¤Àµ¸å¤Ï¤³¤ó¤Ê´¶¤¸¤Ë¤¹¤Ã¤¤ê¤Ç¤¹¡ú
STM32F4¥·¥ê¡¼¥º¤ò»È¤Ã¤Æ¤ß¤ë7 -Helix MP3 Decoder¤ò¼ÂÁõ¤·¤ÆMP3¥Õ¥¡¥¤¥ë¤ÎºÆÀ¸¤ò¹Ô¤¦-
¥Þ¥¤¥³¥ó¤ò»È¤Ã¤¿¹©ºîʪ¤È¤·¤Æ¤ÏÆþÌç¤È¤Ê¤Ã¤¿MP3¥Õ¥¡¥¤¥ë¤ÎºÆÀ¸¤Ç¤¹¤¬¡¢º£ÆüÆü¤Î
¥³¥¢¥¯¥í¥Ã¥¯100MHz±Û¤¨¤ÎMPU¤Ê¤éVS1053Åù¤Î³°ÉÕ¤±¤Î¥Ç¥³¡¼¥À¡¼IC¤ò»È¤ï¤º¤È¤â
¥½¥Õ¥È¥¦¥¨¥¢¤Ç¥Ç¥³¡¼¥É¤¬²Äǽ¤Ç¤¹¡£
STM32F4¤Ëgiflib¤òºÜ¤»¤Æ°ÊÍè¡¢¼¡¤Î¥¹¥Æ¥Ã¥×¤È¤·¤Æ(Æþ±¡Ãæ¤â¥Î¡¼¥ÈPC¤Ç)²»³ÚºÆÀ¸¤Ë
Ä©À路¤Æ¤¤¤Þ¤·¤¿¤¬»ä¤â¤è¤¦¤ä¤¯·Á¤Ë¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤·¤¿¤Î¤Ç¤´¾Ò²ð¤·¤Þ¤¹¡£
¤¹¤Ç¤ËSTM32¤Ç¤ÏShuji009»á¤¬HelixMP3Decorder¤ÇÄ©À蘆¤ì¤Æ¤ª¤ê¡¢¤µ¤é¤Ë
ÌîÅĤµ¤ó¤Ïlibmad¤ÇMP3¥×¥ì¡¼¥ä¡¼¤òÀ½ºî¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤Í¤à¤¤¤µ¤ó¤Ï¤³¤Á¤é¤ÎBBS¤Ç¸ø³«¤µ¤ì¤Æ¤¤¤¿Helix+STM32F4Discovery¤òÍøÍѤ·¤¿¤â¤Î
¤òÂçÉôʬ»²¹Í¤Ë¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤·¤¿¡£¤³¤Î¥×¥í¥°¥é¥à¤ÏSPI¥Ý¡¼¥È¤ò·Ðͳ¤·¤Æ
SD¥«¡¼¥É¤«¤é¥Ç¡¼¥¿¤ò¼èÆÀ¤·¥Ç¥³¡¼¥É¤ò¹Ô¤¦·Á¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¥Ï¡¼¥É¥¦¥¨¥¢Åª¤Ë¤Ï»ä¤Î
¤¤¤Ä¤â¤Î¤È¤Û¤ÜƱ¤¸¹½À®¤À¤Ã¤¿¤Î¤ÇÈó¾ï¤Ë½õ¤«¤ê¤Þ¤·¤¿¡£
¥½¥Õ¥È¥¦¥¨¥¢Åª¤ÊÅÀ¤Ë¤Ä¤¤¤Æ¤ÏChibiOS/RT¤ò»ÈÍѤ·¤Æ¤¤¤¿¤Î¤Ç»ä¤ÎÈóOS´Ä¶¤Ë°Ü¿¢¤¹¤ë
¤¿¤á¤Ë¤Ï¤µ¤¹¤¬¤Ë¤½¤Î¤Þ¤ÞžÍѤÏÉÔ²Äǽ¤Ç¡¢°ì¤Ä°ì¤Äưºî¤òÍý²ò¤·¤Ä¤ÄºÆ¹½À®¤·¤Æ¤¤¤
¤Þ¤·¤¿¡£
ChaN»á¤Î¥Õ¥¡¥¤¥é¡¼¤Ï¥Ç¡¼¥¿Å¾Á÷ÍѤËÍÆÎ̸ÇÄêÃͤÎÈÆÍѤÎSRAM¤ò³ÎÊݤ¹¤ë¤è¤¦¤Ë
¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤½¤ì¤ò¾å¼ê¤¯»È¤¤SRAMÍÆÎ̤ò°ìÀÚ̵Â̤ˤ·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¤Þ¤¿¡¢I2S¤Ø¤Î¥Ç¡¼¥¿Å¾Á÷¤Ï¥ê¥ó¥°¥Ð¥Ã¥Õ¥¡¹½À®¤ÇDMA¤¹¤ë¤Î¤ÇCPU¤Ë¤«¤Ê¤ê;͵¤¬
¤Ç¤¤Þ¤¹¡£
¤¢¤ÈSTM32F4¤ò»È¤¤»Ï¤á¤¿¤³¤í¤«¤é²¿ÅÙ¤â¸ÀµÚ¤·¤Æ¤¤¤Þ¤¹¤¬CCMÎΰè¤ÏDMAÉÔ²Äǽ
¤Ê¤Î¤ÇCCMÎΰè¤ò¥¹¥¿¥Ã¥¯¤È¤·¤Æ»È¤¤¡¢¼«Æ°ÊÑ¿ô¤Ë¥Ð¥Ã¥Õ¥¡¤òÃÖ¤¯¤è¤¦¤Ê¥á¥â¥ê¤Î
»È¤¤Êý¤ò¤·¤Æ¤¤¤ë¤ÈÆÃÄ꺤Æñ¤ÊÉÔ¶ñ¹ç¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¤´Ãí°Õ¤¯¤À¤µ¤¤¡£
¡Ä¤Ã¤Æ¤ï¤¶¤ï¤¶¤³¤¦¤¤¤¦¤³¤È½ñ¤¤¤Æ¤ë¤Î¤Ï¼«Ê¬¤Ç¸À¤Ã¤¿¤Ë¤â·¸¤é¤ºÖȤ俤Ȥ¤¤¦
¤³¤È¤Ç¤¹orz¡£
¤Ä¤¤¤Ç¤Ë¤¤¤Ä¤â¤ÎTFT-LCD¤Ë¤â³Æ¼ï¾ðÊó¤ò¾è¤Ã¤±¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£
MP3¤ÎID¥¿¥°¤Ïv1¤Èv2¤¬¤¢¤ê¡¢v2¤ÇArtist/Title¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹çv1¤ÎÊý¤â
¤¯¤Þ¤Ê¤¯Ãµ¤¹¥ë¡¼¥Á¥ó¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¤â¤Á¤í¤óÆüËܸìɽ¼¨¤âFontX2¥É¥é¥¤¥Ð¤ÇÂбþ¤·¤Æ¤Þ¤¹♥
¢¬MP3¥Õ¥¡¥¤¥ë¤òºÆÀ¸¤·¤Æ¤ë¤È¤³¤í¡£48kHz/230kBps¤Ç¤âSTM32F4¤Ï¤Ñ¤ï¤Õ¤ê¤ã¡¼
¡¡¤Ê¤Î¤Ç¤Þ¤Ã¤¿¤¯¤Î;͵¤Ç¤¹♥(¢¨ºÇŬ²½¥ª¥×¥·¥ç¥ó¤Ïɬ¿Ü¤Ç¤¹)
¢¬Riff-WAVE¥Õ¥¡¥¤¥ë¤â¤â¤Á¤í¤óºÆÀ¸²Äǽ¤Ç¤¹¡£WAVE¤Î¥ë¡¼¥Á¥ó¤ÏChaN»á¤Î
¡¡WAVEPlayerFM3¥Þ¥¤¥³¥óÈǤò°Ü¿¢¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤·¤¿¡£
MP3Helix¤Î¥Ç¥³¡¼¥À¡¼¤ÏCBR¤ÈVBR¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£±éÁÕÃæ¤ËÁ´±éÁÕ»þ´Ö¤ä·Ð²á
»þ´Ö¤ò¥ê¥¢¥ë¥¿¥¤¥à¤Ëɽ¼¨¤¹¤ë¤¿¤á¤Ë¤ÏCBR¤Î¾ì¹ç¤Ï¥Ø¥Ã¥À¤ò½ü¤¤¤¿¥Ð¥¤¥È¿ô¤«¤éÍÆ°×
¤Ë»»½Ð²Äǽ¤Ç¤¹¡£¤·¤«¤·VBR¤Î¾ì¹ç¤Ï¾¯¡¹Ìñ²ð¤Ç¤¹¡£Àµ³Î¤Ë»»½Ð¤·¤¿¤¤¾ì¹ç¤Ï£±¥Õ¥ì¡¼
¥à¤¢¤¿¤ê¤Î¥Ó¥Ã¥È¥ì¡¼¥È¤«¤é¥Ð¥¤¥È¿ô¤ò·×»»¤·¤µ¤é¤Ë¤½¤ì¤òÁ´¥Õ¥ì¡¼¥à¤Ë¤ï¤¿¤Ã¤Æ¹Ô¤¦
ɬÍפ¬¤¢¤ê¤Þ¤¹¤¬¤â¤Á¤í¤ó¤³¤ó¤Ê¤â¤ó¥ï¥ó¥Á¥Ã¥×¥Þ¥¤¥³¥ó¥ì¥Ù¥ë¤Ç¤Ï¤ä¤Ã¤Æ¤é¤ì¤Ê¤¤
¤Î¤Ç¤¹¤¬°Ê²¼¤Î¥×¥í¥»¥¹¤Ç¶á»÷¤Ç¤¤Þ¤¹¡£
¡¡¡ID2¥Ø¥Ã¥ÀÎΰè¤Ë¤¢¤ëXing¤È¸Æ¤Ð¤ì¤ë¥Ø¥Ã¥À¤«¤éÁ´¥Õ¥ì¡¼¥à¿ô¤ò»»½Ð
¢¡¡¥µ¥ó¥×¥ë¥ì¡¼¥È¤«¤é1¥Õ¥ì¡¼¥à¤¢¤¿¤ê¤Î»þ´Ö¤ò»»½Ð
¡¡¡¡ MPEG1Layer-3¤Ï1¥Õ¥ì¡¼¥à¤¢¤¿¤ê1152Sample¤ÈÄêµÁÉÕ¤±¤é¤ì¤Æ¤ª¤ê¡¢¤¿¤È¤¨¤Ð
¡¡¡¡ 44.1KHz¤Ê¤é1¥Õ¥ì¡¼¥à¤Ë¤«¤«¤ë»þ´Ö¤Ï((1152*10^3)/44100(Hz))=26mSec¤È
¡¡¡¡ ¶á»÷¤Ç¤¤ë¡£
£¡¡¡¤È¢¤ò³Ý¤±¤ë¤ÈÁí±éÁÕ»þ´Ö¤¬¥ß¥êÉÃñ°Ì¤ÇÆÀ¤é¤ì¤ë¡£
Xing¥Ø¥Ã¥À¡¼¤¬Ìµ¤¤¤È¾åµ¤Îµ»¤¬»È¤¨¤Þ¤»¤ó¤Î¤Ç±éÁÕ»þ´Ö/·Ð²á»þ´Ö¤Ï¤á¤Á¤ã¤¯¤Á¤ã¤Ë
¤Ê¤Ã¤Á¤ã¤¤¤Þ¤¹¡£ËؤɤÎMP3¥¨¥ó¥³¡¼¥À¡¼¤ÏXing¥Ø¥Ã¥À¡¼¤ò¤Á¤ã¤ó¤ÈÉÕÍ¿¤¹¤ë¤Î¤Ç¤¢¤Þ¤ê
µ¤¤Ë¤Ï¤Ê¤ê¤Þ¤»¤ó¤¬¡Ä¡£
º£²ó¤Î¥Ç¥â¥ó¥¹¥È¥ì¡¼¥·¥ç¥ó¤Ç»ÈÍѤ·¤¿aitendo¤µ¤ó¤ÎLCD¤ÏSPIÀܳ¥ª¥ó¥ê¡¼
¤Ê¤Î¤Ç¤¹¤¬¡¢STM32F4¤ÎÀǽ¤Î¤ª¤«¤²¤ÇLCD¤Ø¤ÎžÁ÷¤ò¥½¥Õ¥ÈSPI¤Ë¤·¤Æ¤â²»¤¬°ìÀÚ
ÅÓÀڤ줺;͵¤Ç´Ö¤Ë¹ç¤¦¥ì¥Ù¥ë¤Ç¤¹¡£
STM32F4¤Û¤ó¤È¤¹¤´¤¤¤Ã¤Æ¤Í¡¢¤Þ¤¿°ì¤Ä³Î¿®¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤·¤¿!
¤Æ¤ï¤±¤ÇÀèÆü¤è¤êÀè¹Ô¤Ç¾Ò²ð¤Ï¤·¤Æ¤ª¤ê¤Þ¤·¤¿¤¬¥½¡¼¥¹¥³¡¼¥É¤ò²þ¤á¤Æ¾Ò²ð¤·¤Þ¤¹¡£
¤ª¤Þ¤±¤Ç¥Õ¥ê¡¼¤Ç»ÈÍѤǤ¤ëFontX2¤Î¥Õ¥©¥ó¥È¤ä±£¤ì¤¿¥á¥¤¥ó¥³¥ó¥Æ¥ó¥Ä¤ÎTFT-LCD
¥É¥é¥¤¥Ð¤âÂô»³(ÆÃ¤Ëaitendo¤µ¤ó¤Î¤Ç½é´ü²½¥ë¡¼¥Á¥ó¤¬Ä󼨤µ¤ì¤Æ¤Ê¤¤Éʼï)ÄɲÃ
¤·¤Æ¤ª¤ê¤Þ¤¹¤Î¤Ç¤³¤Á¤é¤âÊ»¤»¤Æ³§¤µ¤ó¤Î»²¹Í¤È¤·¤Æ¤¯¤À¤µ¤¤¡£
FM3¥Þ¥¤¥³¥ó¤ò»È¤Ã¤Æ¤ß¤ë4 -¤â¤¦¡¢Ã¯¤â...-
¤â¤¦¿¨¤ëµ¤ÎϤ¬¥¼¥í¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¤¤¤Ä¤â¸«¤ËÍè¤Æ¤¯¤À¤µ¤Ã¤Æ¤ëFujitsu¤ÎÊý¡¹
¤Ë¤Ï¿¿¤Ë¿½¤·Ìõ¤Ê¤¤¤Î¤Ç¤¹¤¬¤³¤³¤ÇÂǤÁÀڤäƤ¤¤Ä¤â¤Î¤Î¸ø³«¤ò¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£
¡ü¾¡¤Æ¤Ê¤«¤Ã¤¿¤è¡Ä
Åö½é¼ÂÁõͽÄê¤À¤Ã¤¿°Ê²¼¤Î¥³¡¼¥É¤Ï»ä¤ÎÎÏÉÔ¤⤢¤Ã¤ÆÀ¹¤ê¹þ¤á¤Þ¤»¤ó¤Ç¤·¤¿¡£
¡¦³°ÉôSRAM¥¢¥¯¥»¥¹
¡¡->´ðÈĤËȾÅÄÉÕ¤±¤Þ¤Ç¤Ï¤·¤¿¤±¤ÉÇÛÀþ¤á¤É¤¤¡£
¡¦¾¾±º»á¤Împ3¥×¥ì¡¼¥ä¡¼(libmad)¤Î°Ü¿¢
¡¡->STM32F4¤Çhelix¤ÎÊý¤ò°Ü¿¢¤·¥ê¥Ù¥ó¥¸´°Î»¡£
¡ü¤¤¤Ä¤â¤Î
»ä¤Î¤Ö¤í¤°¤Ë¤ª¤¤¤Æ¤¤¤Ä¤â¤Î¤È¤ÏChaN»á¶àÀ½FatFs¤Î°Ü¿¢Îã¤ò»Ø¤·¤Þ¤¹¡£
¤â¤Á¤í¤óñ¤Ë°Ü¿¢¤·¤¿¤À¤±¤Ç¤Ï¤Ê¤¯TFT-LCD¤ÈÁȤ߹ç¤ï¤»¤¿(Ʊ¤¸¤¯ChaN»á¤Î)
¥Õ¥¡¥¤¥é¤Ë¤è¤ê»ë³ÐŪ¤ËÁàºî¤¬²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤É¤ÎMPU¤Ë¤«¤«¤ï¤é¤º
¤¤¤Ä¤â¤Î¤Ï´ðËÜŪ¤Ë²¼µ¤Îµ¡Ç½¤òÌÖÍ夹¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤ê¾¤ÎÍÑÅӤˤâ
´Êñ¤Ë±þÍѤǤ¤ë»ÅÁȤߤȤʤäƤ¤¤Þ¤¹¡£
¡¦FatFs
¡¦UART(TFT-LCD¥É¥é¥¤¥Ð/FatFs¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤Îưºî¤Ëɬ¤ºÉ¬Í×)
¡¦TFT-LCD¥É¥é¥¤¥Ð
¡¦SPIžÁ÷(TFT-LCD¥É¥é¥¤¥Ð¤Ë»È¤¦)
¡¦³°Éô¥Ð¥¹(TFT-LCD¥É¥é¥¤¥Ð¡¦SRAM¤Ë»È¤¦)
¡¦¥¿¥Ã¥Á¥Ñ¥Í¥ëÆþÎÏ(TFT-LCD¥É¥é¥¤¥Ð¤Ë»È¤¦¡¦BlueScreen¤Î¤â¤Î¤òÈÆÍѲ½¤·¤Æ°Ü¿¢)
¡¦¥¿¥Ã¥Á¥Ñ¥Í¥ëÆþÎÏÍѤΥǡ¼¥¿ÊÝ»ý(FRK-FM3¤Ç¤ÏFRAM¤ò»ÈÍÑ)
¡¦DMAžÁ÷(TFT-LCD¥É¥é¥¤¥Ð¤Ë»È¤¦)
¡¦FONTX2¥É¥é¥¤¥Ð
¡üư¤«¤¹¤¿¤á¤Î¥Ï¡¼¥É¥¦¥¨¥¢¤Î½àÈ÷
FRK-FM3¤Ë¤Î¤Ã¤«¤Ã¤Æ¤¤¤ë¥ì¥®¥å¥ì¡¼¥¿¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏLDO¦¤Î½ÐÎϤ¬»ÈÍÑ
¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤ò600mA°ú¤½Ð¤»¤ëDCDC¥³¥ó¥Ð¡¼¥¿Â¦¤ËÀÚ¤êÂØ¤¨¤Þ¤·¤¿¡£
´ðÈÄñÂΤÇÄÌÅŤ·¤¿»þ¤ÎΩ¤Á¤¢¤¬¤ê¤È¤¿¤Á²¼¤¬¤ê¤ÎÇÈ·Á¤Ï°Ê²¼¤ÎÄ̤ꡣ
¤Þ¤¡ÆÃ¤ËÌäÂê¤â¤Ê¤¤¤Ç¤¹¤Í¡£(¤¢¤Ã¤¿¤éº¤¤ê¤Þ¤¹¤±¤É¡Ä)
´ðÈĤ«¤é³°¤ÎÇÛÀþ¤Ï¡¢GND¤ÈVCC¤ÎÇÛÀþ¤¬¤â¤Î¤¹¤´¤¯´Êñ¤Ë¤Ê¤ë¥¢¥¤¥Æ¥à¥é¥Ü¤ò»ÈÍѤ·¤Þ¤·¤¿¡£
¤µ¤ó¤Î¥Ñ¥ï¡¼¥á¥Ã¥·¥å¥æ¥Ë¥Ð¡¼¥µ¥ë´ðÈÄ
΢¤Ë¤Ïebay¤ÇÂçÎÌ¤Ë¹ØÆþ¤·¤¿microSD¥«¡¼¥É¥¹¥í¥Ã¥È¤òÀߤ±¤Þ¤·¤¿¡£
°Â²Á¤Ç°ú¤²ó¤·¤â¤ä¤ê¤ä¤¹¤¤¤Ç¤¹♥
¥¢¥Ê¥í¥°½ÐÎÏ¤Ï¥í¡¼¥Ñ¥¹¥Õ¥£¥ë¥¿¤òÄ̤¸¤ÆÃ±ÅŸ»¥ª¥Ú¥¢¥ó¥×¤Ç¹½À®¤µ¤ì¤¿¥Ü¥ë¥Æ¡¼¥¸¡¦
¥Õ¥©¥í¥ï·Ðͳ¤Ç¹Ô¤¤¤Þ¤¹¡£3.5¦Õ¤Î¥¸¥ã¥Ã¥¯¤ò¤Ä¤±¤ë¥³¥Í¥¯¥¿¤Î¾å¤Ë¸«¤¨¤ë¥Ø¥Ã¥À¥Ô¥ó¤Ï
¥Ü¥ê¾¾´ðÈÄ(LPC2388ÍÑ)¤ò¤Ä¤±¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£
TFT-LCD¥â¥¸¥å¡¼¥ë¤Ï¥Ñ¥é¥ì¥ë/¥·¥ê¥¢¥ëÍѤΥݡ¼¥È¤ò°ú¤½Ð¤·¤Æ¤Þ¤¹¡£Ãæ±û¤ÎIC¤Ï
¤¯¤Ã¤Ä¤±¤¿¤À¤±¤ÇÇÛÀþ¤ÇºÃÀÞ¤·¤¿1MB¤ÎSRAM...
¤¤¤Ä¤â¤Î¤òư¤«¤·¤Æ¤ß¤¿¤È¤³¤í¤Ç¤¹¡£¤â¤Ï¤ä¤³¤³¤Þ¤Ç¤Ï´ðËܤÎ"¤"¤Ç¤¹¤Í¡Á¡£
8bit-i8080¤È8bitSPI¤ÎRGB¥Ç¡¼¥¿¤Î¥Ö¥í¥Ã¥¯Å¾Á÷¤ÏDMA¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£
¤È¤³¤í¤Ç³°Éô¥Ð¥¹¤ò»ÈÍѤ·¤¿¾ì¹ç¤ÎDMA¤Ï¥á¥â¥ê´ÖžÁ÷°·¤¤¤Ê¤Î¤Ç¤Þ¤À´Êñ
¤Ê¤Î¤Ç¤¹¤¬MFS¤òÍѤ¤¤¿SPI¤ÇDMA¤¹¤ë¾ì¹ç¤Î¶ñÂÎŪ¤Ê¼ê½ç¤¬¤¤¤Þ¤¤¤Á¤ï¤«¤é¤º
Æñµ·¤·¤Þ¤·¤¿¡£»ñÎÁ¤òõ¤·¤ÆFM3¤Î±Ñʸ¤ÎÊý¤Î¥µ¥¤¥È¤ÎÊÌÉʼï¤Î¥µ¥ó¥×¥ëÎã¤Ë
UART¤Ç¤ÎžÁ÷¼ê½ç¤¬¤¢¤Ã¤¿¤Î¤Ç¤³¤ì¤ò¤â¤È¤ËDMAžÁ÷¥ë¡¼¥Á¥ó¤òºî¤ê¤Þ¤·¤¿¡£
žÁ÷¤Ë´Ø¤·¤Æ¤Ï°Ê²¼¤ÎÍ×ÁǤ¬É¬ÍפǤ¹¡£
¡¦MFS¤ÎDMA¤Ï¥Ï¡¼¥É¥¦¥¨¥¢¤Î¥Ç¥Þ¥ó¥ÉžÁ÷¤È¤¹¤ë
¡¦MFS¤ÎÁ÷¿®/¼õ¿®³ä¤ê¹þ¤ß¤òDMAÍ×µá¤È¤·¤Æ»ÈÍѤ¹¤ë
¡¦DMACBx¥ì¥¸¥¹¥¿¤ÎEB¥Ó¥Ã¥È¤ÏΩ¤Æ¤ë¤Î¤ò˺¤ì¤º¤Ë
¡¦Á÷¿®/¼õ¿®³ä¤ê¹þ¤ßµö²Ä¥Ó¥Ã¥ÈΩ¤Æ¤ÆÅ¾Á÷³«»Ï
¤§¤Ã¤È¾Ü¤·¤¤¼ê½ç¤Ï¥½¡¼¥¹¤ò¸«¤Æ¤¯¤À¤µ¤¤(´ÝÅꤲ!)
XMEGA¤ÎMSPI¤ÇDMAžÁ÷¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿·Ð¸³¤¬À¸¤¤Þ¤·¤¿¡£
¤Á¤Ê¤ß¤Ë®ÅÙ¤ÏÃÙ¤¤¤Ç¤¹¤¬¥½¥Õ¥È¥¦¥¨¥¢SPI¤â½ÐÍè¤ë¤è¤¦¤Ë¤·¤Æ¤Þ¤¹¡£
Ìà¤âFM3¤Î¾ì¹ç¤Ï9bitSPI¤¬²Äǽ¤Ê¤Î¤Ç½ÐÈÖ¤Ï̵¤¤¤È»×¤¤¤Þ¤¹¡£
º£²ó¤Ïɽ¼¨·Ï¤â¤Á¤ç¤Ã¤È¤À¤±¥Ñ¥ï¡¼¥¢¥Ã¥×¤·¤Æ¤Þ¤¹¡£¥í¥ó¥°¥Õ¥¡¥¤¥ë¥Í¡¼¥à(LFN)¤â
ɽ¼¨¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤Þ¤¹♥
¤³¤ì¤ÏWAVE¥Õ¥¡¥¤¥ë¤òºÆÀ¸¤·¤Æ¤ë²èÌ̤Ǥ¹¤¬LFN¤ÎÆüËܸì¥Õ¥¡¥¤¥ë̾¤Ë¤â¤â¤Á¤í¤ó
Âбþ¤Ç¤¹¡£¤Á¤Ê¤ß¤Ë»ä¤âf_stat()¤Ç¼èÆÀ¤·¤¿FILEINFO¹½Â¤ÂΤΥǡ¼¥¿¤¬LFN¤À¤±
½¦¤Ã¤Æ¤³¤é¤ì¤Ê¤¤æ«¤Ë¤Ï¤Þ¤Ã¤¿°ì¿Í¤Ç¤¹orzSFN¤«¤éLFN¤ò°ú¤ÃÄ¥¤Ã¤Æ¤¯¤ë
´Ø¿ô¤ò°ì¤ÄÀߤ±¤Æ¼Â¸½¤·¤Æ¤¤¤Þ¤¹¡£
¤È¤¤¤¦¤ï¤±¤ÇFM3¤Ë¤«¤Ê¤ê´ó¤êÆ»¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬¤³¤Î·Ð¸³¤òSTM32F4¤Ë
È¿±Ç¤·¤Æ¤¤¤³¤¦¤È»×¤¤¤Þ¤¹¡£
¤»¤Ã¤«¤¯STM32F427Ķ³Ê°ÂÁ´ÉôºÜ¤»´ðÈÄÇã¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤â¤Ã¤¿¤¤¤Ê¤¤¤Ç¤¹¤·¡ª
Windows10Âбþ·ÚÎÌ¥·¥ó¥×¥ë¤ÊARM¥Þ¥¤¥³¥ó¤ÎGCC¥Ó¥ë¥É´Ä¶¤ò¹½ÃÛ¤¹¤ë(2020ǯÅÙÈÇ)
OpenOCD for Windows is HERE!
¢¬¤Í¤à¤¤¤µ¤ó¤Ï¼«Á°¥Ó¥ë¥É¤ÎOpenOCD¥Ð¥¤¥Ê¥ê¸ø³«¤·¤Æ¤Þ¤¹¡£
¡¡²òÀâ¤Ï¤³¤Î¥Ð¥¤¥Ê¥ê¤ò´ð¤Ë¤¹¤¹¤á¤Þ¤¹¤Î¤Ç4649!
Åöµ»ö¤ÏWindows´Ä¶²¼¤Ë¤ª¤±¤ëARM¥Þ¥¤¥³¥ó¤Î³«È¯´Ä¶¹½ÃÛ¤òÌܻؤ·¤Æ¤Ï¤ª¤ê¤Þ¤¹¤¬
»ä¤¬¸ø³«¤·¤Æ¤¤¤ë¥×¥í¥¸¥§¥¯¥È¤ò¥Ó¥ë¥É/¥Ç¥Ð¥Ã¥°¤¹¤ë¤¿¤á¤ËɬÍפʺǾ®¸Â¤Î¼ê½ç¤Î
»ØÆî¤È¤¤¤¦°ÌÃ֤Ť±¤Ç¤¹¡£
¤Ï¤Ã¤¤ê¸À¤¤¤Þ¤¹¤¬½é³Ø¼Ô¸þ¤¤Î²òÀâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ÀìÌçŪ¤Ê¸ì¶ç¤Î°ÕÌ£¤ä
GNUMake¤ò¶î»È¤·¤¿¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ó¥ë¥É¤ÎÊýË¡¤ò½ÏÃΤ·¤Æ¤¤¤ëÁ°Äó¤ÇÏäò¿Ê¤á¤Þ¤¹¡£
2019ǯ¸½ºß¤Ï̵ÎÁ¤ÎEclipse¥Ù¡¼¥¹¤Î³«È¯´Ä¶GNUARMECLIPSE¡¢
STM32¸ÂÄê¤Ç¥Õ¥ëµ¡Ç½¤¬»È¤¨¤ëAtollic TrueStudio¤ÈMDK-ARM¤Î2Éʼ
¤½¤·¤Æ¥ª¥ó¥é¥¤¥ó¥³¥ó¥Ñ¥¤¥é+¥é¥¤¥Ö¥é¥êÅù¤Î¶¯ÎϤʥµ¥Ý¡¼¥È¤¬¤¢¤ëmbed¤È¤«¤¬
½¼¼Â¤·¤Æ¤ª¤ê¡¢°ìÈÌŪ¤Ê»öÊÁ¤ò³Ø¤Ó¤¿¤¤½é³Ø¼Ô¤ÎÊý¤Ë¤Ï¤½¤Á¤é¤ò¶¯¤¯¤ª´«¤á¤¤¤¿¤·¤Þ¤¹¡£
¤Á¤Ê¤ß¤Ë¤Í¤à¤¤¤µ¤ó¤Ï¥á¡¼¥«¥µ¥Ý¡¼¥È¤¬Ìµ¤¤ÁǤÎEclipse¤ò»È¤¦¤ÈŽ¢¤¢¤ï¤Ó¤å¡ªŽ£¤È
¶«¤Ó¤Ê¤¬¤éÁ´¿È¤«¤é·ì¤ò¿á¤½Ð¤·¤Æ»à¤Ì´ñÉÂ¤ËØí¤Ã¤Æ¤¤¤Æ¡¢³î¤ÄCygwin¤ò»È¤¦¤È
¥Ð¥¹¥È¥µ¥¤¥º¤¬¶¯À©Åª¤Ë20cm¸º¤Î¥Þ¥¤¥Ê¥¹ÊäÀµ¤ò¶ô¤é¤¤(=¥Õ¥é¥Ã¥È¤ÊB(Breasts)ÆÃÀ
¤ò»ý¤Ä¤¤¤Ê¤¤¤µ¤ó¤ÈƱ¥ì¥Ù¥ë¤ËÂĤÁ¤Æ¤·¤Þ¤¤¡ËÆú΢¥á¥¤¥É¤Í¤à¤¤¤µ¤ó¤È¤·¤Æ¤Î
¤¢¤¤¤Ç¤ó¤Æ¤£¤Æ¤£¤ò´°Á´¤Ë¼º¤Ã¤Æ¤·¤Þ¤¦¤¿¤á¡¢Åö¤Ö¤í¤°¤Ç¤ÏÀäÂФ˰·¤¤¤Þ¤»¤ó¡£
¡¡¢¨Í×Ãí°Õ¢¨
¡¡¡¡¡¡¥Ä¡¼¥ë·²¤ÎÀ¹¿ê¤ä»þÀª¤Ë¤è¤ê»þ¡¹¹ï¡¹¤ÈËܵ»ö¤ÎÆâÍÆ¤ÏÊѲ½¤·¤Æ¤¤¤¤Þ¤¹!
¡üɬÍפʤâ¤Î
¡¡£±¡¥ARMÍÑGCC¥³¥ó¥Ñ¥¤¥é
¡¡¡¡¤È¤Ë¤â¤«¤¯¤Ë¤â¤Þ¤º¤Ï¤³¤ì¤Ç¤¹¡£
¡¡¡¡¸½ºß¤ÏLaunchpad.net¤¬Ä󶡤·¡¢ARMËܲȤ«¤éÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë
¡¡¡¡GNU Tools for ARM Embedded Processors
¡¡¡¡¤ò¶¯¤¯¤ª´«¤á¤·¤Þ¤¹¡£É½¸þ¤Cortex-Mx¸þ¤±¤È¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¤¬¡¢LPC2388Åù¤Î
¡¡¡¡ARM7TDMI¤â¤·¤Ã¤«¤ê¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¸Å¤¤Éʼï¤Ç¤âÌäÂê¤Ê¤¯¥Ó¥ë¥É¤¬²Äǽ¤Ç¤¹¡£
¡¡¡¡º£²ó¤Î¼ê½ç¤Ç¤Ï¥À¥¦¥ó¥í¡¼¥É¤·¤¿¾åµ¥³¥ó¥Ñ¥¤¥é¤òC:/Devz/ARM/launchpad
¡¡¡¡Ä¾²¼¤Ë²òÅह¤ë¤â¤Î¤È¤·¤Þ¤¹¡£²òÅà¸ålaunchpad¥Õ¥©¥ë¥À¤Ë¤Ï
¡¡¡¡arm-none-eabi,bin,share,lib¤Î4¤Ä¤Î¥Õ¥©¥ë¥À¤¬¤¢¤ë¤Î¤¬Àµ²ò¤Ç¤¹¡£
¡¡¡¡Windows´Ä¶²¼¤Çư¤¯ARMÍÑGCC¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æ¡¢Bleeding Edge Toolchain
¡¡¡¡¤Ê¤ó¤«¤â¤¢¤ê¤Þ¤¹¡£¤¤¤º¤ì¤âABI¤ÏEABI¤Ç2015ǯ°Ê¹ßήÄ̤·¤Æ¤¤¤ë
¡¡¡¡ºÇ¿·¤ÎGCC¥³¥ó¥Ñ¥¤¥é¤Ï¤â¤Ï¤ä¤¹¤Ù¤ÆEABI¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡£²¡¥¥µ¥Ý¡¼¥È¥Ä¡¼¥ë·²
¡¡¡¡¤Í¤à¤¤¤µ¤ó¤¬¸ø³«¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ó¥ë¥É¤òÁÛÄꤷ¤Æ¤¤¤Þ¤¹¡£
¡¡¡¡IDEÁ´À¹¤Îºòº£¤Ï¸Å½¤¤¤â¤Î¤È¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬make¥³¥Þ¥ó¥É¤Ç¥Ó¥ë¥É¤¹¤ë
¡¡¡¡¤È¤¤¤¦¥Ù¥¿¥Ù¥¿¤Ê¥¯¥é¥·¥Ã¥¯¤Ê¼êË¡¤ò´º¤¨¤Æ¤È¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¡¡make¤Î¾¤Ëunix¥³¥Þ¥ó¥É¤Îecho¤ärm¤Ê¤É¤òÍѤ¤¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤é¤Îunix
¡¡¡¡¥é¥¤¥¯¤Ê¥³¥Þ¥ó¥É¤ò¥Í¥¤¥Æ¥£¥Ö¤ÊWindows´Ä¶²¼¤Çư¤«¤¹¤³¤È¤¬¤Ç¤¤ë
¡¡¡¡Coreutils¤ò»ÈÍѤ·¤Þ¤¹¡£
¡¡¡¡a.CoreutilsËÜÂÎ
¡¡¡¡ ͻ֤ÎÊý¡¹¤¬ºîÀ®¤µ¤ì¤¿Coreutils¤Î"Binaries"¤Î¥ê¥ó¥¯Àè¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢
¡¡¡¡ 2¥Ð¥¤¥Èʸ»ú¤ä¥¹¥Ú¡¼¥¹¤ò´Þ¤Þ¤Ê¤¤Ç¤°Õ¤Î¥Õ¥©¥ë¥À¤Ë²òÅष¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡b.GNUMake3.81
¡¡¡¡ ¼¡¤ËGNUMake¤òƱÍͤ˥À¥¦¥ó¥í¡¼¥É¤·¤¿¤¢¤È²òÅषCoreutils¤ò²òÅष¤¿
¡¡¡¡ ¾ì½ê¤ÈƱ¤¸¥Õ¥©¥ë¥À¤ËÃÖ¤¤¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡c.¥µ¥Ý¡¼¥ÈDLL·²
¡¡¡¡ ºÇ¸å¤Ëmake¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Ú¡¼¥¸¤Î²¼¤Ë¤¢¤ë"dependencies zip file
¡¡¡¡ (Ãæ¿È¤Ïlibintl3¤Èlibiconv2)"¤ò¥À¥¦¥ó¥í¡¼¥É¤·GNUMake¤ÈƱÍͤνèÃÖ¤ò
¡¡¡¡¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡º£²ó¤Î¼ê½ç¤Ç¤Ï¾åµ3ÅÀ¤¬¤¹¤Ù¤ÆC:/Devz/Coreutils/binÆâ¤Ë¤¢¤ë¤â¤Î¤È¤·¤Þ¤¹¡£
¡¡¡¡¤³¤Îbin¥Õ¥©¥ë¥ÀÆâ¤Ëmake,echo,rmÅù¤Îunix¥é¥¤¥¯¥³¥Þ¥ó¥É¤Èdepedencies¤Î
¡¡¡¡libintl3.dll,libiconv2.dll¤¬Â¸ºß¤·¤Æ¤¤¤ë¤³¤È¤òɬ¤º³Îǧ¤·¤Æ¿Ê¤á¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡¤³¤³¤Ç´Ö°ã¤Ã¤Æ¤ë¤È²¼½Ò¤ÎPN2¤«¤émake¤ò¸Æ¤Ó½Ð¤¹Ãʳ¬¤Ç¥³¥±¤Æ¼ºÇÔ¤·¤Þ¤¹¡£
¡¡¡¡
¡¡¡¡¤è¤¯¤ä¤ë´Ö°ã¤¤¤¬¡¢ºÇ½é¤ÎCoreutils¤ò²òÅष¤Æ½Ð¤Æ¤¯¤ëbin¥Õ¥©¥ë¥À¤ÎÃæ¤Ë
¡¡¡¡¤µ¤é¤Ëmake¤ädepedencies¤ÎÆþ¤Ã¤¿bin¥Õ¥©¥ë¥À¤òÃÖ¤¤¤Æ¤·¤Þ¤¦¤³¤È¤Ç¤¹¡£
¡¡
C:/Devz¢¬¤Í¤à¤¤¤µ¤ó¤Ï¾åµ¤Î¥Ç¥£¥ì¥¯¥È¥ê¹½Â¤¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¡¡¡¡¨§ARM
¡¡¡¡¡¡|¨¦launchpad
¡¡¡¡¡¡|¡¡¨¦bin¡¡(¢«GCC¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¥¤¥Ê¥ê¤¬¤¢¤ë¾ì½ê)
¡¡¡¡¡¡|¨¦ocd(¢«openocd.exe¤Î¤¢¤ë¾ì½ê)
¡¡¡¡¡¡¨¦Coreutils
¡¡¡¡¡¡ ¨¦bin¡¡(¢«make¾unix¥é¥¤¥¯¥³¥Þ¥ó¥É·²¤Î¤¢¤ë¾ì½ê)
¡¡¡¡¡¡
¡¡¡¡°Ê²¼¤³¤Î¹½À®¤ÇÏäò¿Ê¤á¤Þ¤¹¡£
¡¡¡¡¤Á¤Ê¤ß¤ËAVRToolChain¤Ç¤âARM¤ÈƱ¤¸¤è¤¦¤Ê´¶¤¸¤Î¥Ç¥£¥ì¥¯¥È¥ê¹½À®¤Ë¤¹¤ë¤È¡¢
¡¡¡¡Æ±¤¸´¶¤¸¤Ç¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ó¥ë¥É¤¬½ÐÍè¤Þ¤¹¤Î¤Ç¤ª¤¹¤¹¤á¤Ç¤¹¡£
¡¡¡¡¢¨°ÊÁ°¤ÏWinAVR¤ÎutilsÇÛ²¼¤Ë¤¢¤Ã¤¿Æ±ÍͤΥե¡¥¤¥ë·²¤Î»ÈÍѤò¿ä¾©¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢
¡¡¡¡¡¡WinAVR¤Ï³«È¯¤¬Ää»ß¤·¿ôǯ·Ð¤Á¡¢¥Õ¥ê¡¼¤ÇÍøÍѤǤ¤ëAVRToolchain¤Ë¼çή¤¬°Ü¹Ô
¡¡¡¡¡¡¤·¤¿¤Î¤Ç¤â¤¦°ìÀÚ»ÈÍѤ·¤Þ¤»¤ó¤·»È¤Ã¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£
¡¡£².£µ¡¥sh.exe¤¬¸«¤Ä¤«¤ê¤Þ¤»¤óÂкö(ɬ¤º¤·¤âɬÍפǤϤʤ¤)
¡¡¡¡¥Í¥Ã¥È¾å¤Ç¼ê¤ËÆþ¤ëARM¥Þ¥¤¥³¥ó¤ÎGCC¥×¥í¥¸¥§¥¯¥È¤ÎÃæ¤Ç¤ÏWinAVR¤Îmakefile¤ò
¡¡¡¡¥Ù¡¼¥¹¤Ë¤·¤¿¤â¤Î¤¬¤¤¤¯¤Ä¤«Â¸ºß¤·¡¢¤½¤³¤Ë¤Ïshell´Ø¿ô¤Ê¤É¤Îbash¤Ë°Í¸¤·¤¿µ½Ò¤¬
¡¡¡¡¿ô¤«½ê¤¢¤ê¤Þ¤¹¡£¤³¤Îµ½Ò¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¤Þ¤È¤â¤Ë¥Ó¥ë¥É¤¬¤Ç¤¤Þ¤»¤ó¡£
¡¡¡¡Åö¤Ö¤í¤°¤Ç¸ø³«¤·¤Æ¤ë¥×¥í¥¸¥§¥¯¥È¤Ïmakefile¤«¤ébash(/bin/sh)¤Ë°Í¸¤·¤Æ
¡¡¡¡¤¤¤ëµ½Ò¤Ï¤¹¤Ù¤ÆÇÓ¤·¤Æ¤ª¤ê¤Þ¤¹¤¬¡¢Â¾¤ÎÊý¤Î¥×¥í¥¸¥§¥¯¥È¤ò¥Ó¥ë¥É¤¹¤ëºÝ¤Î
¡¡¡¡²óÈòÁ¼Ã֤Ȥ·¤Æ¾Ò²ð¤·¤Þ¤¹¡£
¡¡¡¡¤³¤Á¤é¤«¤éwin-bash.zip¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢²òÅष¤Æ½Ð¤Æ¤¤¿win-bash.exe¤ò
¡¡¡¡Coreutils¤Îbin¥Õ¥©¥ë¥À¤ËÆÍ¤Ã¹þ¤ó¤Ç¤¯¤À¤µ¤¤¡£¼¡¤Ëmakefile¡¡¥Õ¥¡¥¤¥ëÃæ¤Ë
¡¡¡¡µºÜ¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¤ÎSHELL¤ÎÀßÄê¤ò°Ê²¼¤Î¤è¤¦¤Ë½ñ¤´¹¤¨¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡SHELL = sh
¡¡¡¡¢
¡¡¡¡SHELL = win-bash.exe
¡¡¡¡bash.exe¤Ï¼«¿È¤Î¥Õ¥¡¥¤¥ë̾¤Ë¤è¤Ã¤ÆÆÃ¼ì¤Êư¤¤ò¤¹¤ë¤Î¤Ç²£Ã夷¤Æwin-bash.exe¤Î
¡¡¡¡Êý¤òsh.exe¤È¥ê¥Í¡¼¥à¤·¤Æ¤·¤Þ¤¦¤ÈµÕ¤Ë¥Ó¥ë¥É¤¬Ä̤é¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£¤´Ãí°Õ¤¯¤À¤µ¤¤¡£
¡¡£³¡¥¥¨¥Ç¥£¥¿
¡¡¡¡¥á¥âÄ¢¤ÇŽ¾ŽºŽ¾ŽºÊÔ½¸¤·¤Æ¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤«¤émake¤ò¼Â¹Ô¤·¤Æ¤â¤¤¤¤¤Ç¤¹¤±¤É
¡¡¡¡make¤ò°ú¿ô¤Ä¤¤Ç¸Æ¤Ó½Ð¤»¤é¤ì¤ë¥¨¥Ç¥£¥¿¤ò»È¤¨¤ÐIDE¤Î¤è¤¦¤Ë»È¤¨¤Þ¤¹¡ª
¡¡¡¡¤Í¤à¤¤¤µ¤ó¤Î¤ª´«¤á¤ÏProgrammers Notepad2(PN2)¤Ç¤¹¡£ÁǤÎEclipse¤Ï(ry
¡¡¡¡¥Ó¥ë¥É»þ¤Î²òÀâ¤Ï¤³¤ÎPN2¤ò»ÈÍѤ·¤Æ²òÀ⤷¤Þ¤¹¡£
¡¡¡¡Ãí¡§É¬¤ºStable2.3°Ê¹ß¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡¡¡¡¡¤Þ¤¿¡¢ÆüËܸìÆþÎϤËÂбþ¤¹¤ë¤¿¤á¤Ë²¼µ¤ÎÍ×ÎΤÇ¿¥Ð¥¤¥Èʸ»ú¤ÎÀßÄê¤ò
¡¡¡¡¡¡¡¡¡ÉShift-JIS¡É¤ËÊѹ¹¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡¡¡

¡¡¡¡¤½¤ì¤ÈPN2¤Î¥¤¥ó¥¹¥È¡¼¥ëÀè¤Ï̵ÍѤʥȥé¥Ö¥ë¤òÈò¤±¤ë¤¿¤á¥¹¥Ú¡¼¥¹¤ä2¥Ð¥¤¥È
¡¡¡¡Ê¸»ú¤¬º®¤¶¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÏÈò¤±¤Æ¤¯¤À¤µ¤¤¡£
¡¡£´¡¥¥Ç¥Ð¥Ã¥¬¥½¥Õ¥È¥¦¥¨¥¢&¥Ï¡¼¥É¥¦¥¨¥¢
¡¡¡¡ARMÍѤΥǥХ嬤ϥۥӡ¼¥æ¡¼¥¶¡¼¤´ÍÑã¤ÎGDB¥µ¡¼¥Ð¤Ç¤¢¤ëOpenOCD¤ò
¡¡¡¡»ÈÍѤ·¤Þ¤¹¡£¼¡²ó¤Îµ»ö¤Ç»ÈÍÑË¡¤ò¾Ò²ð¤·¤Þ¤¹¡£
¡¡¡¡¤Þ¤¿¡¢MCU¤ÈJTAG/SWD¤ÇÄÌ¿®¤¹¤ë¥Ï¡¼¥É¥¦¥¨¥¢¤ÏFTDI¤ÎFT2232·ÏJTAG-I/F¤ò
¡¡¡¡»ÈÍѤ¹¤ë¤Î¤¬»ä¤ÎÃæ¤Ç¥¹¥¿¥ó¥À¡¼¥É¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¡¡¤³¤ì¤é¤Ë´Ø¤·¤Æ¤â¼¡²ó¾Ü¤·¤¯¾Ò²ð¤·¤Þ¤¹¡£
¡ü²¼½àÈ÷¤È¥Ó¥ë¥É
¡¡¢¨°Ê¸å¤Ï¥¨¥Ç¥£¥¿¤È¤·¤ÆPN2¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ»È¤¦¤³¤È¤òÁÛÄꤷ¤Æ²òÀ⤷¤Þ¤¹¡£
¡¡£±¡¥¥½¡¼¥¹¥³¡¼¥É¤ÎŸ³«
¡¡¡¡º£²ó¤ÎËÞÎã¤È¤·¤Æ¡¢STM32F4¸þ¤±¤Î±Õ¾½É½¼¨¥×¥í¥°¥é¥à¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ
¡¡¡¡¥í¡¼¥«¥ë¤ËÍî¤È¤·¤¿zip¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥«¥ë¥Õ¥©¥ë¥À¤ËŸ³«¤·¤Þ¤¹¡£
¡¡¡¡¤³¤Î¤È¤¥Ç¥£¥ì¥¯¥È¥ê¥Ñ¥¹(¥¢¥É¥ì¥¹)¤Ë¥¹¥Ú¡¼¥¹¤ä£²¥Ð¥¤¥Èʸ»ú¤¬ÀäÂФË
¡¡¡¡Æþ¤é¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡

¡¡£²¡¥make¥Õ¥¡¥¤¥ë¤ÎÊÔ½¸
¡¡¡¡PN2¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢³ÈÄ¥»Òpnproj¤Î¥¢¥¤¥³¥ó¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯
¡¡¡¡¤¹¤ë¤È²¼¤Î¤è¤¦¤Ê²èÌ̤ˤʤë¤È»×¤¤¤Þ¤¹¡£"makefile"¤ò¥¯¥ê¥Ã¥¯¤·¤Æmakefile¤Î
¡¡¡¡ÊÔ½¸²èÌ̤ò½Ð¤·¤Þ¤·¤ç¤¦¡£
¡¡¡¡
¡¡¡¡OpenOCD¤Èarm-none-eabi¤Î¥Õ¥¡¥¤¥ë̾¤ÏÆÃ¼ì¤Ê¤³¤È¤ò¤ä¤é¤Ê¤¤¸Â¤ê¤Ï
¡¡¡¡¤â¤¦ÊѤ¨¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡

¡¡¡¡²¼²èÁü¤ÎÍ×ÎΤǤ½¤ì¤¾¤ì¤Î´Ä¶¤Ë¹ç¤ï¤»¤ÆARMÍÑGCC¥³¥ó¥Ñ¥¤¥é¡¢¥µ¥Ý¡¼¥È¥Ä¡¼¥ë
¡¡¡¡·²¡¢¥Ç¥Ð¥Ã¥¬¤Î¥Ç¥£¥ì¥¯¥È¥ê¥Ñ¥¹¤òÀßÄꤷ¤Æ¤¤¤¤Þ¤¹¡£¥Ñ¥¹¤Î¶èÀÚ¤ê¤Ï"¥"
¡¡¡¡¤Ç¤Ï¤Ê¤¯"/"¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡¥Ç¥£¥ì¥¯¥È¥ê¥Ñ¥¹¤Ï¥¹¥Ú¡¼¥¹¤ä£²¥Ð¥¤¥Èʸ»ú¤¬ÀäÂÐ¤ËÆþ¤é¤Ê¤¤¤è¤¦¤Ë
¡¡¡¡¤·¤Æ¤¯¤À¤µ¤¤¡£Âç»ö¤Ê¤³¤È¤Ê¤Î¤ÇÆóÅÙ¸À¤¤¤Þ¤¹!!
¡¡¡¡

¡¡¡¡

¡¡¡¡makefile¤Î½ñ¤Êý¤ÎºîË¡¤Ïº¡½è¤Ç¤Ï²òÀ⤷¤Ê¤¤¤Î¤Ç
¡¡¡¡³Æ¼«¾ÜºÙ¤ÏÄ´¤Ù¤Æ²¼¤µ¤¤¡£
¡¡£³¡¥PN2¤ÎÀßÄê
¡¡¡¡PN2¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤Æ¤Î¿Í¤Ï¡¢make¥³¥Þ¥ó¥É¤òPN2¤Î"TOOL"¤«¤é
¡¡¡¡¸Æ¤Ó½Ð¤¹¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë°Ê²¼¤ÎÍ×ÎΤÇmake¥³¥Þ¥ó¥É¤ò°ú¿ô"all"
¡¡¡¡¤Ä¤¤ÇÅÐÏ¿¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡¤½¤Î¸å¡¢"build","clean"¤Î°ú¿ô¤Ë¤Ä¤¤¤Æ¤âƱÍͤËÅÐÏ¿¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡

¡¡¡¡

¡¡¡¡

¡¡¡¡½ÅÍס§Windows´Ä¶ÊÑ¿ô¤ÎPATH¤ÏÀßÄꤹ¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡ª
¡¡¡¡¡¡¡¡¡¡²¼¼ê¤ËÀßÄꤷ¤Æ¤¤¤ë¤È¥Ó¥ë¥É¤¬Ä̤é¤Ê¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç¤´Ãí°Õ¤¯¤À¤µ¤¤¡£
¡¡£´¡¥¥Ó¥ë¥É³«»Ï
¡¡¡¡

¡¡¡¡¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïɾ²Á¥Ü¡¼¥É¤ÎÀßÄê¤ÏSTM32F4Discovery¸þ¤±¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¡¡¤Þ¤¿¡¢³ÆÉ¾²Á¥Ü¡¼¥ÉÀßÄê»þ¤Î³Æ¥Ô¥óÇÛÃÖ¤òÃΤꤿ¤¤¾ì¹ç¤ÏƱº¤Îdoc/Boards.txt¤ò
¡¡¡¡»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡ÀßÄ꤬½ª¤ï¤Ã¤¿¤é"Tool"¤«¤é"make all"¤ò¸Æ¤Ó½Ð¤·¥Ó¥ë¥É³«»Ï¤Ç¤¹¡£
¡¡¡¡

¡¡¡¡¥Ó¥ë¥É¤¬´°Î»¤·¤¿¤é¥á¥â¥ê»ÈÍÑÎ̤ʤɤξðÊ󤬥³¥ó¥½¡¼¥ë¾å¤Ë¸½¤ì¤Þ¤¹¡£
¡¡¡¡¤â¤·¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤Ê¤É¤¬È¯À¸¤·¥Ó¥ë¥É¤¬»ß¤Þ¤Ã¤¿¤éÀÖ¿§¤Ç¶¯Ä´É½¼¨¤µ¤ì¤ë¤Î¤Ç
¡¡¡¡¥¨¥é¡¼²Õ½ê¤ÎÆÃÄê¤â´Êñ¤Ç¤¹¡£
¡¡¡¡

¡¡¡¡¾åµ¤Î±Õ¾½É½¼¨¥×¥í¥°¥é¥à¤Ï¥Ç¥Õ¥©¤Ç²¼µ¤Î¥é¥¤¥Ö¥é¥ê/¥É¥é¥¤¥Ð¤ò
¡¡¡¡Í¸ú¤Ë¤·¤Æ¤Þ¤¹¡£
¡¡¡¡¡¡¡¡-libjpeg
¡¡¡¡¡¡¡¡-libpng
¡¡¡¡¡¡¡¡-giflib
¡¡¡¡¡¡¡¡-FONTX2¥É¥é¥¤¥Ð
¡¡¡¡¡¡¡¡-Äñ¹³Ëì¼°/ÍÆÎÌÀ¥¿¥Ã¥Á¥Ñ¥Í¥ë¥É¥é¥¤¥Ð(ÆÃÄê¤Î¥Ü¡¼¥É¸ÂÄê)
¡¡¡¡¡¡¡¡-HelixMP3¥Ç¥³¡¼¥À(ÆÃÄê¤Î¥Ü¡¼¥É¸ÂÄê)
¡¡¡¡¡¡¡¡-HelixHE-AAC¥Ç¥³¡¼¥À(ÆÃÄê¤Î¥Ü¡¼¥É¸ÂÄê)
¡¡¡¡¿ôʬ¤Û¤É»þ´Ö¤¬¤«¤«¤ê¤Þ¤¹¡£Warning¤¬½Ð¤Þ¤¹¤¬¥Ó¥ë¥É»þ¤ÎÀßÄê´µ¯¤Î
¡¡¡¡¤¿¤á¤Ë¥½¡¼¥¹¥³¡¼¥ÉÃæ¤Ë"#warning"¥×¥ê¥×¥í¥»¥Ã¥µ¤ò´º¤¨¤ÆÆþ¤ì¤Æ¤ë²Õ½ê¤¬
¡¡¡¡¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¤Î¤Çµ¤¤Ë¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£
¡¡¡¡¥¨¥é¡¼¤¬½Ð¤Æ¥Ó¥ë¥É¤¬»ß¤Þ¤Ã¤¿¾ì¹ç¤Ï³Æ¼ïÀßÄê¤ò¸«Ä¾¤·¤Þ¤·¤ç¤¦¡£Ëؤɤξì¹ç¡¢
¡¡¡¡makefileÃæ¤ÇPATH¤ÎÀßÄê¤ò¸í¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¡¡¤Á¤Ê¤ß¤Ë"make all"¤Ï¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥ª¥Ö¥¸¥§¥¯¥È¤òÁ´Éô¾Ã¤·¤Æ¤Þ¤Ã¤µ¤é¤Ë
¡¡¡¡¤·¤Æ¤«¤é¥Ó¥ë¥É¡¢"make build"¤Ï¤¹¤Ç¤Ë¥ª¥Ö¥¸¥§¥¯¥ÈÅǤ«¤ì¤¿¥½¡¼¥¹¤Ï¥¹¥ë¡¼
¡¡¡¡¤·¤Æ¥Ó¥ë¥É(¥½¡¼¥¹¥³¡¼¥É¤ò°ìÉô½ñ¤´¹¤¨¤Æ¥«¥Ã¥È&¥È¥é¥¤¤·¤¿¤¤¤È¤¤ËºÇŬ)¤Ç¤¹¡£
¡¡¡¡"make clean"¤Ï¤½¤Î̾¤Î¤È¤ª¤êÀ¸À®¤µ¤ì¤¿elf¤ähex¥Õ¥¡¥¤¥ë´Þ¤á¤Æ¥¢¥»¥ó¥Ö¥é
¡¡¡¡¥ê¥¹¥È¥Õ¥¡¥¤¥ë¤ä¥ª¥Ö¥¸¥§¥¯¥È¤ò¤Þ¤ë¤Ã¤È¾Ãµî¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¤ª¼¡¤Ï¥¿¡¼¥²¥Ã¥ÈCPU¤Ø¤Î½ñ¤¹þ¤ß&¥Ç¥Ð¥Ã¥°¤Ç¤¹¤¬¡Ä¼¡²ó¤Ë³¤¤Þ¤¹¡£
STM32F2¥·¥ê¡¼¥º¤ò»È¤Ã¤Æ¤ß¤ë3
4·î¤«¤éËÜÅö¤Ë¾¯¤·¤º¤Ä»È¤¤»Ï¤á¤¿STM32F207¤Ç¤¹¤¬¡¢¸ø¼°¤ÎÊý¤â¤ä¤Ã¤È¤³
»ñÎÁ¤¬½Ð¤½¤í¤Ã¤Æ¤¤Æ¤À¤¤¤Ö°·¤¤Êý¤¬Íý²ò¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤Þ¤·¤¿¡£
¤È¤ê¤¢¤¨¤º°ì¤Ä¤ÎÄ̲áÅÀ¤È¤¤¤¦¤³¤È¤Ç¤¤¤Ä¤â¤Îchan»á¤ÎLPC2388¸þ¤±¤ÎFatFs
+OLEDɽ¼¨¥×¥í¥°¥é¥à¤Î°Ü¿¢¤ò¤·¤Þ¤·¤¿(¤Û¤È¤ó¤É¸¶·Á¤È¤É¤á¤Æ¤Þ¤»¤ó¤¬¡Ä)¡£
¤¤¤í¤¤¤í¤ä¤Ã¤Æ¤¤¿Ãæ¤Çjpeg¥Ç¥³¡¼¥À¾è¤»¤¿¤ê(¥Ç¥³¡¼¥É¤¬1.8ÇÜ®¤¯¤Ê¤Ã¤Æ¤ë!)
FONTX2¤Î»È¤¤Êý³Ð¤¨¤¿¤ê¤Çº£²ó¤ÏM+¥Õ¥©¥ó¥È(FONTX2)¤ò»È¤¤Filer¤Î
ÆüËܸìɽ¼¨¤ò²Äǽ¤Ë¤·¤Æ¤ß¤Þ¤·¤¿¡£
¢¬¤ä¤Ã¤È¤³¤³¤Þ¤Ç¤³¤ì¤¿¡Ä
¤Ê¤ó¤ÈÅö¤Îchan»á¤â6/11¹¹¿·¤ÎLPC2368¸þ¤±FatFs¥µ¥ó¥×¥ë¤ÇFiler¤Î
ÆüËܸ첽¤ò¤µ¤ì¤Æ¤¤¤¿¤è¤¦¤Çº£Å٤Ϥ³¤Á¤é¤ò¸µ¤Ë¤·¤Æ¤ª¤ê¤Â¤Ê¤ë¤ÊFiler¤Î
¹½ÁÛ¤òÎý¤Ã¤Æ¤¤¤¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
¤½¤¦¤½¤¦¡¢µ¤¤Ë¤Ê¤ëFatFs¤ÎÆÉ¤ß¼è¤ê®Å٤Ǥ¹¤¬¡¢SDIO¤¬½Ð¤»¤ëºÇ¹â®ÅÙ¤Î
48MHz¤Þ¤Ç¥¯¥í¥Ã¥¯¤ò°ú¤¾å¤²¤¿¾ì¹ç¡¢ºÇÂç21MB/Sec¤ò᤽Ф¹¤³¤È¤¬
¤Ç¤¤Þ¤·¤¿¡ª
¢¬¤Æ¤«¤¤¤Ä¤âÈæ³Ó¤Ë»È¤Ã¤Æ¤ëATPÀ½¤ÎmicroSD¥«¡¼¥É¤â¤¹¤´¤¤¡Äclass6¤Ê¤Î¤Ë¡£
¤·¤«¤·¡¢48MHzưºî¤Ï8bit¥â¡¼¥É¤·¤«Êݾڤ·¤Æ¤¤¤Ê¤¤(rm0033.pdf¤è¤ê)¤Î¤Ç
sd¥«¡¼¥É¤Ç»È¤¦¤È¤¤Ï¼ÂºÝ¤Ï24MHz¤Çư¤«¤¹¤³¤È¤Ë¤Ê¤ë¤Î¤Ç¤¹¤¬
¡Ä¤½¤ì¤Ç¤â½½Ê¬Áᤤ¤Ç¤¹¤Í¡£
¤ª¤¤Ð¤Ë¤Ï¤¹¤Ç¤Ë¾åµ¤Ç¾Ò²ð¤·¤¿STM32F207ZGT6¸þ¤±¤Î¥×¥í¥°¥é¥à¤ò
¸ø³«¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤ÏPowerAVRÀ½¤Î¹Èµí(¤â¤È¤ÏSTM32F103ZET6)¤È¤¤¤¦
¥Ü¡¼¥É¤Î²óÏ©¸ß´¹¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤Í¤à¤¤¤µ¤óSTM32F2¸þ¤±¤ËÈ÷¤¨¤Æ¤«¤Ê¤êÁ°¤Ëtaobao¤ÇÉôÉÊ̤¼ÂÁõ¤Î´ðÈÄ
"¤À¤±"Ķ°Â²Á¤Ç¹ØÆþ¤·¤Æ¤¤¤Þ¤·¤¿¡£¤Æ¤ï¤±¤Ç¥Û¥ó¥È¤ËºÇÄã¸Â¤Î¤³¤È¤·¤«
¤Ç¤¤Ê¤¤¤Î¤Ç¤¹¤¬F2¤ò»î¤¹¤ËÅö¤¿¤Ã¤Æ¤Ï¤³¤Ã¤Á¤ÎÊý¤¬´öʬÅԹ礬¤è¤¤¤Î¤Ç¤¹¡£
¤³¤³¤«¤é¤É¤ó¤É¤óÉÕ¤±Â¤·¤Æ¤¤¤¤Þ¤¹
¤Þ¤¿make¥Õ¥¡¥¤¥ëÆâ¤ÎÄêµÁ¤Î½ñ¤´¹¤¨¤Ë¤è¤Ã¤Æ°ÊÁ°»È¤Ã¤Æ¤¤¤¿STM32F207VGT6
¸þ¤±¤Ë¤âÂбþ¤Ç¤¤Þ¤¹¡£
STM32F207VGT6¤ÎÊý¤Ï¤³¤Á¤é¤Î(STM32F103VET6)¥Ü¡¼¥É¤Î
²óÏ©¸ß´¹¤Ç¤¹¡£Î¾¼Ô¤Ë¶¦Ä̤¹¤ë¤Î¤ÏFSMC¤Î¥Ô¥ó¤¬°ú¤½Ð¤µ¤ì¤Æ¤¤¤Æ½ÐÍè¹ç¤¤¤Î
LCD¥Ü¡¼¥É¤¬Ä¾·ë¤Ç¤¤ë¤È¤¤¤¦ÅÀ¤Ë¿Ô¤¤Þ¤¹
(☝TFT-LCD¥Þ¥Ë¥¢¤Ê¿Í¤Ë¤ÏͽÅÍפʥե¡¥¯¥¿¡¼)¡£
¤Þ¤¡¥Ç¡¼¥¿¥·¡¼¥È¤Ç1xx·Ï¤È¤Î¥Ô¥ó¤Î½èÍýÊýË¡¤Î°ã¤¤¤È¤«¤È¤«
¾Ü¤·¤¯²òÀ⤵¤ì¤Æ¤¤¤Þ¤¹¤ó¤Ç¡¦¡¦¡¦¡¦¡¢
Æüº¢¤Í¤à¤¤¤µ¤ó¤Î¤Ö¤í¤°ÆÉ¤ó¤Ç¤ë¿Í¤Ê¤é´Êñ¤Ë¾è¤»´¹¤¨²Äǽ¤Ç¤·¤ç¤¦¡£
¤¢¤È³«È¯´Ä¶¤Îtips¤È¤·¤Æ¡¢Á°²ó¤âÀâÌÀ¤·¤Þ¤·¤¿¤¬CodeSourceryG++Åù¤Î
¥Ý¥Ô¥å¥é¡¼¤ÊGCC³«È¯´Ä¶¤Ï¤½¤Î¤Þ¤Þ»ÈÍѤǤ¤Þ¤¹¡£Cortex-M3Âбþ¤Ê¤é
²¿¤Ç¤â¤è¤¤¤Ç¤·¤ç¤¦¡£ÌäÂê¤Ï½ñ¤¹þ¤ß´Ä¶¤Ç¤¹¤¬¡Ä20110619¸½ºß¤Ï¥·¥¹¥Æ¥à
¥á¥â¥ê¾å¤Î¥Ö¡¼¥È¥í¡¼¥À¤«¤é»ÈÍѤǤ¤ë¥Õ¥ê¡¼¤Î¥Ä¡¼¥ë¤¬¤Þ¤ÀÀ°¤ï¤º¡¢
¤è¤Ã¤ÆJTAG/SWD¤«¤é¤·¤«½ñ¤¹þ¤àÊýË¡¤¬¤¢¤ê¤Þ¤»¤ó¡£¹¬¤¤OpenOCD¤Î0.5.x·Ï¤È
Versaloon¤Ï¤¹¤Ç¤ËSTM32F2·Ï¤Î¥Õ¥é¥Ã¥·¥å¤Î½ñ¤¹þ¤ß¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£
»ä¤â¥Õ¥é¥Ã¥·¥å½ñ¤¹þ¤ßÍѤÎOpenOCD¥³¥ó¥Õ¥£¥°¤ò¸ø³«¤·¤Æ¤¤¤Þ¤¹¤Î¤ÇJTAG¤Ê
¤¤¤·¤ÏSWD¤Ç¤Ä¤Ê¤²¤é¤ì¤ë¥¢¥À¥×¥¿»ý¤Ã¤Æ¤ë¿Í¤Ï³«È¯¤ËºÝ¤·¤ÆÌäÂê¤Ï¤Ê¤¤¤Ç¤¹¡£
ºÇ¸å¤Ë¡¢¼¡²óͽÄê¤ÎLPC2388´ØÏ¢¤Îµ»ö¤Ç¾Ü¤·¤¯²òÀ⤷¤Þ¤¹¤¬¡¢64bitÈÇ
Windows7´Ä¶²¼¤Î¥Ó¥ë¥É¤Ë¤âmakefile¤ÎÀßÄê¤ÇÂбþ¤Ç¤¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ê¤Þ¤¹¡£
Éû¶ÈÀè¤Î¥Ý¥¸¥·¥ç¥ó¤ÈPC´Ä¶¤¬¥¬¥é¥Ã¤ÈÊѤï¤Ã¤¿¤Î¤Ç¤Í¤à¤¤¤µ¤ó¤âɬÍפË
Ç÷¤é¤ì¤Æ¤È¤¤¤¦¤Î¤â¤¢¤Ã¤¿¤ê¤·¤Æ¤Þ¤¹¡£
¤Í¤à¤¤¤µ¤ó¤È¤¦¤È¤¦½¾¶È°÷B¤«¤éÀ²¤ì¤Æ¥¨¥ó¥¸¥Ë¥¢¤Ë¤¸¤ç¤Ö¤Á¤§¤ó¤Â¡ª
(¤ä¤Ã¤Æ¤ë¤³¤ÈÁêÊѤï¤é¤º»¨ÍѤÀ¤¬)
¤ª¤Þ¤±¡§
aitendo¤µ¤ó¤«¤é¤Ä¤¤¤Ë¤¢¤Î°·¤¤¤ä¤¹¤¤SPI±Õ¾½¤¬ÈÎÇ䤵¤ì¤Þ¤·¤¿¤Í¡£
°ÊÁ°»ä¤¬ÀâÌÀ¤·¤¿ÅۤǤ¹¡£¤³¤ì»È¤Ã¤¿¥·¡¼¥ë¥É¤È¤«¤â³¤³°¤Ç¤Ï¤â¤¦¤¹¤Ç¤ËÈÎÇ䤵¤ì¤Æ
¤Þ¤¹¤¬¡¢TFT-LCD Shield¤ò³«È¯¤·¤¿»þ¤ÎÀ¸´ðÈĤòÍøÍѤ·¤ÆÌµÍý¤ä¤ê¾è¤Ã¤±¤Æ¤ß¤Þ¤·¤¿¡ª
¼¡¤Ï¤³¤ì¤Ç¹Ô¤³¤¦¡£
¤½¤·¤Æaitendo¤µ¤ó¤«¤é¤Ï¤â¤¦°ì¤ÄQCIF¥µ¥¤¥º¤Î¥¿¥Ã¥Á¥Ñ¥Ã¥É¤Ä¤¤Î±Õ¾½¤¬È¯Ç䤵¤ì¤Þ
¤·¤¿¡£¤³¤ì³Î¤«taobao¤Ç¼Î¤ÆÃͤÇÇä¤é¤ì¤Æ¤Æ»ä¤â10Ë礯¤é¤¤¤Þ¤È¤á¤ÆÇã¤Ã¤ÆÆ°¤«¤·¤Æ
(˰¤¤ÆÊüÃÖ)¤·¤Æ¤Þ¤·¤¿¡£¤³¤ì8/16bitÁªÂò¤Ç¤¤ë¤Î¤ÏÎɤ¤¤Î¤Ç¤¹¤¬¡¢¥Ô¥ó´Ö³Ö¤¬0.7mm
¤Ê¤Î¤Ç¼êÇÛÀþ¤Ç¤Ï¤¤Ä¤¤¿Í¤¬¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¤Ç¤¹¤Í¡£ÀìÍѤÎÊÑ´¹¥Ü¡¼¥É½Ð¤ë¤ÎÂԤä¿
Êý¤¬Îɤ¤¤È»×¤¤¤Þ¤¹¡£¤É¤Á¤é¤«¤È¤¤¤¦¤È¡Ä¡¢
¤³¤Ã¤Á¤È¤«
¤³¤Ã¤Á¤È¤«
¤³¤Ã¤Á
¤ÎÊý¤¬¥Ô¥ó´Ö¹¤¤¤·8bit¸ÇÄê¤Ç¾®Æñ¤·¤¤¤³¤È¹Í¤¨¤Ê¤¯¤ÆÎɤ¯¤Æ¤è¤¤¤È»×¤¤¤Þ¤¹¡£
»×¤¤¤Þ¤¹¤è¤¥¡ª¡ª(½Åʸ)
¢¬AS021350D¤òXMEGA¤Çư¤«¤·¤Æ¤ß¤¿¤È¤³¤í¡£
¼Â¤ÏATXMEGA128A1¤Ë¤âchan¤µ¤ó¤ÎFiler¤òÆüËܸìÂбþ¤·¤Æ°Ü¿¢¤ËÀ®¸ù¤·¤Æ¤Þ¤¹¡£
¤·¤«¤·XMEGA¤ÏFatFs¤ò·ë¶ÉDMA²½¤Ç¤¤Ê¤¤¤Þ¤ÞÇò´ú¹ß¤Ã¤Æ¥¯¥í¡¼¥º¤·¤Þ¤¹¡Ä¡£
20230701ÄÉ:
DMA²½¤·¤ÆSRAM¤â³°ÉÕ¤±¤·¤Þ¤·¤¿¤è¤¦¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª£±¡ª¡ª¡ª
XMEGA¤ò»È¤Ã¤Æ¤ß¤ë4
¤¿¤Ì
¤¿¤Ì
¤¿¤Ì¡ª
¤Í¤à¤¤¤µ¤ó¤â¤Ä¤¤¤Ë¤¿¤Ì¤¿¤Ì¤ÎOWNER¤Ë¤Ê¤ì¤¿¡Ä
Îɤ¤¤³¤È¤¢¤ë¤ÈÎɤ¤¤Ç¤¹¤Í¡Á♥Ë¡ÌÀ±¡¤Ç¸«¤¿¤È¤°ÊÍè¹û¤ì¤³¤ß¤Þ¤·¤¿♥
¤Á¤Ê¤ß¤Ë¤³¤Î»Ò¡¢Á°²ó¤¿¤Ì¤Â¼¹Ô¤Ã¤¿»þ¤Ë¥²¥Ã¥Ä¤·¤¿¤È¸À¤Ã¤Æ¤¤¤¿Êª¤Ç¤¹¡ª
¡Ä¤µ¤ÆËÜÂê¡¢Windows¾å¤ÇGCC¤Ë¤ÆAVR/XMEGA¤Î³«È¯¤¬¼ê·Ú¤Ë¤Ç¤¤ë"WinAVR"¤Ï¡¢
20100110ÈǤdz«È¯¤Ï½ªÎ»¤·¤Æ¤ª¤ê¸½ºß¤ÏATMEL¸ø¼°¤«¤éÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¤Ø¤È¤Ò¤¤Ä¤¬¤ì¤Æ¤¤¤Þ¤¹¡£
AVR ToolChain
¤½¤·¤Æ°ÊÁ°¤«¤éÈó¸ø¼°¤Ç³¤³°¤Î·Ç¼¨ÈĤǽвó¤Ã¤Æ¤¤¤¿ÍÍѤÊProgramMemory
¥¢¥¯¥»¥¹¤Î°Ù¤Î¥Þ¥¯¥í¤¬º£²ó¤«¤éÀµ¼°¤Ë¤È¤ê¤³¤Þ¤ì¤Æ¤¤¤¿¤ê¤¹¤ë¤Î¤Ç¤³¤³¤¤¤é¤Ç
¤Á¤ç¤Ã¤È¤Þ¤È¤á¤Æ¤ß¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
¤½¤â¤½¤â¤Î¤Ï¤¸¤Þ¤ê¤ÏXMEGA¿¨¤ê½Ð¤·¤¿µîǯ¤Ë¤µ¤«¤Î¤Ü¤ê¤Þ¤¹¡£¤¤¤í¤¤¤í
ʸ¶ç¿â¤ì¤Ê¤¬¤éXMEGA¤òư¤«¤·¤ÆÍ褿¤ï¤±¤Ç¤¹¤¬ARM¤Ç¤Ï¤ªÃã¤Î»Ò¤µ¤¤¤µ¤¤¤Ç
¤Ç¤¤¿¤Ï¤º¤Î"FontX2¥Õ¥¡¥¤¥ë¤Î¤è¤¦¤ÊÂçÍÆÎ̤Υǡ¼¥¿¤òÇÛÎó¤È¤·¤ÆËä¤á¹þ¤à"
¤³¤È¤¬¤Ç¤¤Ê¤¤¤È¤¤¤¦ÅÀ¤Çíµ¤¤¤¿¤³¤È¤«¤é¤Ç¤·¤¿¡£¤³¤ìAVR¤ÎÀ©Ìó¤È¤¤¤¦¤è¤ê
AVR-GCC¤ÎÀ©Ìó¤È¸À¤Ã¤¿Êý¤¬Àµ¤·¤¤¤Î¤Ç¤¹¤¬¡¢
£±¡¥°ú¿ô¤¬32767°Ê¾å¤ÎÇÛÎó¤ò³ÎÊݤ¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤
£²¡¡uint32_t¤ÎÇÛÎó¤È¤·¤Æ¥Ð¥¤¥È¿ô¤ò²Ô¤´¤¦¤È¤·¤Æ¤â¤½¤â¤½¤â¹ç·×32767¥Ð¥¤¥È
¡¡¡¡°Ê¾å¤Ë¤Ê¤ëÇÛÎó¤ò³ÎÊݤ¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤
£³¡¥64kb°Ê¾å¤Î¥á¥â¥êÎΰè¤Î¥¢¥É¥ì¥¹¤ËÄ̾ï¤Î¥Ý¥¤¥ó¥¿¤ò»È¤Ã¤ÆÍưפË
¡¡¡¡¥¢¥¯¥»¥¹¤¬¤Ç¤¤Ê¤¤
¤Èʬ¤«¤ëÈϰϤǾ夲¤Þ¤·¤¿¤¬¡¢ÉáÄ̤ÏAVR»È¤¤¤Î¿Í¤Ï¥Õ¥é¥Ã¥·¥å¥á¥â¥êÍÆÎÌ64kb
°Ê²¼¤ÎAVR¤ò»È¤¤¥Õ¥©¥ó¥ÈÅù¤ÎÂçÍÆÎ̤Υǡ¼¥¿¤ÏSD¥«¡¼¥É¤ËÃÖ¤¤¤Æ¤½¤³¤«¤é
¥¢¥¯¥»¥¹¤¹¤ë¤È¤¤¤¦¼êÃʤ¬¾ïÅå¤È¤Ê¤Ã¤Æ¤¤¤Æº£²ó»ä¤Î¤è¤¦¤Ë²£Ã夷¤ÆC¤ÎÇÛÎó
¤È¤·¤ÆÂçÍÆÎ̤Υǡ¼¥¿¤ò¥Õ¥é¥Ã¥·¥å¤Ë¾Æ¤¤³¤à¤è¤¦¤Ê¤³¤È¤ò°Â°×¤Ë¹Í¤¨¤ë¤È
¤³¤ÎÌäÂê¤Ë°ú¤Ã¤«¤«¤ë¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£
¤³¤ì²¿¤È¤«¤Ê¤é¤Ê¤¤¤«¤È¤¤¤í¤¤¤í¸¡º÷¤·¤ÆÄ´¤Ù¤Æ¤¤¤ë¤È¿ôǯÁ°¤ËŽ¢£Ð£É£Ã¡¡
£Á£Ö£Ò¡¡¹©ºî¼¼Ž£¤Înekosan»á¤âƱ¤¸ÌäÂê¤Ë
Åö¤¿¤é¤ì¤Æ¤¤¤¿¤è¤¦¤Ç¤³¤ÎÀ©Ìó¤Ë¤Ä¤¤¤ÆÈó¾ï¤Ë¿¼¤¤¹Í»¡¤ò¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¡£
nekosan»á¤ÏºÇ½ªÅª¤ËÀ©Ìó¤Ë°ú¤Ã¤«¤«¤é¤Ê¤¤¤è¤¦¤Ë¤¤¤¯¤Ä¤«Ê¬³ä¤·¤¿ÇÛÎó¤È¤·¤Æ
¥¢¥¯¥»¥¹¤¹¤ëÊý¼°¤Ë¤µ¤ì¤¿¤è¤¦¤Ç¤¹¡£¤Þ¤¿Æ±Æü¤Î¥³¥á¥ó¥ÈÍó¤Ë¤Ïnekosan»á¤È
Chuck»á¤Î¤ä¤ê¼è¤ê¤¬¤¢¤ê¡¢¤½¤ÎÃæ¤ÇÃæ¤ËGET_FAR_ADDRESS¤È¤¤¤¦Ã±¸ì¤¬
½Ð¤Æ¤¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ï¸å½Ò¤·¤Þ¤¹¤¬"£³¡¥"¤ÎÀ©Ìó¤ò²ò¾Ã¤¹¤ë¤¿¤á¤ÎÈó¾ï¤Ë
½ÅÍפʥ¡¼¥ï¡¼¥É¤È¤Ê¤ê¤Þ¤¹¡£
¤µ¤Æ¡¢À©Ìó¤Ï¤ï¤«¤Ã¤¿¤±¤É¼ÂºÝ¤É¤¦¤¹¤ê¤ã¤¤¤¤¤Î¤È¸À¤¦Ïäˤʤê¤Þ¤¹¤¬¡¢
»ä¤Ï¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë¤òľÀÜ¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤·¤Æ¾Æ¤¤³¤ó¤ÇC¤«¤é¤Ï
¥¤¥ó¥Ç¥Ã¥¯¥¹¤À¤±°ú¤ÃÄ¥¤Ã¤ÆÍ褿¤é¤¤¤¤¤ó¤¸¤ã¤Í¡©¤È¹Í¤¨¡¢¤µ¤é¤Ë¥°¥°¤Ã¤Æ¤ß¤ë¤È
avr-freaks¤Î¥Õ¥©¡¼¥é¥à¤Ëavr-objcopy¤Ç¹Ô¤¦ÊýË¡¤Î
µÄÏÀ¤¬¤¢¤ê¤Þ¤·¤¿¡Ä¤Ã¤Æ²¿Ç¯¤âÁ°¤À¤±¤É¤³¤ì¤¢¤Ã¤Á¤Ç¤ÏFAQ¥ì¥Ù¥ë¤Ê¤Î¤«¡Ä
ÃÖ¤¾ì¤Ë¤¢¤ëxmega¤ÎFatFS+TFT-LCDɽ¼¨¤Î¥Ç¥â¤Ë¤Ïmake¥Õ¥¡¥¤¥ëÃæ¤Ë
¶ñÂÎŪ¤ËÈþºé¥Õ¥©¥ó¥È¤òAnk¤È´Á»ú¤È¤â¤Ë¥ª¥Ö¥¸¥§¥¯¥È²½¤·elf¤Ë¼è¤ê¹þ¤à¤¿¤á¤Î
µ½Ò¤ò¤·¤Æ¤¢¤ê¤Þ¤¹¡£
¤ó¤Ç¤³¤ì¤òC¤«¤é¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë¤Ïavr-objcopy¤ÇÅǤ«¤ì¤¿¥é¥Ù¥ë¤ò
»²¾È¤¹¤ì¤Ð¤ª£ë¤Ç¤¹♥
¡Ä¤È¸À¤¤¤¿¤¤¡¡¤È¡¡¤³¡¡¤í¡¡¤À¡¡¤¬¡ª
64kByte°Ê¾å¥×¥í¥°¥é¥à¥á¥â¥ê¤ò»ý¤ÄAVR¤Ë¤ª¤¤¤Æ¡¢64kByte°Ê¾å¤ÎÎΰè¤Ë
¤¤¤Ä¤â¤ÎÄ´»Ò¤Ç¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤¹¤ë¤È¤ª¼¡¤Ï"£³¡¥"¤ÎÀ©Ìó¤Ë¤¢¤¿¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¤½¤â¤½¤âavr-gcc¤Ï¥¢¥É¥ì¥¹¤¬16bit¤È¤·¤Æ½èÍý¤µ¤ì¤Æ¤¤¤Æ¡¢64kb°Ê¾å¤Î
¥á¥â¥êÎΰè¤Ë¥¢¥¯¥»¥¹¤¹¤ë»þ¤ÏÈó¾ï¤ËÅԹ礬°¤¤¤Ç¤¹(int·¿¤¬16bit¤Ê¤Î¤«¤é
¤ª»¡¤·¤Ç¤¤ë¤È»×¤¤¤Þ¤¹)¡£¤¿¤È¤¨¤Ð¡Ä
prog_char inaisan[] = "daisuki!";
¤È¤¤¤¦¥×¥í¥°¥é¥à¥á¥â¥ê¾å¤Î¥Ç¡¼¥¿¤ò»²¾È¤¹¤ëºÝ¤Ë¤³¤Î¥Ç¡¼¥¿¤¬¥×¥í¥°¥é¥à
¥á¥â¥ê¾å¤Î64kByte°Ê¾å¤Î¥¢¥É¥ì¥¹¤ÎÎΰè¤Ë¤¢¤Ã¤¿¾ì¹ç¡¢
pgm_read_byte_far((uint_farptr_t)inaisan);
¤Ã¤Æ¤ä¤Ã¤Æ¤âÇÛÎóinaisan¤ÎƬ¤Î¥Ç¡¼¥¿'d'¤ÏÆÉ¤ß½Ð¤»¤Þ¤»¤ó¡£ËÜÍè¤Î¥¢¥É¥ì¥¹
¤«¤é65535¤µ¤Ã¤Ô¤«¤ì¤¿¥¢¥É¥ì¥¹¤Ë¤¢¤ëÆÜÄÁ´Á¤Ê¥Ç¡¼¥¿¤¬Ê֤äƤ¯¤ë¤Ç¤·¤ç¤¦¡£
¤³¤ì¤ÏËÜÍè24bit¤¢¤ë¤Ï¤º¤ÎÇÛÎó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î¥¢¥É¥ì¥¹¤òƬ8bitʬ¥«¥Ã¥È
¤·¤¿16bit¤ÇÅϤ·¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¹(¥Ý¥¤¥ó¥¿ÊÑ¿ô¤ò²ðºß¤µ¤»¤Æ¤â¥Ý¥¤¥ó¥¿¤Î
¥µ¥¤¥º¤â16bit¤Ç¡¢16bitʬ¤Î¥¢¥É¥ì¥¹¤·¤«É½¸½¤Ç¤¤Ê¤¤¤«¤éƱ¤¸·ë²Ì)¡£
¤³¤ì¤ò²ò¾Ã¤¹¤ë¤Î¤¬GET_FAR_ADDRESS¤È¤¤¤¦¥Þ¥¯¥í¤Ç¡¢uint32_t·¿¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£
¤³¤Î¥Þ¥¯¥í¤òÄ̤¹¤Èpgm_read_byte_farÅù¤ÎELPM¤ò»È¤¦´Ø¿ô¤Ø24bit¥¢¥É¥ì
¤È¤·¤ÆÀµ¾ï¤ËÃͤòÅϤ¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤Þ¤¿¡¢¤³¤Î¥Þ¥¯¥í¤ÏĹ¤é¤¯Èó¸ø¼°¤Ç¤·¤¿¤¬
¸½ºßATMEL¤«¤éÇÛÉÛ¤µ¤ì¤Æ¤¤¤ëAVR Toolchain¤Ç¤Ïpgm_get_far_address¤È
̾¤ò¤«¤¨¤Æ¸ø¼°¤Ë¤È¤ê¤³¤Þ¤ì¤ë¤³¤È¤È¤Ê¤ê¤Þ¤·¤¿¡£¤á¤Ç¤¿¤·¤á¤Ç¤¿¤·¡£
¡Ä»ä¤ÎÀâÌÀʬ¤«¤ê¤º¤é¤¤¤«¤é³Æ¼«pgmspace.h¸«¤¿Êý¤¬Áᤤ¤È»×¤¤¤Þ¤¹¡Ä¡£
¢¬¤ó¤Ç¡¢¸«¤¿Ìܤϵîǯ¤ÈÁ´¤¯ÊѤï¤ê±Ç¤¨¤·¤Þ¤»¤ó¤¬¾åµ¤Î¤¹¤Ù¤Æ¤òÈ¿±Ç¤µ¤»¤Æ¡¢
¡¡AVR Toolchain¤Ç¥Ó¥ë¥É¤·¤ÆÆ°¤«¤·¤¿XMEGA¤Î¥Ç¥â¤µ¤ó¡£
¡¡¤ä¤Ã¤ÑARM¤ÎÊý¤¬ÁȤߤ䤹¤¤¤Ê¤¡¡Ä¤È»×¤¦¤³¤È¤Ò¤È¤·¤¤ê
¤Ä¤é¤Ä¤é¤È¤Þ¤È¤Þ¤ê¤¤ì¤Ê¤¤¤Þ¤È¤á¤ò½ñ¤¤¤Æ¤ß¤Þ¤·¤¿¤¬¡¢WinAVR¤«¤éAVR Toolchain¤Ë
ÊѤï¤Ã¤Æ¤«¤éµ¤¤Å¤¤¤¿¤³¤È¤ÎTips¤È¤«
¡üunix¥é¥¤¥¯¤Ê¥Ä¡¼¥ë·²
¡¡WinAVR¤Ë¤ÏARM¥Þ¥¤¥³¥ó¤Î¥Ó¥ë¥É¤Ë¤â½ÅÊõ¤·¤¿utils¥Õ¥©¥ë¥ÀÆâ¤Îmake¤ò´Þ¤à
unix¥é¥¤¥¯¤Ê¥Ä¡¼¥ë·²¤¬¤¢¤Ã¤¿¤Î¤Ç¤¹¤¬ATMEL¸ø¼°¤«¤éÇÛÉÛ¤µ¤ì¤¿AVR Toolchain
¤Ë¤Ï¸ºß¤·¤Þ¤»¤ó¡ªÂå¤ï¤ê¤Ëavr-gcc¤ÈƱ¤¸¥Õ¥©¥ë¥À¤ËƱÅù¤Îµ¡Ç½¤Î¤â¤Î¤¬°ìÀÚ
¹çºâ¤Ö¤Á¹þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢»È¤¤¤ä¤¹¤µ¤ò¹Í¤¨¤ë¤ÈWinAVR¤Îutils¥Õ¥©¥ë¥À¤À¤±
Êݸ¤·¤È¤¤¤ÆµìÍè¤ÎWinAVR¤è¤í¤·¤¯¥Ó¥ë¥É»þ¤Ë¤Ï¤½¤³¤«¤émake¸Æ¤Ó½Ð¤»¤é¤ì¤ë¤è¤¦¤Ë
¤¹¤ì¤Ð¥â¥¢¥Ù¥¿¡¼¤À¤È»×¤¤¤Þ¤¹¡£
»ä¤ß¤¿¤¤¤Ê¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ó¥ë¥ÉÌîϺ¸þ¤±¤Ç¤¹¤¬¡¼¡ª
20121130ÄÉ¡§
¡¡WinAVR¤Ï¤â¤Ï¤ä»þÂåÃÙ¤ì¤Ç¤¹¡£WinAVR¤Ë¤Ä¤¤¤Æ¤¤¤¿utils¤ÎÂåÍѤÏ
¡¡¤³¤Á¤é¤ò¤´Í÷¤¯¤À¤µ¤¤¡£
¡üEBI¤ÎSRAM¥â¡¼¥É
¡¡24¥Ó¥Ã¥È¥¢¥É¥ì¥¹¤Î¥¢¥¯¥»¥¹¤ÎÌäÂê¤Ï¥×¥í¥°¥é¥à¥á¥â¥ê¤Î»þ¤ÎÌäÂê¤À¤±¤Ç¤Ï¤Ê¤¯¡¢
¡¡¤â¤Á¤í¤óI/OÎΰè¤Ë¤âÇȵڤ·¤ä¤¬¤ê¤Þ¤¹¡£¸·Ì©¤Ë¸À¤¦¤ÈAVR Toolchain¤È¤Ï¤¢¤ó¤Þ¤·
¡¡´Ø·¸¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢ATMELÇÛÉÛ¤ÎXMEGA¤ÎEBI¤ÎSRAM¥¢¥¯¥»¥¹¤Î¥Ç¥â¤¬ÃÏÌ£¤Ë
¡¡¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤·¤Æ¤¤¤Æ¡¢pgm_get_far_address¤è¤í¤·¤¯24bit¥¢¥É¥ì¥¹ÍѤÎ
¡¡¥Þ¥¯¥í¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡
¡¡¤Í¤à¤¤¤µ¤óxmega»È¤Ã¤Æ¤³¤ì°Ê¾å¤ä¤ëµ¤¥Ê¥Ã¥·¥ó¥°¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤«¤é
¡¡¤¢¤ó¤Þ¤·´Ø·¸¤Ê¤¤¤Ç¤¹¤¬¡Ä
¡üdelay.h
¡¡AVR Toolchain¤ËÊѤ¨¤¿¤émakefile¤ÇÀµ¤·¤¯¥¯¥í¥Ã¥¯¼þÇÈ¿ô¤òÀßÄꤷ¤Æ¥Ò¥å¡¼¥º¤â
¡¡´Ö°ã¤Ã¤Æ¤Ê¤¤¤Î¤Ë°ÊÁ°¤È°ã¤Ã¤Æ¤Á¤ã¤ó¤Èư¤«¤Í¤§¡ª1¡ª¤È¤ªÃ²¤¤ÎÊý¡¢utils/delay.h¤ò
¡¡¤è¡Á¤¯¸«¤Æ¤¯¤À¤µ¤¤¡£
¡¡HAS_DELAY_CYCLES¤È¤¤¤¦define¤ò1¤«¤é0¤Ë¤¹¤ë¤È¹¬¤»¤Ë¤Ê¤ì¤ë¤«¤â¡Ä¡£
¡¡¼ã¤·¤¯¤Ï»ä¤ß¤¿¤¤makefileÃæ¤Çavr-gcc¤ËHAS_DELAY_CYCLES=0¤ÎÄêµÁ¤òÅϤ·¤Æ
¡¡¤ä¤ë¤È¤è¤¤¤Ç¤¹¡£
or
¡¡¤³¤ÎÌäÂê¡¢°Õ³°¤Èº¬¤Ï¿¼¤¤¤è¤¦¤Ç¤¹¤Í¡Ä
¤¤¤í¤¤¤í»î¤¹5
°ÊÁ°¹ØÆþ¤·¤¿¤â¤Î¤ÎÁ´¤¯¿¨¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿PSoC5¤ò¾¯¤·¿¨¤ê¤Þ¤·¤¿¡£PSoC5¤ÏÃæ¤Î
CPU¥³¥¢¤¬MAX80MHz¤Çưºî¤¹¤ëCortex-M3¤¬ºÎÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£6·î°Ì¤ËPSoC5¤Î
ɾ²Á¥¥Ã¥ÈPSoC 5 FirstTOUCH¤¬°Â²Á¤ÇÈÎÇ䤵¤ì¤¿¤Î¤Ç¡¢Cypress¤«¤éSRAM¤È
°ì½ï¤Ë¹ØÆþ¤·¤Þ¤·¤¿¡£
Åý¹ç³«È¯´Ä¶¤ÎCPU¥³¥¢(Cortex-M3)¥×¥í¥°¥é¥à¤Î¥Ó¥ë¥É¤ÏGCC¤Ç¤¹¡£
CodeSourceryG++¤ò¸Æ¤Ó½Ð¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
P.O.V.¤Ë¤è¤ëʸ»úɽ¼¨¤¬¥Ç¥â¥×¥í¥°¥é¥à¤¬½Ð²Ù»þ¤Ë½ñ¤¹þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
ÅŸ»¤òÆþ¤ì¤Æ¤Ö¤ó¤Ö¤ó¤Õ¤ë¤È¥á¥Ã¥»¡¼¥¸¤¬½ç¼¡É½¼¨¤µ¤ì¤Þ¤¹¡£
º£¸½ºßC¸À¸ì¥½¡¼¥¹¤·¤«¤¤¤¸¤êÊý¤¬Ê¬¤«¤é¤Ê¤¤¤Î¤ÇCypress¤Î¥µ¥¤¥È¤Î
¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¤â¤ß¤Æ¥Ä¡¼¥ë¤Î»ÈÍÑÊýË¡¤ò³Ð¤¨¤Æ¤¤¤¤Þ¤¹¤«¡Ä¡£
°Ê¾åÁ°¥Õ¥ê½ª¤ï¤ê¡ª
¤µ¤Æ¡¢¤æ¤Ã¤³¤Á¤ã¤ó¤ÎÃÂÀ¸Æü(¤À¤¤¤ÖÁ°¤Ç¤¹¤¬)¤â̵»ö½ª¤ï¤ê¡¢¾¯¤·Íî¤ÁÃ夤¤¿
¤Î¤Ç¤«¤Í¤Æ¤«¤é¹Í°ÆÃæ¤À¤Ã¤¿Ê£¿ô¤Î¥Õ¥©¥ó¥È¤ËÂбþ¤·¤¿FontX2¥É¥é¥¤¥Ðºî¤ê¤ò
¹Ô¤¤¤Þ¤·¤¿¡£
ProjectC3»á¤Î¥Ú¡¼¥¸¤ÎÆâÍÆ¤ò¸µ¤Ë°Ê²¼¤Î¤è¤¦¤Êư¤«¤·Êý¤Ë¤·¤Þ¤·¤¿¡£
1.Ⱦ³Ñ¡¦Á´³Ñ¤´¤È¤ËFontX2¥Õ¥¡¥¤¥ë¤Î¥Ø¥Ã¥À¡¼Éô¤Î¹½Â¤ÂΤòSRAM¾å¤Ë¹½À®¤¹¤ë¡£
2.³Æ¥Õ¥©¥ó¥È¤òÅÐÏ¿¤¹¤ë¤´¤È¤ËSRAM¹½Â¤ÂΤÎʬ¤À¤±¤òŽºŽÞŽØŽºŽÞŽØ¾ÃÈñ¡£
¡¡(¤È¤¤¤¦¤ï¤±¤ÇÈæ³ÓŪÂ絬ÌϤΥޥ¤¥³¥ó¾å¤Ç¤Î»ÈÍѤòÁÛÄꤷ¤Æ¤Þ¤¹)¡£
3.Ⱦ³Ñ¡¦Á´³Ñ¤È¤â¤Ë¥°¥í¡¼¥Ð¥ë¤ÊFontX2¤Î¹½Â¤ÂΥݥ¤¥ó¥¿¤òÃÖ¤¡¢Ê¸»úÉÁ²è¤¹¤ë´Ø¿ô
¡¡·²¤ÏÁ´¤Æ¤³¤ì¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¤¹¤ë¡£
¡¡»È¤¤¤¿¤¤¥Õ¥©¥ó¥È¤Çʸ»ú¤òÉÁ²è¤¹¤ëÁ°¤Ë¹½Â¤ÂΥݥ¤¥ó¥¿¤Ë¡Ö1.¡×¤ÇÅÐÏ¿¤·¤¿¹½Â¤
¡¡ÂΤΥ¢¥É¥ì¥¹¤òÅϤ¹¤è¤¦¤Ë¤¹¤ë¡£¤³¤¦¤¹¤ë¤³¤È¤Ç»ÈÍѤ·¤¿¤¤¥Õ¥©¥ó¥È¤ò´Êñ¤ËÀÚ¤ê
¡¡´¹¤¨¤ë¤³¤È¤¬¤Ç¤¤ë¡£
4.FontX2¦¤Î¥É¥é¥¤¥Ð¤Ï»ÈÍѤ¹¤ëFontX2¥Õ¥¡¥¤¥ë¤ÎÅÐÏ¿¤È¡¢Í׵ᤵ¤ì¤¿ascii/sjis
¡¡Ê¸»ú¥³¡¼¥É¤ËÂФ·¤Æ¥Õ¥©¥ó¥È¥Ç¡¼¥¿¤Î¼ÂÂΤ¬¤¢¤ë¥¢¥É¥ì¥¹¤Î¥ª¥Õ¥»¥Ã¥È¤òÊÖ¤¹¡£
·è¤áÂǤÁ¤Ç¤ä¤ë¤Î¤Ê¤é¤ÐSRAM¤Ê¤¾¾ÃÈñ¤¹¤ëɬÍפϤʤ¤¤Î¤Ç¤¹¤¬¡¢ÈÆÍÑÀ¤ò¾å¤²¤¿¤«¤Ã
¤¿¤Î¤Ç¤³¤ó¤Ê´¶¤¸¤Ë¤Þ¤È¤Þ¤ê¤Þ¤·¤¿¡£º£¤Ï¤Þ¤À¥Þ¥¤¥³¥ó¤Î¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¾å¤ËFontX2
¤Î¥Ç¡¼¥¿¤ò¤½¤Î¤Þ¤Þ¤Î¤Ã¤±¤Æ¤¤¤Þ¤¹¡£¤³¤Á¤é¤âÄÉ¡¹¤ÈÂçÍÆÎ̤ÎSPI-ROM¤ËÄɤ¤½Ð¤¹¤Ä
¤â¤ê¤Ç¤¹¡£
¤È¤¤¤¦¤ï¤±¤ÇSTM32¤äLPC2388¤ÎTFT±Õ¾½É½¼¨¥×¥í¥°¥é¥à¤Ë¤½¤ì¤òÁȤ߹þ¤ß¤Þ¤·¤¿¡£
¥¿¥Ã¥Á¥Ñ¥Í¥ë¤ÎÀßÄê¤ÎºÝ¤Ë»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£
Åö¤¿¤êÁ°¤Ç¤¹¤¬¥Õ¥©¥ó¥È¤½¤Î¤â¤Î¤ÏƱ¤¸¤Ê¤Î¤Ç°ÊÁ°¤Î¤È¸«¤¿ÌܤÏÊѤï¤ê¤Þ¤»¤ó¤±¤É¤Í¡£
ɽ¼¨¤Ë»ÈÍѤ·¤Æ¤¤¤ë¥Ç¥Ð¥¤¥¹¤ÏSTM025QVT-001¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£²¿µ¤¤Ë»ÈÍѲÄǽ¤Ê
MCU¥Ð¥¹Àܳ¥¿¥¤¥×¤Î¥Ç¥£¥¹¥×¥ì¥¤¥â¥¸¥å¡¼¥ë¤Î¼ïÎà¤â¤É¤ó¤É¤óÁý¤ä¤·¤Æ¤¤¤Ã¤Æ¤Þ¤¹¡£
¤¢¤È¡¢IJG JPEG¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤¿jpeg¥Õ¥¡¥¤¥ë¤Î¥Ç¥³¡¼¥É¤Î¼Â¸³¤Ê¤ó¤«¤â»î¤ß¤Æ
¤¤¤Þ¤¹¡£Æ±¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤¿sirius506»áºîÀ®¤Împ3¥×¥ì¡¼¥ä¡¼¤Î¥Õ¥©¥È¥Õ¥ì¡¼¥à
Éô¤ò¤½¤é»á¤¬SH-2A¸þ¤±¤ËÍøÍѤµ¤ì¤¿¤â¤Î¤ò¤µ¤é¤Ë»²¹Í¤Ë¤µ¤»¤Æ¤â¤é¤¤¤Þ¤·¤¿¡£
¤¤¤í¤¤¤í»î¹Ôºø¸í¤·¤Æ¤è¤¦¤ä¤¯¥Ó¥ë¥É¤¬Ä̤俤ΤǤ¹¤¬¥Ð¥¤¥Ê¥ê¥µ¥¤¥º¤¬220kbyte¤â
ËĤì¾å¤¬¤Ã¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¥Õ¥é¥Ã¥·¥å¥á¥â¥êÍÆÎ̤¬MAX256kByte¤·¤«¤Ê¤¤STM32F107
·Ï¤Ë¤ÏÅþÄìºÜ¤ê¤Þ¤»¤ó¡£¤È¤¤¤¦¤ï¤±¤Çjpeg¥Ç¥³¡¼¥Éµ¡Ç½¤ò¾è¤Ã¤±¤ë¤Î¤Ï¥Õ¥é¥Ã¥·¥å
ÍÆÎ̤¬ËÉÙ¤ÊLPC2388¤äSTM32 Primer2¸þ¤±¤Î¤ß(¾ÍèŪ¤Ë¤ÏLPC1769¤â)
¤Ë¤Ê¤ê¤½¤¦¤Ç¤¹¡£
QVGA¥µ¥¤¥º¤Î¾ì¹çLPC2388¤Ç¤Ïjpeg¥Ç¥³¡¼¥É¤ËɬÍפʺÇÄã¸Â¤ÎRAM¤Ï
1024*35=35840Byte
°Ê¾åɬÍפǤ·¤¿¡£RAM¤â¤½¤ì¤Ê¤ê¤Ë¶ô¤¦¤è¤¦¤Ç¤¹¡£¤½¤ÎºÝɸ½à´Ø¿ômalloc¤¬heapÎΰè¤ò
»ÈÍѤ¹¤ë¤Î¤Ç¥¹¥¿¡¼¥È¥¢¥Ã¥×¤ò¤¤¤¸¤êmakefileÆâ¤Ç»ÈÍÑÎ̤òÌÀ¼¨¤Ç¤¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£
ŽºŽÂ
ŽÒ޶
ŽÜŽ³Ž¿
¤ä¤Ã¤Ñ¥Ç¥³¡¼¥É->ÉÁ²è¤Ë¤Ï¿¾¯»þ´Ö¤«¤«¤ê¤Þ¤¹¤Í¡£Â¾¤Ë¤âIJG JPEG¥é¥¤¥Ö¥é¥ê¤Ï
¥ê¥µ¥¤¥ºµ¡Ç½¤Ê¤ó¤«¤â¤¢¤Ã¤Æ¥Ô¥¯¥»¥ë¥µ¥¤¥º¤¬Â礤¤¤â¤Î¤Ç¤â½Ì¾®¤·¤Æ¤¯¤ì¤Þ¤¹¡£
º£²ó»ÈÍѤ·¤¿¾®Æ°Êª¤¿¤Á¤Î²èÁü¤ÏÂçºå³¤Í·´Û¤Ç»£±Æ¤·¤¿¥³¥Ä¥á¥«¥ï¥¦¥½¤¿¤Á¤Ç¤¹¡£
¤Þ¤ÀÁ´¤¯¼ê¤òÉÕ¤±¤Æ¤Þ¤»¤ó¤¬120MHz¤Çư¤¯LPC1769¤ÇƱ¤¸¤³¤È¤ä¤ë¤È¤É¤ó¤À¤±Á᤯
¥Ç¥³¡¼¥É¤Ç¤¤ë¤«¤Á¤ç¤Ã¤È³Ú¤·¤ß¤Ç¤¹¡£
ºÇ¸å¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¾¯¤·Á°¤«¤éTFT-LCDShield³«È¯¤ÎÀÞ¤Ëtaobao¤Ç±Õ¾½¥â¥¸¥å¡¼¥ë
¤Ê¤É¤ò¤¤¤í¤¤¤í¹ØÆþ¤·¤Æ¤¤¤Þ¤·¤¿¡£¤½¤ÎÃæ¤Ç¤Ò¤È¤¤ïÌÜΩ¤Ã¤Æ¤¿3.5inch¡¢
320x480¤ÎÂç²òÁüÅÙ¡¢¤½¤ì¤Ç¤¤¤Æ°·¤¤¤ä¤¹¤¤i8080¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÇÀܳ¤Ç¤¤ë
±Õ¾½¥â¥¸¥å¡¼¥ë¤ò¾Ò²ð¤·¤Þ¤¹¡£
¥Ç¥«¥¤¡ª
¤Ç¡¢¥Ç¥«¥¤¡ª
72MHz¶îư¤ÎSTM32F107VCT6¤À¤ÈSD¥«¡¼¥É¤«¤é320x480,24bit¤Îɸ½àŪ¤ÊWindowsBMP
¥Õ¥¡¥¤¥ë¤Î°ìË糨¤òÆÉ¤ß¼è¤êɽ¼¨¤¹¤ë¤Î¤Ë³Ý¤«¤ë»þ´Ö¤ò¬Äꤷ¤¿¤È¤³¤íÌó360mSec³Ý
¤«¤ê¤Þ¤·¤¿¡£
(Á´²èÌ̾õî->SD¥«¡¼¥ÉÆÉ¤ß½Ð¤·->RGB¥Ç¡¼¥¿24bit->16bitÊÑ´¹->GPIOžÁ÷)
ÉáÄ̤³¤ì¤¯¤é¤¤¤Î²òÁüÅ٤ˤʤë¤ÈRGB¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤·¤«¤Ê¤¤¤Î¤Ç¤¹¤¬¤³¤Î
¥â¥¸¥å¡¼¥ë¤Ïi8080¤ÎMCU¥Ð¥¹¤ÇÀܳ¤Ç¤¤ë¥³¥ó¥È¥í¡¼¥éIC(ILI9481)¤¬Æâ¢¤µ¤ì¤Æ
¤¤¤ÆAVRÅù¤Î¥ï¥ó¥Á¥Ã¥×¥Þ¥¤¥³¥ó¤Ç¤â¼ê·Ú¤Ë°·¤¨¤Þ¤¹(¤¿¤À¤·16bit¥Ð¥¹¶¯À©)¡£
¤Þ¤À¥¿¥Ã¥Á¥Ñ¥Í¥ë¤¬ÅëºÜ¤µ¤ì¤¿¥â¥Ç¥ë¤Ï°ìÈ̤˽вó¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤Î¡¢´Ê°×¤Ç
¥Õ¥©¥È¥Õ¥ì¡¼¥à¤òºîÀ®¤¹¤ë¤Î¤Ê¤é¸«±É¤¨¤¬¤¢¤ë¤â¤Î¤¬¤Ç¤¤ë¤È»×¤¤¤Þ¤¹¡£
¤ª¤ä¡©aitendo¤Ë¤â»÷¤¿¤è¤¦¤Ê¤â¤Î¤¬¡Ä¡©(ËÀÆÉ¤ß)
ÄÉ¡§»ä¤Î¤ÏFPC¤Î·Á¾õ¡¦¥Ô¥ó´Ö³Ö¡¦³°´Ñ¤¬Á´¤¯°ã¤¦ÊÌʪ¤Ç¤¹¡ª
XMEGA¤ò»È¤Ã¤Æ¤ß¤ë2
NG¥ï¡¼¥ª¡§ARM¤½¤Î¾32¥Ó¥Ã¥È¥Þ¥¤¥³¥ó
¢¬¤Í¤à¤¤¤µ¤ó¤¬Í¾·×¤Ê»ö¤ò¸À¤ï¤Ê¤¤¤¿¤áÍÑ
¡Ä¤µ¤Æ¡¢XMEGA¤ò»È¤¨¤ë¤â¤Î¤Ë¤¹¤Ù¤¯¾¯¤·¤º¤Ä¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ò¸Ç¤á¤Æ¤¤Þ¤·¤¿¤¬¡¢
º£¸½ºß¤Þ¤À¤Þ¤À¼êõ¤êÃʳ¬¤Ç¤¹¡£
¢¬ÆÍ¤Ã¹þ¤ß¤É¤³¤íËþºÜ¤Ê²èÁü
»ä¤ÎXMEGAÍѤγ«È¯´Ä¶¤Ï¥³¥ó¥Ñ¥¤¥é¤¬WinAVR,¥é¥¤¥¿/¥Ç¥Ð¥Ã¥¬¤¬
JTAGICEmk2¤Ç¤¹¡£¼ç¿Í¤Î°äʪ¤«¤é¶¯Ã¥¤·¤¿¤«¤é¾ù¤ê¼õ¤±¤¿JTAGICEmk2¤Ï
¥Ï¡¼¥É¥¦¥¨¥¢¤Î¥ê¥Ó¥¸¥ç¥ó¤¬¸Å¤¯¡¢PDI¥â¡¼¥É¤¬»ÈÍѤǤ¤Ê¤¤¤¿¤áJTAG¥â¡¼¥É
¤Ç¤·¤«¥¢¥¯¥»¥¹¤Ç¤¤Þ¤»¤ó!!
¤ó¤Ç¤â¤Ã¤Æ²¿¤Ç¥é¥¤¥¿¤È½ñ¤¹þ¤ß¥¢¥À¥×¥¿¤ò¤Ä¤Ê¤°¥±¡¼¥Ö¥ë¤¬FPC¤¸¤ã¤Ê¤¤¤«¤È¤¤¤¦¤È
FPC¥³¥Í¥¯¥¿¤¬Ž¶ŽÞŽÊŽÞ޶ŽÞŽÊŽÞ¤Ë¤Ê¤Ã¤Æ¤ÆÉáÄ̤ÎÅÅÀþ¤Ç̵Íý¤ä¤ê·Ò¤²¤Æ½¤Éü¤¹¤ë¤Þ¤Ç½ñ¤¹þ¤ß
¤¹¤éËþ¤ˤǤ¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¹¤èŽ¸Ž¿Ž§!!
¡Ä¤Ï¤¡¤Ï¤¡¡Ä¤Þ¤¡¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ä¡¼¥ë»È¤¨¤ë¤«¤é¤¢¤Þ¤êÉÔÊØ¤Ë¤Ï´¶¤¸¤Þ¤»¤ó¤¬¡Ä¡£
¤³¤Î´Ä¶¤Ç¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤Ë¾Æ¤¤³¤ó¤ÀFONTX2¥Õ¥¡¥¤¥ë¤äBMP¥Õ¥¡¥¤¥ë¤ò
ɽ¼¨¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ë¤Þ¤Ç½ÐÍè¤Þ¤·¤¿¡£AVR»È¤¤¤ÎÊý¤Ï¤´Â¸ÃΤ«¤È»×¤¤¤Þ¤¹¤¬
¥³¥ó¥Ñ¥¤¥é¤äAVR¤Î¥¢¡¼¥¥Æ¥¯¥Á¥ã¤½¤Î¤â¤Î¤Î¤¤¤í¤ó¤ÊÀ©Ìó¤Çɽ¼¨¤Ç¤¤ë¤è¤¦¤Ë
¤Ê¤ë¤Þ¤ÇÆñµ·¤·¤Þ¤·¤¿¡£¤·¤«¤·°ìÅÙÆ½±Û¤¨¤Æ°·¤¤Êý¤ï¤«¤ë¤È¤â¤¦¤¢¤È¤Ï³Ú¤Ç¤·¤¿¡Ä
¢¬BMP¥Õ¥¡¥¤¥ë¤òɽ¼¨¤·¤¿¾å¤ËFONTX2(Èþºé¥Õ¥©¥ó¥È)¤ÇÀÖʸ»úÆ©²áɽ¼¨¤·¤¿¤È¤³¤í¡£
¡¡°ìÉô¸í»ú¤¬¤¢¤Ã¤Æ¥¢¥ì¤ÊÉôʬ¤¬Éú¤»»ú¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤Þ¤¹¤¬Ìµ³²¤Ç¤¹(ËÀ
¡¡¥Ð¥ì¥ó¥¿¥¤¥ó¤À¤Ã¤¿¤·¡ª
¡Ä¤µ¤Æ¡¢¤³¤Ã¤«¤éÀè¤É¤¦¤¹¤ë¤«¤ò¹Í¤¨¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢EBI¤ò»È¤Ã¤Æ
SRAM¤È¤«·Ò¤²¤ë¤³¤È¤â¹Í¤¨¤Þ¤·¤¿¡£XMEGA¤Ç»ÈÍѤǤ¤ëEBI¤ÏALE̵¤·¤Ç¤âSRAM¤Ë
Àܳ¤Ç¤¤ë¤Ï¤º¤Ç¤¹¤¬¸½¹Ô¤ÎXMEGA¤Î¥â¥Ç¥ë¤Ç¤ÏEBI¤ò¹½À®¤¹¤ë¤¿¤á¤ËɬÍפʤÎ
°ìÉô¤Î¥Ð¥¹(PORTL)¤¬ÊªÍýŪ¤Ë¸ºß¤»¤º¡¢¼Â¼Á¾åALE»È¤ï¤Ê¤¤¤ÈÂçÍÆÎ̤ÎSRAM¤ò
°·¤¦¤³¤È¤¬¤Ç¤¤Þ¤»¤óŽ¸Ž¿Ž§¡ª
¡Ä޵ŽÎŽÎ»ä¤Ã¤¿¤é¡Ä¼ºÎé¡Ä
SDRAM¤Ï¤â¤Ã¤È¤Ò¤É¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤ë¤é¤·¤¤¤Ç¤¹¤Í¡Ä¡£
¤Ç¤âLCD¤ò·Ò¤²¤ë¤¯¤é¤¤¤Ê¤éALE̵¤·¤Ç¤â½½Ê¬¤¹¤®¤ë¤¯¤é¤¤ÏŤ¨¤ë¤Î¤Ç¡¢Á°²ó¤Î
±Õ¾½¤òÀ褺EBI¤Ç·Ò¤²¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤È¤³¤í¤«¤é¤Ï¤Â¤á¤Þ¤¹¡Ä¡£
¤½¤ì¤Èº£»×¤¤¤Ä¤¤Þ¤·¤¿¤¬MAIÅŻҤµ¤ó¤è¤ê¹ØÆþ¤·¤¿¹â®SRAMÉÕ¤FPGA¥Ü¡¼¥É¤ò
»à¢¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¤³¤ì¤òÍøÍѤ·¤Ê¤¤¼ê¤Ï̵¤¤¤Ç¤¹¤Í¡Ä¡ª
ÃúÅÙfenrir»á¤¬cblsrv¤òISE11.x¤Ç¤â»È¤¨¤ë¤è¤¦¤Ë¹¹¿·¤·¤Æ¤¯¤ì¤Þ¤·¤¿¤Î¤Ç¡Ä
¤Í¤à¤¤¤µ¤óº£ÅÙ¤³¤½Ëܵ¤¤À¤¹¡ª¡ª
¢¬¤ä¤ë¤ä¤ëº¾µ½
ÌÈÀÕ¡¦Ï¢ÍíÀè¤Ï¢¬¤Î¥ê¥ó¥¯¤ò
¢SNS¤â¤ä¤Ã¤Æ¤Þ¤¹¢
powered by ¤Þ¤á¤ï¤¶- ARM/STM32 (117)
- OpenOCD (27)
- ARM/NxP (34)
- ARM/Cypress (5)
- ARM/Others (3)
- ARM/Raspi (1)
- AVR (13)
- FPGA (4)
- GPS/GNSS (19)
- MISC (84)
- STM8 (2)
- Wireless¤Ê¥¢¥ì (16)
- ¤ª¤¤Ñ (1)
- ¥Ö¥é¥¦¥¶¥Ù¥ó¥Á¥Þ¡¼¥¯ (29)
- ÆüËܤμ«Á³ÊâÆ» (27)
- ÃæÉôËÌΦ¼«Á³ÊâÆ»¤ò±ý¤¯ -Å×ÇÈÊ¿Ìî¤Î¸©¶¤ò¶î¤±È´¤±¤ë¡ª-
¢Í ¤Í¤à¤¤ (12/18) - ÃæÉôËÌΦ¼«Á³ÊâÆ»¤ò±ý¤¯ -Å×ÇÈÊ¿Ìî¤Î¸©¶¤ò¶î¤±È´¤±¤ë¡ª-
¢Í ¤Ò¤«¤ï (12/15) - STM32U0¤Ï¤Â¤á¤Þ¤·¤¿
¢Í ¤Í¤à¤¤ (08/07) - STM32U0¤Ï¤Â¤á¤Þ¤·¤¿
¢Í ¤Ò¤«¤ï (07/28) - STM32H5¤ò»È¤Ã¤Æ¤ß¤ë3 -ÂÔ¤Á¼õ¤±¤ë½é¸«»¦¤·¤Î櫤¿¤Á-
¢Í ¤Í¤à¤¤ (05/17) - STM32H5¤ò»È¤Ã¤Æ¤ß¤ë3 -ÂÔ¤Á¼õ¤±¤ë½é¸«»¦¤·¤Î櫤¿¤Á-
¢Í ¤É¤¸¤ç¤ê¤ó (05/16) - STM32H5¤ò»È¤Ã¤Æ¤ß¤ë3 -ÂÔ¤Á¼õ¤±¤ë½é¸«»¦¤·¤Î櫤¿¤Á-
¢Í ¤É¤¸¤ç¤ê¤ó (05/16) - ¤¤¤í¤¤¤í»î¤¹61(¤Èº£Ç¯¤ÎÈ¿¾Ê²ñ)
¢Í ¤Í¤à¤¤ (01/02) - ¤¤¤í¤¤¤í»î¤¹61(¤Èº£Ç¯¤ÎÈ¿¾Ê²ñ)
¢Í ¤Ò¤«¤ï (01/02) - ¤¤¤í¤¤¤í»î¤¹61(¤Èº£Ç¯¤ÎÈ¿¾Ê²ñ)
¢Í ¤Ò¤«¤ï (01/01)
- April 2025 (1)
- March 2025 (1)
- February 2025 (1)
- January 2025 (1)
- December 2024 (2)
- November 2024 (1)
- October 2024 (1)
- September 2024 (1)
- August 2024 (1)
- July 2024 (1)
- June 2024 (1)
- May 2024 (1)
- April 2024 (1)
- March 2024 (1)
- February 2024 (2)
- January 2024 (1)
- December 2023 (4)
- November 2023 (2)
- October 2023 (2)
- September 2023 (1)
- August 2023 (2)
- July 2023 (1)
- June 2023 (2)
- May 2023 (3)
- April 2023 (1)
- March 2023 (1)
- February 2023 (1)
- January 2023 (1)
- December 2022 (2)
- November 2022 (1)
- October 2022 (1)
- September 2022 (1)
- August 2022 (1)
- July 2022 (1)
- June 2022 (1)
- May 2022 (1)
- April 2022 (1)
- March 2022 (1)
- February 2022 (1)
- January 2022 (1)
- December 2021 (2)
- November 2021 (2)
- October 2021 (1)
- September 2021 (1)
- August 2021 (1)
- July 2021 (1)
- June 2021 (1)
- May 2021 (1)
- April 2021 (1)
- March 2021 (1)
- February 2021 (1)
- January 2021 (1)
- December 2020 (3)
- November 2020 (1)
- October 2020 (1)
- September 2020 (1)
- August 2020 (1)
- July 2020 (1)
- June 2020 (2)
- May 2020 (1)
- April 2020 (1)
- March 2020 (1)
- February 2020 (1)
- January 2020 (1)
- December 2019 (3)
- November 2019 (1)
- October 2019 (1)
- September 2019 (2)
- August 2019 (1)
- July 2019 (1)
- June 2019 (1)
- May 2019 (1)
- April 2019 (1)
- March 2019 (1)
- February 2019 (1)
- January 2019 (1)
- December 2018 (3)
- November 2018 (2)
- October 2018 (1)
- September 2018 (1)
- August 2018 (1)
- July 2018 (1)
- June 2018 (1)
- May 2018 (1)
- April 2018 (2)
- March 2018 (1)
- February 2018 (1)
- January 2018 (1)
- December 2017 (2)
- November 2017 (2)
- October 2017 (1)
- September 2017 (1)
- August 2017 (1)
- July 2017 (1)
- June 2017 (1)
- May 2017 (1)
- April 2017 (1)
- March 2017 (2)
- February 2017 (2)
- January 2017 (2)
- December 2016 (7)
- November 2016 (2)
- October 2016 (2)
- September 2016 (1)
- August 2016 (1)
- July 2016 (1)
- June 2016 (1)
- May 2016 (2)
- April 2016 (1)
- March 2016 (2)
- February 2016 (1)
- January 2016 (1)
- December 2015 (3)
- November 2015 (1)
- October 2015 (3)
- September 2015 (2)
- August 2015 (2)
- July 2015 (3)
- June 2015 (3)
- May 2015 (4)
- April 2015 (2)
- March 2015 (4)
- February 2015 (1)
- January 2015 (3)
- December 2014 (3)
- November 2014 (2)
- October 2014 (1)
- September 2014 (2)
- August 2014 (2)
- July 2014 (3)
- June 2014 (2)
- May 2014 (1)
- April 2014 (1)
- March 2014 (4)
- February 2014 (4)
- January 2014 (3)
- December 2013 (5)
- November 2013 (4)
- October 2013 (3)
- September 2013 (2)
- August 2013 (2)
- July 2013 (2)
- June 2013 (3)
- May 2013 (2)
- April 2013 (2)
- March 2013 (2)
- February 2013 (2)
- January 2013 (3)
- December 2012 (4)
- November 2012 (2)
- October 2012 (2)
- September 2012 (4)
- August 2012 (1)
- July 2012 (3)
- June 2012 (2)
- May 2012 (3)
- April 2012 (3)
- March 2012 (2)
- February 2012 (3)
- January 2012 (3)
- December 2011 (5)
- November 2011 (3)
- October 2011 (2)
- September 2011 (2)
- August 2011 (2)
- July 2011 (2)
- June 2011 (2)
- May 2011 (2)
- April 2011 (2)
- March 2011 (2)
- February 2011 (2)
- January 2011 (3)
- December 2010 (7)
- November 2010 (1)
- October 2010 (1)
- September 2010 (1)
- August 2010 (3)
- July 2010 (4)
- May 2010 (1)
- April 2010 (2)
- March 2010 (2)
- February 2010 (2)
- January 2010 (3)
- December 2009 (3)
- November 2009 (8)
- October 2009 (7)
- September 2009 (5)
- August 2009 (4)
- July 2009 (6)
- June 2009 (6)
- May 2009 (14)
- January 1970 (1)
Copyright(C) B-Blog project All rights reserved.