arm/FM3をはじめる
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
#contents
2014/08/17からのアクセス回数 &counter;
残念ながら、SAM7-LA2ボードのgccでのコンパイル環境が整えら...
試すことにしました。
** 開発環境を整える [#m966a630]
*** ツールとソース [#l2a7fe52]
CMSISをダウンロードします。
- https://www.spansion.com/Products/microcontrollers/32-b...
ねむいさんの例題おきばから「MB9BF618T(FRK-FM3-GARBAGEBOAR...
- http://nemuisan.blog.bai.ne.jp/?eid=192848
*** makefileの変更 [#mf5d78de]
さすがねむいさんの例題は、きれいな構成になっています。ス...
- CMSIS/Device/SPANSION/MB9BF61xT/Sources/Templates/start...
私の環境に合わせるために、修正したのは以下の変数です。
#pre{{
# Toolchain prefix (i.e arm-none-eabi -> arm-none-eabi-gc...
TCHAIN = arm-none-eabi
# OpenOCD prefix
OCD = /usr/local/bin/openocd
# Select SWD Writer
WRITER = VERSALOON
# Development Tools based on GNU Compiler Collection
DEVTOOL = SOURCERY
REMOVAL = rm
# Check BuildTools
TOOLDIR = ~/local/arm/CodeSourcery/
# Set UNIX-Like tools (Coreutils)
MAKEDIR = /opt/local/bin/
# Set Flasher and Debugger
OCDIR = /usr/local/share/openocd/scripts/
WSHELL = sh
MSGECHO = echo
GDBDIR = $(TOOLDIR)/arm/bin
INSIGHT =
}}
*** openocd.cfgの変更 [#c7950871]
fm3.cfgは、DVDとねむいさんの両方を見比べながら、以下の様...
- lib/openocd/&ref(fm3.cfg);
- lib/openocd/&ref(vsllink.cfg);
openocd.cfgは、以下の様にしました。
#pre{{
# OpenOCD fm3.cfg with Flash proc
set CHIPNAME mb9bfxx6
set CPUTAPID 0x4ba00477
source [find interface/vsllink.cfg]
source [find target/fm3.cfg]
proc flash_program {ELF_FILENAME} {
halt
flash probe 0
flash write_image erase $ELF_FILENAME
#flash write_bank 0 $ELF_FILENAME 0x0
echo "flash program complete. reset and run"
resume
exit
}
init
halt
}}
*** fm3のドライバーの追加 [#n1ad37b3]
私のVersaloon対応openocdではfm3のドライバーがないので、以...
- InterfaceのDVDからOpenOCD/cq-source.zipを解凍し、cq-sou...
- src/flash/nor/drivers.cに以下の2カ所を追加します。
#pre{{
extern struct flash_driver fm3_flash;
}}
flash_driversに以下を追加
#pre{{
static struct flash_driver *flash_drivers[] = {
の最後のNULLの前に以下を追加
&fm3_flash,
NULL,
};
}}
- src/flash/nor/Makefileのam__objects_1にfm3.loを追加
#pre{{
am__objects_1 = aduc702x.lo at91sam3.lo at91sam7.lo avrf....
ecos.lo em357.lo faux.lo lpc2000.lo lpc288x.lo lp...
non_cfi.lo ocl.lo pic32mx.lo stmsmi.lo stellaris....
stm32f2xxx.lo str7x.lo str9x.lo str9xpec.lo tms47...
virtual.lo fm3.lo
}}
CFLAGSの-Werrorを外す
#pre{{
CFLAGS = -g -O2 -Wall -Wstrict-prototypes -Wformat-securi...
}}
** LEDチカチカを試す [#qdd86082]
ねむいさんのmain.cを以下の様に修正して、LEDを点滅するだけ...
main.c
#pre{{
/********************************************************...
/*!
@filemain.c
@author Nemui Trinomius (http://nemuisan.blog.bai...
@version W.I.P
@date 2013.07.10
@brief KickStart program For MB9BF618T JunkBoard...
@section HISTORY
201.07.10Vx.xx See Whatnew.txt.
@section LICENSE
BSD License. See Copyright.txt
*/
/********************************************************...
/* Includes ---------------------------------------------...
#include "hw_config.h"
/* Defines ----------------------------------------------...
/* Variables --------------------------------------------...
/* Constants --------------------------------------------...
/* Function prototypes ----------------------------------...
/* Functions --------------------------------------------...
/********************************************************...
/**
* @brief This function handles SysTick Handler.
* @param : None
* @retval : None
*/
/********************************************************...
void SysTick_Handler(void)
{
/* every 1mSec for _delay_ms() */
TimingDelay_Decrement();
/* another function See hw_config.h !*/
Cyclic_Exec();
#ifdefined(USE_ADS7843)
static uint16_t cnt=0;
/* every 100 mSec */
if( cnt++ >= 100 ) {
cnt = 0;
scaned_tc =1;
}
#endif
}
/********************************************************...
/*!
@briefMain Function
@paramnone
@retvalnone
*/
/********************************************************...
int main(void)
{
#if defined(USE_SEMIHOSTING)
initialise_monitor_handles();
#endif
/* Set 1mSec Timer */
SysTickInit(INTERVAL);
/* Initialise GPIO for the LED. */
FM3_GPIO->PDORF_f.P3 =0;/* Set Clr(at first)*/
FM3_GPIO->PFRF_f.P3 =0;/* Use PF3 as GPIO*/
FM3_GPIO->DDRF_f.P3 =1;/* Mode Output */
FM3_GPIO->PZRF_f.P3 =1;/* Port Tristate */
while (1)/* loop forever */
{
/* Invert Pin */
FM3_GPIO->PDORF_f.P3 = ~FM3_GPIO->PDORF_f.P3;
/* wait 500mSec a.k.a. _delay_us(500*1000); */
_delay_ms(500);
}
}
/* End Of File ------------------------------------------...
}}
*** 動作確認 [#k46270b9]
makeを実行して、正常に終了したら、openocdを使ってROMにプ...
#pre{{
$ make
$ openocd -s lib/openocd -f openocd.cfg -c "flash_program...
}}
正常に書き込みができたら、以下の様にLM3のLEDが点滅します。
&ref(FM3_led.png);
*** デバッガの設定 [#jd0a9aa8]
プログラムのデバッグは、
[[arm/LED点灯の作成とデバッグ]]
に従ってデバッグを設定します。
デバッグのコンフィグタブのInitialize commands以下の様に変...
#pre{{
target remote localhost:3333
set remote hardware-breakpoint-limit 6
monitor reset halt
load
monitor reset init
thbreak main
}}
MacOSXでは、VersaloonのCDCがOSのドライバーに取られしまう...
#pre{{
$ sudo kextunload /System/Library/Extensions/IOUSBFamily....
}}
元に戻すには、
#pre{{
$ sudo kextload /System/Library/Extensions/IOUSBFamily.ke...
}}
最初にTerminalでプロジェクトのあるディレクトリに移動して...
#pre{{
$ openocd -s lib/openocd -f openocd.cfg
Open On-Chip Debugger 0.5.0-dev-00783-g0123985-dirty (201...
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
Warn : must select a transport.
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
trst_only separate trst_push_pull
500 kHz
cortex_m3 reset_config sysresetreq
Error: Fail to receive usb data, error string is Operatio...
Info : Versaloon(0x15)by Simon(compiled on Jan 29 2011)
Info : USB_TO_XXX abilities: 0x0000024F:0x010001EF:0xC000...
Info : clock speed 500 kHz
Info : JTAG tap: mb9bfxx6.cpu tap/device found: 0x4ba0047...
Info : mb9bfxx6.cpu: hardware has 6 breakpoints, 4 watchp...
}}
これで、EclipseのDebug ConfigurationsからZylin Embedded d...
** おまけ [#x230b439]
*** ARM-USB-TINY [#a92c5b6e]
fm3のドライバーがないので苦肉の策で、最新のopenocdをイン...
最新のopenocdは、すごいですね。
使ったopenocd.cfgは以下の通りです。
#pre{{
adapter_khz 500
interface ft2232
set CHIPNAME mb9bfxx6
set CPUTAPID 0x4ba00477
source [find interface/olimex-jtag-tiny.cfg]
source [find target/fm3.cfg]
proc flash_program {ELF_FILENAME} {
halt
flash probe 0
flash write_image erase $ELF_FILENAME
#flash write_bank 0 $ELF_FILENAME 0x0
echo "flash program complete. reset and run"
resume
exit
}
init
halt
}}
*** 気づいた点 [#rf3d5a46]
FLASH USB DIRECT Programmerをダウンロードしたが、手元のWi...
- http://www.spansion.com/jp/support/microcontrollers/dev...
** コメント [#ja315706]
#vote(おもしろかった[2],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- どうも。非常に参考になるブログ、ありがとうございます。 ...
- 春運さん、私は書き込みはOpenOCDを使いました。上記がその...
#comment_kcaptcha
終了行:
[[FrontPage]]
#contents
2014/08/17からのアクセス回数 &counter;
残念ながら、SAM7-LA2ボードのgccでのコンパイル環境が整えら...
試すことにしました。
** 開発環境を整える [#m966a630]
*** ツールとソース [#l2a7fe52]
CMSISをダウンロードします。
- https://www.spansion.com/Products/microcontrollers/32-b...
ねむいさんの例題おきばから「MB9BF618T(FRK-FM3-GARBAGEBOAR...
- http://nemuisan.blog.bai.ne.jp/?eid=192848
*** makefileの変更 [#mf5d78de]
さすがねむいさんの例題は、きれいな構成になっています。ス...
- CMSIS/Device/SPANSION/MB9BF61xT/Sources/Templates/start...
私の環境に合わせるために、修正したのは以下の変数です。
#pre{{
# Toolchain prefix (i.e arm-none-eabi -> arm-none-eabi-gc...
TCHAIN = arm-none-eabi
# OpenOCD prefix
OCD = /usr/local/bin/openocd
# Select SWD Writer
WRITER = VERSALOON
# Development Tools based on GNU Compiler Collection
DEVTOOL = SOURCERY
REMOVAL = rm
# Check BuildTools
TOOLDIR = ~/local/arm/CodeSourcery/
# Set UNIX-Like tools (Coreutils)
MAKEDIR = /opt/local/bin/
# Set Flasher and Debugger
OCDIR = /usr/local/share/openocd/scripts/
WSHELL = sh
MSGECHO = echo
GDBDIR = $(TOOLDIR)/arm/bin
INSIGHT =
}}
*** openocd.cfgの変更 [#c7950871]
fm3.cfgは、DVDとねむいさんの両方を見比べながら、以下の様...
- lib/openocd/&ref(fm3.cfg);
- lib/openocd/&ref(vsllink.cfg);
openocd.cfgは、以下の様にしました。
#pre{{
# OpenOCD fm3.cfg with Flash proc
set CHIPNAME mb9bfxx6
set CPUTAPID 0x4ba00477
source [find interface/vsllink.cfg]
source [find target/fm3.cfg]
proc flash_program {ELF_FILENAME} {
halt
flash probe 0
flash write_image erase $ELF_FILENAME
#flash write_bank 0 $ELF_FILENAME 0x0
echo "flash program complete. reset and run"
resume
exit
}
init
halt
}}
*** fm3のドライバーの追加 [#n1ad37b3]
私のVersaloon対応openocdではfm3のドライバーがないので、以...
- InterfaceのDVDからOpenOCD/cq-source.zipを解凍し、cq-sou...
- src/flash/nor/drivers.cに以下の2カ所を追加します。
#pre{{
extern struct flash_driver fm3_flash;
}}
flash_driversに以下を追加
#pre{{
static struct flash_driver *flash_drivers[] = {
の最後のNULLの前に以下を追加
&fm3_flash,
NULL,
};
}}
- src/flash/nor/Makefileのam__objects_1にfm3.loを追加
#pre{{
am__objects_1 = aduc702x.lo at91sam3.lo at91sam7.lo avrf....
ecos.lo em357.lo faux.lo lpc2000.lo lpc288x.lo lp...
non_cfi.lo ocl.lo pic32mx.lo stmsmi.lo stellaris....
stm32f2xxx.lo str7x.lo str9x.lo str9xpec.lo tms47...
virtual.lo fm3.lo
}}
CFLAGSの-Werrorを外す
#pre{{
CFLAGS = -g -O2 -Wall -Wstrict-prototypes -Wformat-securi...
}}
** LEDチカチカを試す [#qdd86082]
ねむいさんのmain.cを以下の様に修正して、LEDを点滅するだけ...
main.c
#pre{{
/********************************************************...
/*!
@filemain.c
@author Nemui Trinomius (http://nemuisan.blog.bai...
@version W.I.P
@date 2013.07.10
@brief KickStart program For MB9BF618T JunkBoard...
@section HISTORY
201.07.10Vx.xx See Whatnew.txt.
@section LICENSE
BSD License. See Copyright.txt
*/
/********************************************************...
/* Includes ---------------------------------------------...
#include "hw_config.h"
/* Defines ----------------------------------------------...
/* Variables --------------------------------------------...
/* Constants --------------------------------------------...
/* Function prototypes ----------------------------------...
/* Functions --------------------------------------------...
/********************************************************...
/**
* @brief This function handles SysTick Handler.
* @param : None
* @retval : None
*/
/********************************************************...
void SysTick_Handler(void)
{
/* every 1mSec for _delay_ms() */
TimingDelay_Decrement();
/* another function See hw_config.h !*/
Cyclic_Exec();
#ifdefined(USE_ADS7843)
static uint16_t cnt=0;
/* every 100 mSec */
if( cnt++ >= 100 ) {
cnt = 0;
scaned_tc =1;
}
#endif
}
/********************************************************...
/*!
@briefMain Function
@paramnone
@retvalnone
*/
/********************************************************...
int main(void)
{
#if defined(USE_SEMIHOSTING)
initialise_monitor_handles();
#endif
/* Set 1mSec Timer */
SysTickInit(INTERVAL);
/* Initialise GPIO for the LED. */
FM3_GPIO->PDORF_f.P3 =0;/* Set Clr(at first)*/
FM3_GPIO->PFRF_f.P3 =0;/* Use PF3 as GPIO*/
FM3_GPIO->DDRF_f.P3 =1;/* Mode Output */
FM3_GPIO->PZRF_f.P3 =1;/* Port Tristate */
while (1)/* loop forever */
{
/* Invert Pin */
FM3_GPIO->PDORF_f.P3 = ~FM3_GPIO->PDORF_f.P3;
/* wait 500mSec a.k.a. _delay_us(500*1000); */
_delay_ms(500);
}
}
/* End Of File ------------------------------------------...
}}
*** 動作確認 [#k46270b9]
makeを実行して、正常に終了したら、openocdを使ってROMにプ...
#pre{{
$ make
$ openocd -s lib/openocd -f openocd.cfg -c "flash_program...
}}
正常に書き込みができたら、以下の様にLM3のLEDが点滅します。
&ref(FM3_led.png);
*** デバッガの設定 [#jd0a9aa8]
プログラムのデバッグは、
[[arm/LED点灯の作成とデバッグ]]
に従ってデバッグを設定します。
デバッグのコンフィグタブのInitialize commands以下の様に変...
#pre{{
target remote localhost:3333
set remote hardware-breakpoint-limit 6
monitor reset halt
load
monitor reset init
thbreak main
}}
MacOSXでは、VersaloonのCDCがOSのドライバーに取られしまう...
#pre{{
$ sudo kextunload /System/Library/Extensions/IOUSBFamily....
}}
元に戻すには、
#pre{{
$ sudo kextload /System/Library/Extensions/IOUSBFamily.ke...
}}
最初にTerminalでプロジェクトのあるディレクトリに移動して...
#pre{{
$ openocd -s lib/openocd -f openocd.cfg
Open On-Chip Debugger 0.5.0-dev-00783-g0123985-dirty (201...
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
Warn : must select a transport.
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
trst_only separate trst_push_pull
500 kHz
cortex_m3 reset_config sysresetreq
Error: Fail to receive usb data, error string is Operatio...
Info : Versaloon(0x15)by Simon(compiled on Jan 29 2011)
Info : USB_TO_XXX abilities: 0x0000024F:0x010001EF:0xC000...
Info : clock speed 500 kHz
Info : JTAG tap: mb9bfxx6.cpu tap/device found: 0x4ba0047...
Info : mb9bfxx6.cpu: hardware has 6 breakpoints, 4 watchp...
}}
これで、EclipseのDebug ConfigurationsからZylin Embedded d...
** おまけ [#x230b439]
*** ARM-USB-TINY [#a92c5b6e]
fm3のドライバーがないので苦肉の策で、最新のopenocdをイン...
最新のopenocdは、すごいですね。
使ったopenocd.cfgは以下の通りです。
#pre{{
adapter_khz 500
interface ft2232
set CHIPNAME mb9bfxx6
set CPUTAPID 0x4ba00477
source [find interface/olimex-jtag-tiny.cfg]
source [find target/fm3.cfg]
proc flash_program {ELF_FILENAME} {
halt
flash probe 0
flash write_image erase $ELF_FILENAME
#flash write_bank 0 $ELF_FILENAME 0x0
echo "flash program complete. reset and run"
resume
exit
}
init
halt
}}
*** 気づいた点 [#rf3d5a46]
FLASH USB DIRECT Programmerをダウンロードしたが、手元のWi...
- http://www.spansion.com/jp/support/microcontrollers/dev...
** コメント [#ja315706]
#vote(おもしろかった[2],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- どうも。非常に参考になるブログ、ありがとうございます。 ...
- 春運さん、私は書き込みはOpenOCDを使いました。上記がその...
#comment_kcaptcha
ページ名:
SmartDoc