(toppers-users 4142) Re: TOPPERS/SSPのリンクエラーについて(Re: Re: SSP(cq_starm_gcc版)で不具合と思われる修正を行いました)

Naoki Saito nsaito.nmiri @ gmail.com
2013年 9月 24日 (火) 20:48:21 JST


お世話になっております.
斉藤です

ようやく問題が理解出来ました.
次期リリースにて対応いたしますが,
以下の対応を試してみていただけますか?

(1) kernel/Makefile.kernel
eventflag = eventflag.o
     ----> eventflag = iniflg.o set_flg.o iset_flg.o clr_flg.o clr_flg.o
pol_flg.o

dataqueue = dataqueue.o
     ----> dataqueue = dtqini.o dtqenq.o dtqdeq.o psnd_dtq.o ipsnd_dtq.o
prcv_dtq.o

(2) extension/dataqueue.c

static 関数となっている enqueue_data, dequeue_data 関数の static を外す.

たぶん開発環境によらないと思いますが,一度お試しください.

以上です.

2013年9月24日 16:10 koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com>:

> 斎藤さま
>
> こいさんです。お手数をお掛けしています。お陰様で意思疎通に問題があることがわかりました。
>
> 小生の実行結果です。
>
> ------
> $ tar xvf ssp-1.2.0.tar.gz **解凍、cfg追加
> -- 省略
> $ mkdir KERNEL_LIB **ライブラリ作成ディレクトリ
> $ cd KERNEL_LIB
> $ perl ../configure -T cq_frk_fm3_gcc -f
> -- 省略
> $ make depend
> -- 省略
> $ make libkernel.a **ライブラリの作成
> -- 省略
> arm-none-eabi-ar -rcs libkernel.a  target_support.o  prc_support.o
>  target_config.o target_serial.o prc_config.o prc_tim
> er.o sta_ker.o ext_ker.o tskini.o get_ipri.o get_ipriself.o tsksched.o
>  tskact.o tskrun.o tskdsp.o tskdmt.o act_tsk.o ia
> ct_tsk.o intini.o dis_int.o ena_int.o excini.o loc_cpu.o iloc_cpu.o
> unl_cpu.o iunl_cpu.o dis_dsp.o ena_dsp.o  sns_ctx.o
> sns_loc.o sns_dsp.o sns_dpn.o sns_ker.o cycini.o sta_cyc.o stp_cyc.o
> cyccal.o almini.o sta_alm.o stp_alm.o almcal.o get_
> tim.o tmevtini.o tmevtenq.o tmevtdeq.o sig_tim.o eventflag.o dataqueue.o
> arm-none-eabi-ranlib libkernel.a
> $ cd ..
> $ mkdir APL **アプリディレクトリ作成
> $ cd APL
> $ perl ../configure -T cq_frk_fm3_gcc -L ../KERNEL_LIB
> -- 省略
> $ make depend
> -- 省略
> $ make **アプリのBuild
> -- 省略
> arm-none-eabi-gcc -c  -mcpu=cortex-m3 -mthumb  -g -Wall -Os  -DROM_BOOT
> -DTOPPERS_LABEL_ASM -I. -I../include -I../arch -
> I..  -I../target/cq_frk_fm3_gcc -I../arch/arm_m_gcc/  ../syssvc/logtask.c
> arm-none-eabi-gcc -c  -mcpu=cortex-m3 -mthumb  -g -Wall -Os  -DROM_BOOT
> -DTOPPERS_LABEL_ASM -I. -I../include -I../arch -
> I..  -I../target/cq_frk_fm3_gcc -I../arch/arm_m_gcc/   -DALLFUNC
>  -fno-strict-aliasing -mcpu=cortex-m3 -I../kernel -I ..
> /extension kernel_cfg.c
> kernel_cfg.c:116:1: warning: large integer implicitly truncated to
> unsigned type [-Woverflow]
> arm-none-eabi-gcc -c  -mcpu=cortex-m3 -mthumb  -g -Wall -Os  -DROM_BOOT
> -DTOPPERS_LABEL_ASM -I. -I../include -I../arch -
> I..  -I../target/cq_frk_fm3_gcc -I../arch/arm_m_gcc/  ../syssvc/banner.c
> arm-none-eabi-gcc  -mcpu=cortex-m3 -mthumb  -g -Wall -Os  -DROM_BOOT
> -DTOPPERS_LABEL_ASM -I. -I../include -I../arch -I..
>   -I../target/cq_frk_fm3_gcc -I../arch/arm_m_gcc/ -nostdlib -nostdlib
>  -entry=_start  -T ../target/cq_frk_fm3_gcc/cq_frm
> _fm3_rom.ld -o ssp.exe  \
>                  sample1.o     banner.o serial.o vasyslog.o syslog.o
> log_output.o logtask.o kernel_cfg.o    ../KERNEL_LI
> B/libkernel.a   -lgcc
> c:/codesourcery/sourcery_g++_lite/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/bin/ld.exe:
> warning: cann
> ot find entry symbol ntry=_start; defaulting to 00000000
> kernel_cfg.o: In function `_kernel_initialize_object':
> C:\cygwin\home\papa\SSP\ssp\APL/kernel_cfg.c:271: undefined reference to
> `_kernel_initialize_eventflag'
> C:\cygwin\home\papa\SSP\ssp\APL/kernel_cfg.c:272: undefined reference to
> `_kernel_initialize_dataqueue'
> sample1.o: In function `task':
> C:\cygwin\home\papa\SSP\ssp\APL/sample1.c:215: undefined reference to
> `set_flg'
> C:\cygwin\home\papa\SSP\ssp\APL/sample1.c:220: undefined reference to
> `clr_flg'
> C:\cygwin\home\papa\SSP\ssp\APL/sample1.c:224: undefined reference to
> `pol_flg'
> C:\cygwin\home\papa\SSP\ssp\APL/sample1.c:228: undefined reference to
> `psnd_dtq'
> C:\cygwin\home\papa\SSP\ssp\APL/sample1.c:232: undefined reference to
> `prcv_dtq'
> collect2.exe: error: ld returned 1 exit status
> Makefile:309: recipe for target `ssp.exe' failed
> make: *** [ssp.exe] Error 1
> $
> ------
>
>
> 小生基本的にはWindowsのDOS窓でBuildしています。(CM3ならμVision4を使うとデバッグがWindowsでできるので、μVision4ベースです。SSPもμVision4で動作しています)
>  もし、DOS窓がらみの問題だとまずいので、上記ログはcygeinで実行しました。
> Build出来ていないのはuser.txtの「3.5.
> アプリケーションとカーネルを別々に構築する方法」のケースです。stbeeではなくcq_frk_fm3でBuildしましたが同じ結果です。
>
> 最近のBuildは通常でも(3.3. サンプルプログラムの構築と実行)ライブラリを作成しているので誤解が生じたようですね。
>
> 3.3の場合のライブラリ作成
> arm-none-eabi-ar -rcs libkernel.a  target_support.o  prc_support.o
>  target_config.o target_serial.o prc_config.o prc_timer.o startup.o task.o
> task_manage.o interrupt.o exception.o sys_manage.o cyclic.o alarm.o
> time_manage.o time_event.o eventflag.o dataqueue.o
> arm-none-eabi-ranlib libkernel.a
>
> 3.4の場合のライブラリ作成
> arm-none-eabi-ar -rcs libkernel.a  target_support.o  prc_support.o
>  target_config.o target_serial.o prc_config.o prc_tim
> er.o sta_ker.o ext_ker.o tskini.o get_ipri.o get_ipriself.o tsksched.o
>  tskact.o tskrun.o tskdsp.o tskdmt.o act_tsk.o ia
> ct_tsk.o intini.o dis_int.o ena_int.o excini.o loc_cpu.o iloc_cpu.o
> unl_cpu.o iunl_cpu.o dis_dsp.o ena_dsp.o  sns_ctx.o
> sns_loc.o sns_dsp.o sns_dpn.o sns_ker.o cycini.o sta_cyc.o stp_cyc.o
> cyccal.o almini.o sta_alm.o stp_alm.o almcal.o get_
> tim.o tmevtini.o tmevtenq.o tmevtdeq.o sig_tim.o eventflag.o dataqueue.o
> arm-none-eabi-ranlib libkernel.a
>
> 説明が足りなかったことを申し訳なく思っています。
>
> (当方UNIXベースのBuildeで行っていませんubuntuマシンはATOMでメモリが1Gなので、最近は電源を入れていません。トライすべきでしょうかね)
>
> よろしくお願いします。
>
> 以上
>
>
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.toppers.jp/pipermail/users/attachments/20130924/a4e8b837/attachment.html>