From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 49041 invoked by alias); 17 Aug 2016 05:18:27 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 49032 invoked by uid 89); 17 Aug 2016 05:18:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=BAYES_00,KAM_MX4,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=no version=3.3.2 spammy=HAuthentication-Results:header.i, Hx-languages-length:2856, him, Hx-spam-relays-external:ESMTPA X-HELO: mail06.SiriusCloud.jp Received: from mail06.SiriusCloud.jp (HELO mail06.SiriusCloud.jp) (219.118.72.6) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 17 Aug 2016 05:18:16 +0000 Received: from [192.168.0.111] (ntkngw398146.kngw.nt.ngn2.ppp.infoweb.ne.jp [124.25.101.146]) (Authenticated sender: ishikawa@yk.rim.or.jp) by access06.SiriusCloud.jp (Postfix) with ESMTPA id 7D44DE0BC for ; Wed, 17 Aug 2016 14:18:13 +0900 (JST) Authentication-Results: access06.SiriusCloud.jp; dkim=none (no signature) header.i=unknown; x-dkim-adsp=none (insecure policy) Subject: Re: h8300 sim: what is "eightbit" memory ? To: gdb@sourceware.org References: <20160817022656.GG30544@vapier.lan> From: "ISHIKAWA,chiaki" Message-ID: <89caac16-7e2a-3322-3bf4-0356460f7533@yk.rim.or.jp> Date: Wed, 17 Aug 2016 05:18:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <20160817022656.GG30544@vapier.lan> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2016-08/txt/msg00035.txt.bz2 Hi, Sorry for top-posting, but doesn't this "eightbit mem" refer to area that is accessible with 8-bit offset? I think I worked with H8/240H or some such CPU and not sure if H8/300H has similar architecture. (And my expperience is 10-year old one, ...) On 2016/08/17 11:26, Mike Frysinger wrote: > the h8300 sim has its own implementation for memory handling that i'd > like to replace with the common sim memory code. however, it's got a > weird bit of code it calls "eightbit mem" that makes this not as easy > as it would otherwise be. the code has this comment: > /* These define the size of main memory for the simulator. > > Note the size of main memory for the H8/300H is only 256k. Keeping it > small makes the simulator run much faster and consume less memory. > > The linker knows about the limited size of the simulator's main memory > on the H8/300H (via the h8300h.sc linker script). So if you change > H8300H_MSIZE, be sure to fix the linker script too. > > Also note that there's a separate "eightbit" area aside from main > memory. For simplicity, the simulator assumes any data memory reference > outside of main memory refers to the eightbit area (in theory, this > can only happen when simulating H8/300H programs). We make no attempt > to catch overlapping addresses, wrapped addresses, etc etc. */ > > i've read the H8/300 Programming Manual and the H8/300H Software Manual > and can't find documentation on it. the closest i can find is the bits > about the exception vectors, but that sounds like a convention where the > first 256 bytes of memory are used for a special purpose. the sim will > actually allocate a sep memory buffer of 256 bytes and you address it by > accessing anywhere outside of main memory. e.g. i would expect code to > access it like: > uint32_t *data = (void *)0; > data[0] = reset_exception_vector; > not like the sim expects like: > uint8_t *data = (void *)0x1000000; > data[0] = ...; > > the gcc manual doesn't have a lot to say: > Use this attribute on the H8/300, H8/300H, and H8S to indicate that the > specified variable should be placed into the eight-bit data section. The > compiler generates more efficient code for certain operations on data in > the eight-bit data area. Note the eight-bit data area is limited to 256 > bytes of data. > > and the gcc code implies that it's accessed via special addressing: > eightbit_data: This variable lives in the 8-bit data area and can > be referenced with 8-bit absolute memory addresses. > > but the sim doesn't access its eightbit memory based on specific insns, > it does it purely on the addresses requested. > > unfortunately, much of this code was authored by Michael Snyder, so i > can't ask him :(. does anyone familiar with the H8/300 have a clue as > to what's going on with this code ? > -mike >