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

koizumi yoshiyuki koizumiyoshiyuki @ gmail.com
2013年 9月 25日 (水) 09:30:00 JST


 斎藤さま

こいさんです。

昨日のhardware_init_hookは私の対応誤りです。PLL初期化を修正した版で実行していました。
オリジナルのSSPのFM3のBuildではエラーは発生しませんでした。stbeeもPLL初期化を元に戻し動作しています。

色々ありがとうございました。

以上



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

>  斎藤さま
>
> こいさんです。 不具合情報が伝わり安堵しています。(−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/20130925/ee1eb348/attachment.html>