<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><style>body { line-height: 1.5; }blockquote { margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em; }body { font-size: 10.5pt; font-family: 微软雅黑; color: rgb(0, 0, 0); line-height: 1.5; }</style></head><body>
<div><span></span>Thanks for your reply. </div><div>Today I tried to build the master version of RTEMS, but failed with some error I have not seen before. So, I build the 4.11-release with some patches posted by Chris instead. It does not work on my Zedboard. </div>
<div>So, c<span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">ould you send the link of your github that I can check the patch you commit? Thanks.</span></div><hr style="width: 210px; height: 1px;" color="#b5c4df" size="1" align="left">
<div><span><div style="MARGIN: 10px; FONT-FAMILY: verdana; FONT-SIZE: 10pt"><div><font color="#0000ff">Best wishes,</font></div><div><font color="#0000ff">Tim Tian</font></div><div><font color="#0000ff">xuelin.tian@qkmtech.com</font></div></div></span></div>
<blockquote style="margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em;"><div> </div><div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm"><div style="PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px;FONT-FAMILY:tahoma;COLOR:#000000; BACKGROUND: #efefef; PADDING-BOTTOM: 8px; PADDING-TOP: 8px"><div><b>From:</b> <a href="mailto:pisa@cmp.felk.cvut.cz">Pavel Pisa</a></div><div><b>Date:</b> 2016-09-05 21:52</div><div><b>To:</b> <a href="mailto:xuelin.tian@qkmtech.com">xuelin.tian@qkmtech.com</a></div><div><b>CC:</b> <a href="mailto:users@rtems.org">users@rtems.org</a>; <a href="mailto:chrisj@rtems.org">Chris Johns</a></div><div><b>Subject:</b> Re: Simple question about RTL</div></div></div><div><div>Hello Tim Tian,</div>
<div> </div>
<div>On Monday 05 of September 2016 15:19:54 xuelin.tian@qkmtech.com wrote:</div>
<div>> Hello Pavel,</div>
<div>> The RTEMS version is 4.11-release.</div>
<div>> Today, I download the latest 4.11-release with "fix cache corruption bugs"</div>
<div>> patch, and build it.</div>
<div> </div>
<div>no that is not enough. This patch correct symbol cache problems</div>
<div>but not CPU cache problems.</div>
<div> </div>
<div>More patches has to be applied to 4.11 to make RTL work</div>
<div>on targets with cache. The generic cache manager is +/-</div>
<div>OK on 4.11 to make it work on Zynq and Altera. For other ARM</div>
<div>targets there is even more patches which should be applied</div>
<div>to fix the problems.</div>
<div> </div>
<div>I can prepare 4.11 branch on my GitHub account and if it is confirmed,</div>
<div>that it works, then discussion about inclusion to yet unreleased 4.11</div>
<div>should start. Other option is to release 4.11 and correct these for</div>
<div>4.11.1.</div>
<div> </div>
<div>But generally for 4.11, RTL has to be considered as not available</div>
<div>for cache enabled targets which needs explicit instruction</div>
<div>and data cache sync (PowerPC, ARM). master branch is fully OK for</div>
<div>targets with snoopable instruction cache fills, for other targets</div>
<div>in the case when undefined symbols are filled later, there is still</div>
<div>small but real problem possible.</div>
<div> </div>
<div>Best wishes,</div>
<div> </div>
<div> </div>
<div>                 Pavel</div>
<div> </div>
<div>> I use the new tool-chain and bsp to build my </div>
<div>> application and the bug remains. And I check my appdl-symbol-table.o via</div>
<div>> arm-rtems4.11-nm, no "hello_world" (which is the function I want to jump</div>
<div>> to) found. Is it correct? I follow your instructions to get .prelink, to</div>
<div>> get symbol table, and to get the final image. Do you have any hints on</div>
<div>> this? Thank you.</div>
<div>></div>
<div>></div>
<div>></div>
<div>> Best wishes,</div>
<div>> Tim Tian</div>
<div>> xuelin.tian@qkmtech.com</div>
<div>></div>
<div>> From: Pavel Pisa</div>
<div>> Date: 2016-09-04 21:10</div>
<div>> To: xuelin.tian@qkmtech.com</div>
<div>> CC: users@rtems.org; Chris Johns</div>
<div>> Subject: Re: Simple question about RTL</div>
<div>> Hello Tim Tian,</div>
<div>></div>
<div>> On Sunday 04 of September 2016 14:52:44 xuelin.tian@qkmtech.com wrote:</div>
<div>> > This problem drives me crazy.</div>
<div>> ></div>
<div>> > I can use dlopen to load my object file, this part works fine. When I </div>
<div>loaded the object file, it showed something like:</div>
<div>> > > handle: 0x2a9bb0 loaded</div>
<div>> ></div>
<div>> > And then I could get the address of this handle via dlsym,</div>
<div>> ></div>
<div>> > > call = dlsym(handle, "hello_world");</div>
<div>> > > if (call == NULL) {</div>
<div>> > > printf("dlsym failed: symbol hello_world not found\n");</div>
<div>> > > return 1;</div>
<div>> > > }</div>
<div>> > > printf("address: %x\n", call);</div>
<div>> ></div>
<div>> > it said like:</div>
<div>> > > address: 2aa3a1</div>
<div>> ></div>
<div>> > But, when I continued to jump to the entry point of call, the system</div>
<div>> > crashed.</div>
<div>></div>
<div>> what is the RTEMS sources version?</div>
<div>></div>
<div>> I have tested RTL on Zynq about last week and it worked correctly.</div>
<div>> I use actual RTEMS master git sources.</div>
<div>></div>
<div>> If you use RTEMS build before next patch then it is highly probable</div>
<div>> that you experience failures on stargets with cache enabled.</div>
<div>></div>
<div>>   libdl/rtl-obj.c: synchronize cache after code relocation.</div>
<div>>   Pavel Pisa<pisa@cmp.felk.cvut.cz></div>
<div>>   7/21/16 2:35 AM</div>
<div>></div>
<div>> There is even another patch which synchronizes and cleans cache during</div>
<div>> startup</div>
<div>></div>
<div>>   arm/xilinx_zynq: ensure that cache is cleaned and MMU disabled when</div>
<div>> initialization starts. Chris Johns<chrisj@rtems.org></div>
<div>>   Pavel Pisa<pisa@cmp.felk.cvut.cz></div>
<div>>   8/31/16 4:49 PM</div>
<div>></div>
<div>> It should not be crucial for UP (non SMP) use. But it would worth</div>
<div>> to retest your actual RTEMS master version.</div>
<div>></div>
<div>> If you are working with stable RTEMS 4.11 pre-release branch</div>
<div>> then problems are not fixed there.</div>
<div>></div>
<div>> I think that it would worth to consider whole cache related</div>
<div>> issues update for 4.11 branch as well.</div>
<div>></div>
<div>> Best wishes,</div>
<div>></div>
<div>>                Pavel</div>
</div></blockquote>
</body></html>