From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9919 invoked by alias); 23 Jun 2011 16:48:14 -0000 Received: (qmail 9895 invoked by uid 22791); 23 Jun 2011 16:48:12 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,TW_KG X-Spam-Check-By: sourceware.org Received: from elasmtp-banded.atl.sa.earthlink.net (HELO elasmtp-banded.atl.sa.earthlink.net) (209.86.89.70) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 23 Jun 2011 16:47:55 +0000 Received: from [68.114.62.146] (helo=[192.168.0.5]) by elasmtp-banded.atl.sa.earthlink.net with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.67) (envelope-from ) id 1QZn4L-0008D2-0K; Thu, 23 Jun 2011 12:47:53 -0400 Message-ID: <4E036E37.8070100@mindspring.com> Date: Thu, 23 Jun 2011 16:48:00 -0000 From: Frank Pagliughi User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc14 Lightning/1.0b2 Thunderbird/3.1.10 MIME-Version: 1.0 To: John Dallaway CC: Christophe Coutand , eCos Development List Subject: Re: Eagle 100 (Stellaris LM3S6918) References: <4D809BF2.6040205@dallaway.org.uk> <4D8208F0.5010500@kses.net> <4DFA071F.4060504@mindspring.com> <4DFA0DAA.3000601@dallaway.org.uk> <1308233778.22353.4.camel@hp-study> <4DFA1320.7090500@mindspring.com> <4DFF64B3.9070507@mindspring.com> <4E007A9B.70800@dallaway.org.uk> <4E034E19.4030609@dallaway.org.uk> In-Reply-To: <4E034E19.4030609@dallaway.org.uk> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ELNK-Trace: 4d82f965df0f6dd9e3f977c6d1ea408f0a9da525759e2654e322cfdc76a9d84cc234579aa6a182ab3899c79c7caf56c9350badd9bab72f9c350badd9bab72f9c X-IsSubscribed: yes Mailing-List: contact ecos-devel-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: ecos-devel-owner@ecos.sourceware.org X-SW-Source: 2011-06/txt/msg00022.txt.bz2 On 06/23/2011 10:30 AM, John Dallaway wrote: > Hi Christophe and Frank > > Christophe Coutand wrote: > >> I had the same thinking as Frank when adding the lm3s family, i.e. create >> a new package every time a new LM3S series is added, in the present case, >> a new lm3s6xxx layer that covers all 19 devices. >> >> The interrupt mapping in lm3s/var/include/var_intr.h should cover all series >> as far as I could see. Few interrupts are currently missing, they shall be >> filled as new series are added. The lm3s/var/include/var_io.h can be extended >> to include Ethernet, CAN, USB register definitions etc.. I use the >> lm3s8xx/include/plf_io.h to refine the set of peripherals included in each >> device of the 800 series. Since sub-series of the 6000 series have different >> memory sizes, the memory layout must be included in the board specific package. >> >> In addition, current device drivers for the LM3S (I2C, ADC) are only >> constrained to use the LM3S HAL and not constrained by series or sub-series. >> In practice, this means that using the LM3S ADC driver with the LM3S800 for >> instance, will not raise any dependency error during configuration. Since the >> LM3S800 does not have an ADC peripheral, the lm3s8xx/include/plf_io.h will not >> allow the lm3s/var/include/var_io.h to define the ADC registers, therefore, >> the ADC driver will not compile. I believed this to be ok, users most have a >> minimal knowledge of the hardware in use. > As long as the refining of definitions performed in the "LM3S series" > HAL packages such as lm3s8xx provide information that is truly specific > to that series and cannot be inferred simply by testing for the presence > of various peripheral driver packages, then I don't see any problem here > and it would make sense for Frank to follow this pattern by creating an > lm3s6xxx HAL package. That makes some sense. But two things: (1) I worry a little about the implementation of a lot of code that I wouldn't be able to test - like creating the plf_io.h definitions for all 19 chips in the lm3s6xxx without the ability to test any but one. But I suppose that would shake out in the long run. (2) I'm still unsure of how to implement the package when the different chips have different memory sizes. A quick look through the existing hal and all I find is hard-coded constants in the pkgconfig files. For both those reasons, I started wondering if it wouldn't be better to either create separate packages for each of the different individual chips. That way each package would be relatively small, easy to implement, and fully tested when implemented. But that would result in over 180 packages just for Stellaris! Then I thought maybe we group the chips by memory sizes, like a package called "lm3s256x64" for all the chips with 256k Flash and 64k RAM. But that would make it difficult to track chips by part number. > Regards > > John Dallaway > eCos maintainer > http://www.dallaway.org.uk/john >