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

koizumi yoshiyuki koizumiyoshiyuki @ gmail.com
2013年 9月 24日 (火) 22:37:14 JST


 斎藤さま

こいさんです。 不具合情報が伝わり安堵しています。(−1問題でおかしな事をいったので信頼できませんよね)

(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

にはclr_flg.oが2つあったので、片方削除しt実行。ライブラリはOK、ただし、APL側のリンクで変なエラーが出ています。
私の環境はμVision4対応で、アセンブラ部を大分弄っています。又、armccとgccの切り替えがCのあちこちに入っています。あす、FM3で再度やり直します。

尚、当方のエラーは
C:\devel\TOPPERS\work\ssp_gcc\ssp\KERNEL_LIB>cd
C:\devel\TOPPERS\work\ssp_gcc\ssp\OBJ_APL

C:\devel\TOPPERS\work\ssp_gcc\ssp\OBJ_APL>make
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_starm_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_starm_gcc -I../arch/arm_m_gcc/ -nostdlib -nostdlib   -T
../target/cq_starm_gcc/cq_starm_rom.ld -o ssp.e
xe  \
                 sample1.o     banner.o serial.o vasyslog.o syslog.o
log_output.o logtask.o kernel_cfg.o    ../KERNEL_LI
B/libkernel.a   -lgcc
../KERNEL_LIB/libkernel.a(target_config.o): In function `sil_rew_mem':
C:\devel\TOPPERS\work\ssp_gcc\ssp\KERNEL_LIB/../include/sil.h:210: multiple
definition of `hardware_init_hook'
../KERNEL_LIB/libkernel.a(target_support.o):C:\devel\TOPPERS\work\ssp_gcc\ssp\KERNEL_LIB/../target/cq_starm_gcc/target_s
upport.S:62: first defined here
collect2.exe: error: ld returned 1 exit status
Makefile:309: recipe for target `ssp.exe' failed
make: *** [ssp.exe] Error 1

C:\devel\TOPPERS\work\ssp_gcc\ssp\OBJ_APL>
です。お知らせだけです。cygwinで実行し再度報告します。
 extensionも、Makefile.kernelで指定してるのですね。extensionないでやっていると考えていました。make関連で
set_flgを探しても見つかりませんでした。eventflagで探せばよかったのですね。


こちらが主です。
夜分メールを書いたのは、前のメールで連絡が漏れがあったからです。
hardware_init_hookの調査で、すべてのaspをダウンローしましたが、
asp_arch_rx_rxc-1.6.1.lzhが私の環境で解凍できませんでした。そちらでも一度実行してほしいと思っています。
私の解凍ツールはALZipです。昔からの関連で変なツールを使っています。

以上


2013年9月24日 20:48 Naoki Saito <nsaito.nmiri @ gmail.com>:

> お世話になっております.
> 斉藤です
>
> ようやく問題が理解出来ました.
> 次期リリースにて対応いたしますが,
> 以下の対応を試してみていただけますか?
>
> (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/9dfad659/attachment.html>