Build Log: FreeRTOS v4.7/WinAVR 20070525, ATMEGA128

實際上這個是拿 DEMO 下的 Code 搬移過目錄後直接改過 makefile 去test build 的結果

在換了  ATMEGA128 的CPU指示後,Serial 下的暫存器名稱與 ATMEGA323 有所不同需要稍微修改一下

 

set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Demo/Common/Minimal/comtest.lst  -std=gnu99 ../../Demo/Common/Minimal/comtest.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > ../../Demo/Common/Minimal/comtest.d;
    [ -s ../../Demo/Common/Minimal/comtest.d ] || rm -f ../../Demo/Common/Minimal/comtest.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Demo/Common/Minimal/PollQ.lst  -std=gnu99 ../../Demo/Common/Minimal/PollQ.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > ../../Demo/Common/Minimal/PollQ.d;
    [ -s ../../Demo/Common/Minimal/PollQ.d ] || rm -f ../../Demo/Common/Minimal/PollQ.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Demo/Common/Minimal/integer.lst  -std=gnu99 ../../Demo/Common/Minimal/integer.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > ../../Demo/Common/Minimal/integer.d;
    [ -s ../../Demo/Common/Minimal/integer.d ] || rm -f ../../Demo/Common/Minimal/integer.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Demo/Common/Minimal/crflash.lst  -std=gnu99 ../../Demo/Common/Minimal/crflash.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > ../../Demo/Common/Minimal/crflash.d;
    [ -s ../../Demo/Common/Minimal/crflash.d ] || rm -f ../../Demo/Common/Minimal/crflash.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Source/portable/GCC/ATMega323/port.lst  -std=gnu99 ../../Source/portable/GCC/ATMega323/port.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > ../../Source/portable/GCC/ATMega323/port.d;
    [ -s ../../Source/portable/GCC/ATMega323/port.d ] || rm -f ../../Source/portable/GCC/ATMega323/port.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Source/portable/MemMang/heap_1.lst  -std=gnu99 ../../Source/portable/MemMang/heap_1.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > ../../Source/portable/MemMang/heap_1.d;
    [ -s ../../Source/portable/MemMang/heap_1.d ] || rm -f ../../Source/portable/MemMang/heap_1.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Source/croutine.lst  -std=gnu99 ../../Source/croutine.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > ../../Source/croutine.d;
    [ -s ../../Source/croutine.d ] || rm -f ../../Source/croutine.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Source/list.lst  -std=gnu99 ../../Source/list.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > ../../Source/list.d;
    [ -s ../../Source/list.d ] || rm -f ../../Source/list.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Source/queue.lst  -std=gnu99 ../../Source/queue.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > ../../Source/queue.d;
    [ -s ../../Source/queue.d ] || rm -f ../../Source/queue.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Source/tasks.lst  -std=gnu99 ../../Source/tasks.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > ../../Source/tasks.d;
    [ -s ../../Source/tasks.d ] || rm -f ../../Source/tasks.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=regtest.lst  -std=gnu99 regtest.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > regtest.d;
    [ -s regtest.d ] || rm -f regtest.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=serial/serial.lst  -std=gnu99 serial/serial.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > serial/serial.d;
    [ -s serial/serial.d ] || rm -f serial/serial.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=ParTest/ParTest.lst  -std=gnu99 ParTest/ParTest.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > ParTest/ParTest.d;
    [ -s ParTest/ParTest.d ] || rm -f ParTest/ParTest.d
set -e; avr-gcc -MM -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=main.lst  -std=gnu99 main.c
    | sed ‘s,(.*).o[ :]*,1.o 1.d : ,g’ > main.d;
    [ -s main.d ] || rm -f main.d

——– begin ——–
avr-gcc (GCC) 4.1.2 (WinAVR 20070525)
Copyright (C) 2006 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.

Compiling: main.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=main.lst  -std=gnu99 main.c -o main.o

Compiling: regtest.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=regtest.lst  -std=gnu99 regtest.c -o regtest.o

Compiling: ParTest/ParTest.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=ParTest/ParTest.lst  -std=gnu99 ParTest/ParTest.c -o ParTest/ParTest.o

Compiling: serial/serial.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=serial/serial.lst  -std=gnu99 serial/serial.c -o serial/serial.o

Compiling: ../../Source/tasks.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Source/tasks.lst  -std=gnu99 ../../Source/tasks.c -o ../../Source/tasks.o

Compiling: ../../Source/queue.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Source/queue.lst  -std=gnu99 ../../Source/queue.c -o ../../Source/queue.o

Compiling: ../../Source/list.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Source/list.lst  -std=gnu99 ../../Source/list.c -o ../../Source/list.o

Compiling: ../../Source/croutine.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Source/croutine.lst  -std=gnu99 ../../Source/croutine.c -o ../../Source/croutine.o

Compiling: ../../Source/portable/MemMang/heap_1.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Source/portable/MemMang/heap_1.lst  -std=gnu99 ../../Source/portable/MemMang/heap_1.c -o ../../Source/portable/MemMang/heap_1.o

Compiling: ../../Source/portable/GCC/ATMega323/port.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Source/portable/GCC/ATMega323/port.lst  -std=gnu99 ../../Source/portable/GCC/ATMega323/port.c -o ../../Source/portable/GCC/ATMega323/port.o

Compiling: ../../Demo/Common/Minimal/crflash.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Demo/Common/Minimal/crflash.lst  -std=gnu99 ../../Demo/Common/Minimal/crflash.c -o ../../Demo/Common/Minimal/crflash.o

Compiling: ../../Demo/Common/Minimal/integer.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Demo/Common/Minimal/integer.lst  -std=gnu99 ../../Demo/Common/Minimal/integer.c -o ../../Demo/Common/Minimal/integer.o

Compiling: ../../Demo/Common/Minimal/PollQ.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Demo/Common/Minimal/PollQ.lst  -std=gnu99 ../../Demo/Common/Minimal/PollQ.c -o ../../Demo/Common/Minimal/PollQ.o

Compiling: ../../Demo/Common/Minimal/comtest.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=../../Demo/Common/Minimal/comtest.lst  -std=gnu99 ../../Demo/Common/Minimal/comtest.c -o ../../Demo/Common/Minimal/comtest.o

Linking: firealram.elf
avr-gcc -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I../../Source/include -I../../DEMO/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=main.o  -std=gnu99 main.o ParTest/ParTest.o serial/serial.o regtest.o ../../Source/tasks.o ../../Source/queue.o ../../Source/list.o ../../Source/croutine.o ../../Source/portable/MemMang/heap_1.o ../../Source/portable/GCC/ATMega323/port.o ../../Demo/Common/Minimal/crflash.o ../../Demo/Common/Minimal/integer.o ../../Demo/Common/Minimal/PollQ.o ../../Demo/Common/Minimal/comtest.o   –output firealram.elf -Wl,-Map=firealram.map,–cref -lm

Creating load file for Flash: firealram.hex
avr-objcopy -O ihex -R .eeprom firealram.elf firealram.hex

Creating load file for EEPROM: firealram.eep
avr-objcopy -j .eeprom –set-section-flags=.eeprom="alloc,load"
    –change-section-lma .eeprom=0 -O ihex firealram.elf firealram.eep

Creating Extended Listing: firealram.lss
avr-objdump -h -S firealram.elf > firealram.lss

Creating Symbol Table: firealram.sym
avr-nm -n firealram.elf > firealram.sym

Size after:
firealram.elf  :
section            size      addr
.text              9692         0
.data                80   8388704
.bss               1668   8388784
.stab               888         0
.stabstr            113         0
.debug_aranges      448         0
.debug_pubnames    1833         0
.debug_info       10707         0
.debug_abbrev      3786         0
.debug_line       13658         0
.debug_frame       1536         0
.debug_str         4893         0
.debug_loc         5541         0
.debug_ranges        24         0
Total             54867

Errors: none
——– end ——–


Build Warning!! 看了社群有提到應該不影響

main.c: In function ‘main’:
main.c:178: warning: pointer targets in passing argument 2 of ‘xTaskCreate’ diff
er in signedness
regtest.c: In function ‘vStartRegTestTasks’:
regtest.c:58: warning: pointer targets in passing argument 2 of ‘xTaskCreate’ di
ffer in signedness
regtest.c:59: warning: pointer targets in passing argument 2 of ‘xTaskCreate’ di
ffer in signedness
../../Source/tasks.c: In function ‘vTaskSwitchContext’:
../../Source/tasks.c:1493: warning: dereferencing type-punned pointer will break
strict-aliasing rules
../../Source/list.c: In function ‘vListInitialise’:
../../Source/list.c:98: warning: dereferencing type-punned pointer will break st
rict-aliasing rules
../../Source/list.c:106: warning: dereferencing type-punned pointer will break s
trict-aliasing rules
../../Source/list.c:107: warning: dereferencing type-punned pointer will break s
trict-aliasing rules
../../Source/list.c: In function ‘vListInsert’:
../../Source/list.c:164: warning: dereferencing type-punned pointer will break s
trict-aliasing rules
../../Source/croutine.c: In function ‘vCoRoutineSchedule’:
../../Source/croutine.c:295: warning: dereferencing type-punned pointer will bre
ak strict-aliasing rules
c:WinAVR-20070525binavr-objcopy.exe: there are no sections to be copied!
c:WinAVR-20070525binavr-objcopy.exe: –change-section-lma .eeprom=0x00000000
never used
make: [firealram.eep] Error 1 (ignored)

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: