Renesas H8S 2378F Flash Development Toolkit Application Note
Below you will find brief information for Flash Development Toolkit H8S 2378F. This note describes the use of the Renesas Flash Development Toolkit and the use of the user program mode of the H8S/2378F (H8S Family) using the Flash Development Toolkit.
advertisement
Assistant Bot
Need help? Our chatbot has already read the manual and is ready to assist you. Feel free to ask any questions about the device, but providing details will make the conversation more productive.
▼
Scroll to page 2
of
109
To our customers, Old Company Name in Catalogs and Other Documents On April 1st, 2010, NEC Electronics Corporation merged with Renesas Technology Corporation, and Renesas Electronics Corporation took over all the business of both companies. Therefore, although the old company name remains in this document, it is a valid Renesas Electronics document. We appreciate your understanding. Renesas Electronics website: http://www.renesas.com April 1st, 2010 Renesas Electronics Corporation Issued by: Renesas Electronics Corporation (http://www.renesas.com) Send any inquiries to http://www.renesas.com/inquiry. Notice 1. 2. 3. 4. 5. 6. 7. All information included in this document is current as of the date this document is issued. Such information, however, is subject to change without any prior notice. Before purchasing or using any Renesas Electronics products listed herein, please confirm the latest product information with a Renesas Electronics sales office. Also, please pay regular and careful attention to additional and different information to be disclosed by Renesas Electronics such as that disclosed through our website. Renesas Electronics does not assume any liability for infringement of patents, copyrights, or other intellectual property rights of third parties by or arising from the use of Renesas Electronics products or technical information described in this document. No license, express, implied or otherwise, is granted hereby under any patents, copyrights or other intellectual property rights of Renesas Electronics or others. You should not alter, modify, copy, or otherwise misappropriate any Renesas Electronics product, whether in whole or in part. Descriptions of circuits, software and other related information in this document are provided only to illustrate the operation of semiconductor products and application examples. You are fully responsible for the incorporation of these circuits, software, and information in the design of your equipment. Renesas Electronics assumes no responsibility for any losses incurred by you or third parties arising from the use of these circuits, software, or information. When exporting the products or technology described in this document, you should comply with the applicable export control laws and regulations and follow the procedures required by such laws and regulations. You should not use Renesas Electronics products or the technology described in this document for any purpose relating to military applications or use by the military, including but not limited to the development of weapons of mass destruction. Renesas Electronics products and technology may not be used for or incorporated into any products or systems whose manufacture, use, or sale is prohibited under any applicable domestic or foreign laws or regulations. Renesas Electronics has used reasonable care in preparing the information included in this document, but Renesas Electronics does not warrant that such information is error free. Renesas Electronics assumes no liability whatsoever for any damages incurred by you resulting from errors in or omissions from the information included herein. Renesas Electronics products are classified according to the following three quality grades: “Standard”, “High Quality”, and “Specific”. The recommended applications for each Renesas Electronics product depends on the product’s quality grade, as indicated below. You must check the quality grade of each Renesas Electronics product before using it in a particular application. You may not use any Renesas Electronics product for any application categorized as “Specific” without the prior written consent of Renesas Electronics. Further, you may not use any Renesas Electronics product for any application for which it is not intended without the prior written consent of Renesas Electronics. Renesas Electronics shall not be in any way liable for any damages or losses incurred by you or third parties arising from the use of any Renesas Electronics product for an application categorized as “Specific” or for which the product is not intended where you have failed to obtain the prior written consent of Renesas Electronics. The quality grade of each Renesas Electronics product is “Standard” unless otherwise expressly specified in a Renesas Electronics data sheets or data books, etc. “Standard”: 8. 9. 10. 11. 12. Computers; office equipment; communications equipment; test and measurement equipment; audio and visual equipment; home electronic appliances; machine tools; personal electronic equipment; and industrial robots. “High Quality”: Transportation equipment (automobiles, trains, ships, etc.); traffic control systems; anti-disaster systems; anticrime systems; safety equipment; and medical equipment not specifically designed for life support. “Specific”: Aircraft; aerospace equipment; submersible repeaters; nuclear reactor control systems; medical equipment or systems for life support (e.g. artificial life support devices or systems), surgical implantations, or healthcare intervention (e.g. excision, etc.), and any other applications or purposes that pose a direct threat to human life. You should use the Renesas Electronics products described in this document within the range specified by Renesas Electronics, especially with respect to the maximum rating, operating supply voltage range, movement power voltage range, heat radiation characteristics, installation and other product characteristics. Renesas Electronics shall have no liability for malfunctions or damages arising out of the use of Renesas Electronics products beyond such specified ranges. Although Renesas Electronics endeavors to improve the quality and reliability of its products, semiconductor products have specific characteristics such as the occurrence of failure at a certain rate and malfunctions under certain use conditions. Further, Renesas Electronics products are not subject to radiation resistance design. Please be sure to implement safety measures to guard them against the possibility of physical injury, and injury or damage caused by fire in the event of the failure of a Renesas Electronics product, such as safety design for hardware and software including but not limited to redundancy, fire control and malfunction prevention, appropriate treatment for aging degradation or any other appropriate measures. Because the evaluation of microcomputer software alone is very difficult, please evaluate the safety of the final products or system manufactured by you. Please contact a Renesas Electronics sales office for details as to environmental matters such as the environmental compatibility of each Renesas Electronics product. Please use Renesas Electronics products in compliance with all applicable laws and regulations that regulate the inclusion or use of controlled substances, including without limitation, the EU RoHS Directive. Renesas Electronics assumes no liability for damages or losses occurring as a result of your noncompliance with applicable laws and regulations. This document may not be reproduced or duplicated, in any form, in whole or in part, without prior written consent of Renesas Electronics. Please contact a Renesas Electronics sales office if you have any questions regarding the information contained in this document or Renesas Electronics products, or if you have any other inquiries. (Note 1) “Renesas Electronics” as used in this document means Renesas Electronics Corporation and also includes its majorityowned subsidiaries. (Note 2) “Renesas Electronics product(s)” means any product developed or manufactured by or for Renesas Electronics. Application Note Flash Development Toolkit Application Note (Applications) User Program Mode (H8S/2378F) www.renesas-electoronics.com Rev.1.00 2006.06 Notes regarding these materials 1. This document is provided for reference purposes only so that Renesas customers may select the appropriate Renesas products for their use. Renesas neither makes warranties or representations with respect to the accuracy or completeness of the information contained in this document nor grants any license to any intellectual property rights or any other rights of Renesas or any third party with respect to the information in this document. 2. Renesas shall have no liability for damages or infringement of any intellectual property or other rights arising out of the use of any information in this document, including, but not limited to, product data, diagrams, charts, programs, algorithms, and application circuit examples. 3. You should not use the products or the technology described in this document for the purpose of military applications such as the development of weapons of mass destruction or for the purpose of any other military use. When exporting the products or technology described herein, you should follow the applicable export control laws and regulations, and procedures required by such laws and regulations. 4. All information included in this document such as product data, diagrams, charts, programs, algorithms, and application circuit examples, is current as of the date this document is issued. Such information, however, is subject to change without any prior notice. Before purchasing or using any Renesas products listed in this document, please confirm the latest product information with a Renesas sales office. Also, please pay regular and careful attention to additional and different information to be disclosed by Renesas such as that disclosed through our website. (http://www.renesas.com ) 5. Renesas has used reasonable care in compiling the information included in this document, but Renesas assumes no liability whatsoever for any damages incurred as a result of errors or omissions in the information included in this document. 6. When using or otherwise relying on the information in this document, you should evaluate the information in light of the total system before deciding about the applicability of such information to the intended application. Renesas makes no representations, warranties or guaranties regarding the suitability of its products for any particular application and specifically disclaims any liability arising out of the application and use of the information in this document or Renesas products. 7. With the exception of products specified by Renesas as suitable for automobile applications, Renesas products are not designed, manufactured or tested for applications or otherwise in systems the failure or malfunction of which may cause a direct threat to human life or create a risk of human injury or which require especially high quality and reliability such as safety systems, or equipment or systems for transportation and traffic, healthcare, combustion control, aerospace and aeronautics, nuclear power, or undersea communication transmission. If you are considering the use of our products for such purposes, please contact a Renesas sales office beforehand. Renesas shall have no liability for damages arising out of the uses set forth above. 8. Notwithstanding the preceding paragraph, you should not use Renesas products for the purposes listed below: (1) artificial life support devices or systems (2) surgical implantations (3) healthcare intervention (e.g., excision, administration of medication, etc.) (4) any other purposes that pose a direct threat to human life Renesas shall have no liability for damages arising out of the uses set forth in the above and purchasers who elect to use Renesas products in any of the foregoing applications shall indemnify and hold harmless Renesas Technology Corp., its affiliated companies and their officers, directors, and employees against any and all damages arising out of such applications. 9. You should use the products described herein within the range specified by Renesas, especially with respect to the maximum rating, operating supply voltage range, movement power voltage range, heat radiation characteristics, installation and other product characteristics. Renesas shall have no liability for malfunctions or damages arising out of the use of Renesas products beyond such specified ranges. 10. Although Renesas endeavors to improve the quality and reliability of its products, IC products have specific characteristics such as the occurrence of failure at a certain rate and malfunctions under certain use conditions. Please be sure to implement safety measures to guard against the possibility of physical injury, and injury or damage caused by fire in the event of the failure of a Renesas product, such as safety design for hardware and software including but not limited to redundancy, fire control and malfunction prevention, appropriate treatment for aging degradation or any other applicable measures. Among others, since the evaluation of microcomputer software alone is very difficult, please evaluate the safety of the final products or system manufactured by you. 11. In case Renesas products listed in this document are detached from the products to which the Renesas products are attached or affixed, the risk of accident such as swallowing by infants and small children is very high. You should implement safety measures so that Renesas products may not be easily detached from your products. Renesas shall have no liability for damages arising out of such detachment. 12. This document may not be reproduced or duplicated, in any form, in whole or in part, without prior written approval from Renesas. 13. Please contact a Renesas sales office if you have any questions regarding the information contained in this document, Renesas semiconductor products, or if you have any other inquiries. Renesas Flash Development Toolkit Application Note (Applications) User Program Mode (H8S/2378F) Revision 1.0 Renesas Technology Corp. Contents 1. Introduction ............................................................................................................... 1 2. H8S/2378F (H8S Family)........................................................................................... 2 2.1 Flash Memory Configuration .......................................................................................... 2 2.2 Operating Modes.............................................................................................................. 2 2.3 On-Board Programming Modes ....................................................................................... 3 3. Functions of the Flash Development Toolkit............................................................. 4 3.1 Main Functions ................................................................................................................ 4 4. Operating the Flash Development Toolkit ................................................................ 6 4.1 Connecting the Adapter Board ........................................................................................ 6 Connecting the Adapter Board ................................................................................................................ 7 4.1.1 4.2 Setting Pins on the Adapter Board .......................................................................................... 8 Setting the Flash Development Toolkit........................................................................... 9 4.2.1 Starting the Flash Development Toolkit.................................................................................. 9 4.2.2 Selecting an Option ................................................................................................................... 9 4.2.3 Setting a New Project Workspace .......................................................................................... 10 4.2.4 Selecting the Device and Kernel .............................................................................................11 4.2.5 Selecting a Communications Port .......................................................................................... 12 4.2.6 Adapter Board Pin Settings.................................................................................................... 13 4.2.7 Selecting a USB Device........................................................................................................... 15 4.2.8 Selecting a Device.................................................................................................................... 16 4.2.9 Selecting the Clock Mode ........................................................................................................ 17 4.2.10 Checking the Generic Device.................................................................................................. 18 4.2.11 Setting the Device (Input Clock) ............................................................................................ 19 4.2.12 Selecting the Connection Type (Communication Speed) ...................................................... 20 4.2.13 Selecting Programming Options (Protection Level and Messaging Level) ......................... 21 4.2.14 Reset Mode Pin Settings ......................................................................................................... 22 4.2.15 Completion of Connection ....................................................................................................... 23 4.3 Boot Mode 1 (Programming the User Boot Area).......................................................... 24 4.3.1 Selecting a File ........................................................................................................................ 24 4.3.2 Programming ........................................................................................................................... 26 4.3.3 Blank Check............................................................................................................................. 29 4.3.4 Checksum................................................................................................................................. 32 4.3.5 Disconnecting the Device ........................................................................................................ 34 4.3.6 Removing a File ....................................................................................................................... 36 4.3.7 Removing a Folder................................................................................................................... 39 ii 4.3.8 4.4 Exiting...................................................................................................................................... 41 Boot Mode 2 (Programming the User Area) .................................................................. 42 4.4.1 Starting the Flash Development Toolkit................................................................................ 42 4.4.2 Selecting an Option ................................................................................................................. 42 4.4.3 Connecting the Device............................................................................................................. 44 4.4.4 Selecting a File ........................................................................................................................ 46 4.4.5 Programming ........................................................................................................................... 48 4.4.6 Blank Check and Checksum................................................................................................... 50 4.5 User Boot Mode.............................................................................................................. 51 4.5.1 Writing a Program in the User Boot Area ............................................................................. 51 4.5.2 Disconnecting the Device ........................................................................................................ 52 4.5.3 Configuring the Project........................................................................................................... 53 4.5.4 Setting the User Program Mode............................................................................................. 55 4.5.5 Connecting the Device............................................................................................................. 59 4.5.6 Programming ........................................................................................................................... 60 4.5.7 Blank Check and Checksum................................................................................................... 63 4.6 User Program Mode ....................................................................................................... 64 4.6.1 Writing a Program in the User Area ...................................................................................... 64 4.6.2 Setting the User Program Mode............................................................................................. 65 4.6.3 Connecting the Device............................................................................................................. 69 4.6.4 Programming ........................................................................................................................... 70 4.6.5 Blank Check and Checksum................................................................................................... 72 5. Flash Development Toolkit Processing.................................................................... 73 6. Sample Program ...................................................................................................... 74 6.1 File Configuration.......................................................................................................... 74 6.2 Source Files .................................................................................................................... 75 6.3 Modules .......................................................................................................................... 76 6.4 Module Hierarchical Structure...................................................................................... 77 6.5 Flow of the Program ...................................................................................................... 80 6.5.1 Program Processing Flow ....................................................................................................... 80 6.5.2 Main Processing (main) .......................................................................................................... 81 6.5.3 ROM Main Processing (RomMain)......................................................................................... 81 6.5.4 RAM Main Processing (RamMain)......................................................................................... 82 7. Source Files of the Sample Program ....................................................................... 83 7.1 Header Files ................................................................................................................... 83 7.1.1 Bit Rate Setting (GenTest.h) .................................................................................................. 83 iii 7.1.2 I/O Register Definition (io2378.h) .......................................................................................... 84 7.1.3 Macro Definition (FDTUMain.h and KAIg.h) ....................................................................... 85 7.2 Main Processing and ROM Main Processing ................................................................ 86 7.2.1 Module Hierarchical Structure............................................................................................... 86 7.2.2 Reset Vectors (GenTest.c and GenTest.h) .............................................................................. 86 7.2.3 Transfer Start (Ugenu.c and rom2ram.src) ........................................................................... 87 7.2.4 Command Function (Ugenu.c, commands.h, CmdFunc.c, and DeviceInfo.h) ..................... 87 7.3 RAM Main Processing ................................................................................................... 88 7.3.1 Library Transfer (FDTUMain.c)............................................................................................. 88 7.3.2 Area Selection (FDTUMain.c) ................................................................................................ 90 7.3.3 Flash Memory Erasing (FDTErase.c) .................................................................................... 91 7.3.4 Flash Memory Programming (FDTWrite.c)........................................................................... 92 8. Programming Guide................................................................................................. 94 8.1 Overview ........................................................................................................................ 94 8.2 Control Registers and Control Bits ............................................................................... 94 8.2.1 Selecting a Function................................................................................................................ 94 8.2.2 Starting Library Downloading ............................................................................................... 94 8.2.3 Selecting a Library .................................................................................................................. 95 8.2.4 Selecting the User Boot Area.................................................................................................. 95 8.2.5 Selecting the Transfer Destination ........................................................................................ 95 8.3 Using the Libraries ........................................................................................................ 96 8.3.1 Transfer.................................................................................................................................... 96 8.3.2 Erasing ..................................................................................................................................... 96 8.3.3 Programming ........................................................................................................................... 96 8.4 Modules .......................................................................................................................... 97 8.5 Module Specifications .................................................................................................... 97 8.5.1 Transfer Start .......................................................................................................................... 97 8.5.2 Erase Initial Setting................................................................................................................ 98 8.5.3 Block Erasing........................................................................................................................... 98 8.5.4 Programming Initial Setting .................................................................................................. 98 8.5.5 Programming ........................................................................................................................... 99 iv 1. Introduction This application note describes the following items with respect to the use of the Renesas Flash Development Toolkit and the use of the user program mode of the H8S/2378F (H8S Family) using the Flash Development Toolkit: (1) Boot mode 1 (programming the user boot area) (2) Boot mode 2 (programming the user area) (3) User boot mode (4) User program mode Read the explanation of these items and understand differences among the boot mode, user boot mode, and user program mode and how to use the user program mode. This application note also describes a sample program which programs and erases on-chip flash memory used in the user program mode. To program or erase flash memory in the user program mode, refer to this sample program. 1 2. H8S/2378F (H8S Family) 2.1 Flash Memory Configuration The flash memory of the H8S/2378F has two types of memory MATs: User MAT (user area) and user boot MAT (user boot area). In addition, it has an area for storing a flash memory programming and erasing control program that is called a boot MAT (boot area). This application note calls them the user area, user boot area, and boot area, respectively. The flash memory configuration is shown in Table 2-1. Table 2-1 Flash Memory Configuration Area Type User area Size Flash memory 512 Kbytes Block(s) 16 blocks Eight 4-Kbyte blocks One 32-Kbyte block Seven 64-Kbyte blocks User boot area Flash memory 8 Kbytes 1 block Boot area Control program - - 2.2 Operating Modes The H8S/2378 has six operating modes (modes 1 to 5 and 7). The operating mode is selected by the setting the mode pins (MD2 to MD0). Modes 1, 2, and 4 are externally expanded modes in which the CPU can access external memory and peripheral devices. In an externally expanded mode, each area in the external address space can be switched between 8- or 16-bit address space by the bus controller after the start of the execution of a program. If any one of the areas is set to 16-bit address space, the 16-bit bus mode is used. When all areas are set to 8-bit address space, the 8-bit bus mode is used. Mode 7 is a single-chip activation externally expanded mode in which the CPU can switch to access external memory and peripheral devices at the start of the execution of a program. Mode 3 is a boot mode and mode 5 is a user boot mode, both in which flash memory can be programmed or erased. Do not change the settings of pins MD2 to MD0 during LSI operation. For details, refer to the Hardware Manual. Table 2-2 MCU Operating Modes MCU Operating Mode MD2 MD1 MD0 CPU Operating Mode Description On-Chip ROM External Data Bus Initial Value Maximum Value 1 0 0 1 Advanced Expanded mode with on-chip ROM disabled Disabled 16 bits 16 bits 2 0 1 0 Advanced Expanded mode with on-chip ROM disabled Disabled 8 bits 16 bits 3 0 1 1 Advanced Boot mode Enabled - 16 bits 4 1 0 0 Advanced Expanded mode with on-chip ROM enabled Enabled 8 bits 16 bits 5 1 0 1 Advanced User boot mode Enabled - 16 bits 7 1 1 1 Advanced Single-chip mode Enabled - 16 bits 2 2.3 On-Board Programming Modes There are three on-board programming modes: Boot mode, user program mode, and user boot mode. The on-board programming modes are listed in Table 2-3. Table 2-3 On-Board Programming Modes Item Operating mode Boot Mode User Program Mode Mode 3 Mode 4 (Expanded mode with on-chip ROM enabled) User Boot Mode Mode 5 Mode 7 (Single-chip mode) The user area can be programmed by using a desired interface. The user boot program of a desired interface can be created and the user area can be programmed. Boot area User area User boot area (On-chip boot program) (User-created user program) (User-created user boot program) Programming/erasing enable area User area User area User area All erasure 9 (Automatic) 9 9 Block division erasure 9*1 9 9 Program-data transfer From the host via the SCI From a desired device via RAM From a desired device via RAM Reset start On-chip boot program storage area (Boot area) User area User boot area*2 Transition to user program mode Changing mode setting and reset Changing the FLSHE bit setting Changing mode setting and reset Function This mode is a program mode that uses an on-chip SCI interface. The user area and user boot area can be programmed. This mode can automatically adjust the bit rate between the host and the LSI. All areas in the user area and user boot area are erased first. Control program User boot area Notes: 1. All-erasure is performed. After that, the specified block can be erased. 2. Firstly, the activation is made from the embedded program storage area. After the flash memory related registers are checked, the reset vector is fetched from the user boot area. The user boot area can be programmed or erased only in the boot mode. The user area and user boot area are entirely erased in the boot mode. Then, the user area or user boot area can be programmed by commands. However, the contents of the area cannot be read until the all-erasure state. You can program the user boot area in the boot mode then program the user area is programmed in the user boot mode, or program only the user area by not entering the user boot mode. In the user boot mode, the boot operation via a desired interface can be performed by the mode pin setting different from that in the user program mode. 3 3. Functions of the Flash Development Toolkit The Renesas Flash Development Toolkit is an on-board flash programming tool for Renesas F-ZTAT microcomputers, which offers a sophisticated and easy-to-use graphical user interface. When it is used with Renesas High-performance Embedded Workshop (HEW), it provides users who develop embedded application software using Renesas F-ZTAT microcomputers with an integrated development environment. The Flash Development Toolkit can also be used as an editor for S-record and hexadecimal files. Note: F-ZTAT (Flexible-Zero Turn Around Time) is a trademark of Renesas Technology Corp. 3.1 Main Functions • Connecting a device: Connects to a device to the interface of the Flash Development Toolkit. • Disconnecting the device: Disconnects the device from the interface of the Flash Development Toolkit. • Erasing blocks: Open the "Erase Block" dialog to erase all or individual blocks in flash memory on the device. • Checking the blank status: Checks whether the flash memory on the target device is blank. • Uploading data: Uploads data from the target device. • Downloading a target file: Downloads an active file on the hexadecimal editor. • Returning a checksum: Returns a checksum of data in flash memory. • Specifying a flash area: Sets a flash area in which non-programming (such as uploading and blank check) operations are to be performed. • The Flash Development Toolkit is available in the simple interface mode and basic simple interface mode to facilitate the usability of the kit. For details, refer to Renesas Flash Development Toolkit 3.4 User's Manual 4 The graphical user interface screen of the Flash Development Toolkit is shown in Figure 3-1. Figure 3-1 Graphical User Interface of the Flash Development Toolkit 5 4. 4.1 Operating the Flash Development Toolkit Connecting the Adapter Board On-board programming adapter board for F-ZTAT* microcomputers HS0008EAUF1H (called the adapter board hereafter), which is connected between a host computer and user system, has a function which can write a user application program in flash memory incorporated in an F-ZTAT microcomputer on the user system (on-board) and erase it from the flash memory. The adapter board connection is shown in Figure 4-1. Note: F-ZTAT (Flexible-Zero Turn Around Time) is a trademark of Renesas Technology Corp. Note: FDM (flash development module) is a former name of the adapter board. USB cable Adapter board Host computer User system F-ZTAT microcomputer Figure 4-1 Connecting the Adapter Board 6 The pin numbers and corresponding signals of the user system interface cable used for connecting the adapter board and user system are shown below. Table 4-1 Pin Numbers and Corresponding Signals of the HS0008EAUF1H User Interface Cable No Signal Name No. 2 Signal Name 1 RES GND 3 FWx 4 GND 5 MD0 6 GND 7 MD1 8 GND 9 MD2 (IO0) 10 GND 11 MD3 (IO1) 12 GND 13 MD4 (IO2) 14 GND 15 RXD (TXD on the user system side) 16 GND*1 17 TXD (RXD on the user system side) 18 VIN (Vcc or PVcc)*2 19 SCK (NC) 20 VIN (PVcc)*2 Notes: 1. Be sure to connect pin No. 16 to GND to confirm that the user system is connected properly. 2. For a device with Vcc and PVcc, be sure to supply Vcc or PVcc (pin No. 18) and PVcc (pin No. 20) to the VIN pins of the user interface connector, respectively. To use a device under condition that Vcc = PVcc, or only Vcc is present in the device, be sure to supply Vcc to both VIN pins Vcc or PVcc (pin No. 18) and PVcc (pin No. 20). Connecting the Adapter Board An example of connecting the H8S/2378F and Renesas adapter board (HS0008EAUF1H) is shown in Figure 4-2. The pull-up and pull-down resistor values shown are only examples. Evaluate the microcomputer to determine the actual values on the user system. 7 Adapter board (HS0008EAUF1H) Vcc Pulled up at 47 kΩ or more. VIN 18,20 (Vcc) RXD 15 TxD1 TXD RxD1 17 SW6-1(MD0) MD0 SW6-2(MD1) MD1 SW6-3(MD2) MD2 MD2 9 (IO0) Pulled down at about 1 kΩ. H8S/2378F Vcc Pulled up at about 1 kΩ. RES 1 RES GND 2,4,6,8,10, 12,14,16 Connector*1 3428-6002LCSC Note: 1. Manufacturer: 3M Corporate Figure 4-2 Example of Connecting the H8S/2378F and Adapter Board 4.1.1 Setting Pins on the Adapter Board An example of setting pins for the boot mode when the H8S/2378F user system and Renesas adapter board (HS0008EAUF1H) are connected is shown in Table 4-2. Use the mode switches to set the operating mode. Table 4-2 Example of Setting Pins on the H8S/2378F and Adapter Board (for the Boot Mode) Pin No. Pin on the Adapter Board Pin on the Device Input/Output Output Level 1 RES RES Output (default) Adapter board 3 FWx Mode switch Output High (1) 5 MD0 NC NC - 7 MD1 NC NC - 9 MD2(IO0) Serial I/O switch Output Low (0) 11 MD3(IO1) NC NC - 13 MD4(IO2) NC NC - 15 RXD TXD Input (default) Adapter board 17 TXD RXD Output (default) Adapter board 19 SCK (NC) NC NC (default) - Note: NC: Means no connection. 8 4.2 Setting the Flash Development Toolkit Set the Flash Development Toolkit first to write a program in flash memory. 4.2.1 Starting the Flash Development Toolkit From the "All Programs" menu, select "Flash Development Toolkit 3.4." 4.2.2 Selecting an Option The "Welcome" screen of the Flash Development Toolkit appears. Select "Create a new project workspace." When the Flash Development Toolkit is started up for the second and subsequent times, the previously selected device and port information is retained. Select "Open a recent project workspace." When you have selected an option, click "OK." 9 4.2.3 Setting a New Project Workspace Set a new project workspace. Use "Browse..." and select a directory, and specify the device name in "Workspace Name." Specify a project name if required. In this example, the same name is specified in "Workspace Name" and "Project Name." When you have set the project workspace, click "OK." 10 4.2.4 Selecting the Device and Kernel Select the target device from the pull-down menu. Select "Generic BOOT Device" because the H8S/2378F is a 0.18-μm product. When you have selected the device, click "Next(N)." 11 4.2.5 Selecting a Communications Port Select the adapter board (FDM) from the pull-down menu. When you have selected the communications port, click "Next(N)." 12 4.2.6 Adapter Board Pin Settings Set the pins on the adapter board (FDM) for the boot mode. For example, set the output of FWx pin to high (1) (open jumper J15) and that of MD2 (IO0) to low (0). In this example, the FWx pin outputs 1 for setting a mode and MD2 (IO0) outputs 0 for serial communication connection. Turn off the power and select the boot mode (mode 3) using DIP switch 6. Set DIP switch 6 as follows. When you have set the pins, turn on the power. Table 4-3 Operating Mode Settings MCU Operating Mode 3 CPU Operating Mode Boot mode Jumper FWE MD2 MD1 MD0 SCI Switch J15 FWx (Pin 3) on the Adapter Board SW6-3 SW6-2 SW6-1 MD2 (Pin 9) on the Adapter Board 1 (Output 1) 0 (ON) 1 (OFF) 1 (OFF) 0 (Output 0) 1 (Open) When you have set the pins, click "OK." When the device has been connected, click "OK." Note: Do not operate the mode switches during CPU operation. Be sure to operate the FWE and MD pins after turning off the power to the board or while pressing the RESET button. 13 An example of connecting the H8S/2378F and Renesas adapter board (HS0008EAUF1H) is shown in Figure 4-2. The pull-up and pull-down resistor values shown are only examples. Evaluate the microcomputer to determine the actual values on the user system. Adapter board (HS0008EAUF1H) Vcc Pulled up 47 k Ω or more. VIN 18,20 (Vcc) RXD 15 TxD1 TXD RxD1 17 SW6-1(MD0) MD0 SW6-2(MD1) MD1 SW6-3(MD2) H8S/2378F MD2 MD2 9 (IO0) Pulled down at about 1 k Vcc Pulled up at about 1 kΩ. RES 1 RES GND 2,4,6,8,10, 12,14,16 Connector*1 3428-6002LCSC Note: 1. Manufacturer: 3M Corporate Figure 4-3 Example of Connecting the H8S/2378F and Adapter Board An example of setting pins for the boot mode when the H8S/2378F user system and Renesas adapter board (HS0008EAUF1H) are connected is shown in Table 4-4. Use the mode switches to set the operating mode. Table 4-4 Example of Setting Pins on the H8S/2378F and Adapter Board (for the Boot Mode) Pin No. Pin on the Adapter Board Pin on the Device Input/Output Output Level 1 RES RES Output (default) Adapter board 3 FWx Mode switch Output High (1) 5 MD0 NC NC - 7 MD1 NC NC - 9 MD2 (IO0) Serial I/O switch Output Low (0) 11 MD3 (IO1) NC NC - 13 MD4 (IO2) NC NC - 15 RXD TXD Input (default) Adapter board 17 TXD RXD Output (default) Adapter board 19 SCK (NC) NC NC (default) - Note: NC: Means no connection. 14 4.2.7 Selecting a USB Device Check the device. Select the adapter board (FDM). When you have selected USB device, click "OK." 15 4.2.8 Selecting a Device Check the device. Select HD64F2378. When you have selected the device, click "OK." 16 4.2.9 Selecting the Clock Mode Check the device. Select the clock mode. When you have selected the clock mode, click "OK." 17 4.2.10 Checking the Generic Device The device has been checked. Click "OK." 18 4.2.11 Setting the Device (Input Clock) In the first column enter the frequency of the clock used for the board in MHz. For example, enter 8.25 (MHz). Set 4 in "Select the multiplier for the Main clock frequency (CKM):." When you have set the values, click "Next(N)." The input clock is the frequency of the clock directly input to the microcomputer. Enter the frequency of the crystal or ceramic resonator connected to the user system with three significant digits. The input clock differs from the operating frequency (PLL output). 19 4.2.12 Selecting the Connection Type (Communication Speed) Select a baud rate from the pull-down menu. For example, select 19200 (baud). When you have selected the baud rate, click "Next(N)." 20 4.2.13 Selecting Programming Options (Protection Level and Messaging Level) Select the protection level and messaging level. For example, select "Automatic" for "Protection" and "Advanced" for "Messaging." When you have selected programming options, click "Next(N)." 21 4.2.14 Reset Mode Pin Settings Set pins on the adapter board for restarting the device in the reset mode. These settings are not required for this procedure. When you have set the items, click "Finish." 22 4.2.15 Completion of Connection The H8S/2378F board has been connected to the Flash Development Toolkit in the boot mode. At this time, the contents of the user boot area and user area have been erased. 23 4.3 Boot Mode 1 (Programming the User Boot Area) Write a program in the user boot area in the boot mode. The program to be written is sample test program 2378F.mot (S-type file). The bit rate in this program has been modified according to the frequency. On how to modify the bit rate, refer to section 7.1.1, Bit Rate Setting (GenTest.h). 4.3.1 Selecting a File To select a file to be programmed, select "Add Files..." from the "Project" pull-down menu. 24 In the "Add File(s)" dialog, add file "2378F.mot." When you have selected the file, click "Add." File 2378F.mot is added to the project. 25 4.3.2 Programming To program the user boot area, set the user boot area. Click the right mouse button on file 2378F.mot to display the pop-up menu. Click "User Boot Area" so that the file can be downloaded to the user boot area. 26 Click the right mouse button on file 2378F.mot again to display the pop-up menu. Click "Download File to [User Boot Area]" to download file 2378F.mot to the user boot area. 27 You can check that the program has been downloaded to the user boot area. 28 4.3.3 Blank Check To confirm that the user boot area has been programmed, perform a blank check. Click "Device" to open the pull-down menu and select "Flash Area for Non-Write Ops," then "User Boot Area." 29 Click "Device" again to open the pull-down menu and click "Blank Check." 30 The result of the blank check for the selected area is displayed. The user boot area is not blank. 31 4.3.4 Checksum To confirm that the user boot area has been programmed, display a checksum. Click "Device" to open the pull-down menu and click "Flash Checksum." 32 The result of the checksum calculation is displayed. When the user boot area is blank, the following value is displayed as the result: Calculating device checksum Flash Checksum: 0x001FE000 (User Boot Area) Flash Checksum: 0x07F80000 (User Area) 33 4.3.5 Disconnecting the Device After programming has been completed, disconnect the device. Click "Device" to open the pull-down menu and click "Disconnect." 34 The device is disconnected. 35 4.3.6 Removing a File Remove a file. Click "Project" to open the pull-down menu and click "Remove Files...." 36 The file is displayed. Click "Remove All." Click "OK." 37 The file is removed. 38 4.3.7 Removing a Folder Remove a folder. Click the right mouse button on a folder to display the pop-up menu and click "Remove Folder." 39 The folder is removed. 40 4.3.8 Exiting Save the work folder and exit the Flash Development Toolkit. Click "File" to open the pull-down menu and click "Exit." Choose to save the session. Click "Yes." The Flash Development Toolkit terminates operation. The work file space of the Flash Development Toolkit is saved as file 2378.AWS. 41 4.4 Boot Mode 2 (Programming the User Area) Write a program in the user area in the boot mode. The same program as used in section 4.3, Boot Mode 1 (Programming the User Boot Area) is to be written. In this section, the saved work file space file (2378.AWS) is used to start the Flash Development Toolkit. 4.4.1 Starting the Flash Development Toolkit From the "All Programs" menu, select "Flash Development Toolkit 3.4." 4.4.2 Selecting an Option The "Welcome" screen of the Flash Development Toolkit appears. Select "Open a recent project workspace" and project workspace file 2378.AWS. When you have selected the file, click "OK." 42 Project 2378 is displayed. The Flash Development Toolkit can also be started by directly opening (or double-clicking on) project workspace file 2378.AWS. 43 4.4.3 Connecting the Device Connect the USB adapter board (FDM) to a PC and the H8S/2378F board to the adapter board and set the H8S/2378F board in the boot mode. To select the boot mode (mode 3), use DIP switch 6. Set DIP switch 6 as follows. Table 4-5 Operating Mode Setting MCU Operating Mode 3 CPU Operating Mode Boot mode Jumper FWE MD2 MD1 MD0 SCI Switch J15 FWx (Pin 3) on the Adapter Board SW6-3 SW6-2 SW6-1 MD2 (Pin 9) on the Adapter Board 1 (Output 1) 0 (ON) 1 (OFF) 1 (OFF) 0 (Output 0) 1 (Open) When you have set the pins, turn on the power. After connection is complete, click "Device" to open the pull-down menu and click "Connect to Device." Note: Do not operate the mode switches during CPU operation. Be sure to operate the FWE and MD pins after turning off the power to the board or while pressing the RESET button. 44 Select the adapter board (FDM). When you have selected USB device, click "OK." The adapter board is connected. 45 4.4.4 Selecting a File To select a file to be programmed, select "Add Files..." from the "Project" pull-down menu. 46 In the "Add File(s)" dialog, add file "2378F.mot." When you have selected the file, click "Add." File 2378F.mot is added to the project. 47 4.4.5 Programming Click the right mouse button on file 2378F.mot to display the pop-up menu. Click "Download File to [User Area]" to download file 2378F.mot to the user area. The default is "Download File to [User Area]." 48 You can check that the program has been downloaded to the user area. 49 4.4.6 Blank Check and Checksum To confirm that the user area has been programmed, perform a blank check and calculate a checksum. Click "Device" to open the pull-down menu and click "Blank Check." Click "Device" to open the pull-down menu and click "Flash Checksum." The results of the blank check and checksum calculation are displayed. 50 4.5 User Boot Mode In the user boot mode, the user area can be programmed or erased. The user boot area cannot be programmed or erased. 4.5.1 Writing a Program in the User Boot Area Start "Flash Development Toolkit 3.4" and open project workspace file 2378.AWS. Write program file 2378F.mot in the user boot area in the boot mode. In this sample, toolbar positions are changed to display the Configure Project button. 51 4.5.2 Disconnecting the Device Click "Device" to open the pull-down menu and click "Disconnect." 52 4.5.3 Configuring the Project Click "Device" to open the pull-down menu and click "Configure Flash Project." 53 The configure project window appears. 54 4.5.4 Setting the User Program Mode Select the "Device" tab in the configure project window and double-click "Connection" and "Boot." 55 Set the connection type. Select "USER Program Mode" in "Select Connection:." Set the baud rate to 9600 bps. When you have set the connection type, click "Next." 56 Set the pins on the adapter board (FDM) for the user boot mode. For example, set the output of FWx to high (1) and that of MD2 to low (0). In this example, the FWx pin outputs 1 for selecting a mode (the jumper is open) and MD2 (IO0) outputs 0 for serial communication connection. Turn the power off and select the user boot mode (mode 5) using DIP switch 6. When you have set the pins, turn on the power. Table 4-6 Operating Mode Setting MCU Operating Mode 5 CPU Operating Mode User boot mode Jumper FWE MD2 MD1 MD0 SCI Switch J15 FWx (Pin 3) on the Adapter Board SW6-3 SW6-2 SW6-1 MD2 (Pin 9) on the Adapter Board 1 (Output 1) 1 (OFF) 0 (ON) 1 (OFF) 0 (Output 0) 1 (Open) When you have set the items, click "Finish." Note: Do not operate the mode switch during CPU operation. Be sure to operate the FWE and MD pins after turning the power to the board off or while pressing the RESET button. 57 The user boot mode has been set. 58 4.5.5 Connecting the Device Click "Device" to open the pull-down menu and click "Connect to Device." Select the adapter board (FDM). When you have selected the device, click "OK." The connection in the user boot mode is completed. 59 4.5.6 Programming Write a program in the user area in the user boot mode. To program a file in the user area, specify a download area. Click the right mouse button on file 2378F.mot to display the pop-up menu. Click "User Boot Area" to uncheck it so that the file can be downloaded to the user area. 60 Click the right mouse button on file 2378F.mot again to display the pop-up menu. Click "Download [User Area]" to download file 2378F.mot to the user area. 61 You can check that the program has been downloaded to the user area. 62 4.5.7 Blank Check and Checksum To confirm that the user area has been programmed, perform a blank check and calculate a checksum. Click "Device" to open the pull-down menu and click "Blank Check." Click "Device" to open the pull-down menu and click "Flash Checksum." The results of the blank check and checksum calculation are displayed. 63 4.6 User Program Mode In the user program mode, the user area can be programmed or erased. The user boot area cannot be programmed or erased. 4.6.1 Writing a Program in the User Area Start "Flash Development Toolkit 3.4" and open project workspace file 2378.AWS. Write program file 2378F.mot in the user area in the boot mode. After programming the file, disconnect the device and display the configure project window. On how to display the configure project window, refer to section 4.5.3, Configuring the Project. 64 4.6.2 Setting the User Program Mode Select the "Device" tab in the configure project window and double-click "Connection" and "Boot." 65 Set the connection type. Select "USER Program Mode" in "Select Connection:." Set the baud rate to 9600 bps. When you have set the connection type, click "Next." 66 Set the pins on the adapter board (FDM) for the user boot mode. For example, set the output of FWx to high (1) and that of MD2 to low (0). In this example, the FWx pin outputs 1 for selecting a mode (jumper J15 is open) and MD2 (IO0) outputs 0 for serial communication connection. Turn off the power and select an expanded mode with on-chip ROM enabled (mode 4) or single-chip mode (mode 7). To select the mode, use DIP switch 6. When you have set the pins, turn on the power. Table 4-7 Operating Mode Settings MCU Operating Mode CPU Operating Mode Jumper FWE MD2 MD1 MD0 SCI Switch J15 FWx (Pin 3) on the Adapter Board SW6-3 SW6-2 SW6-1 MD2 (Pin 9) on the Adapter Board 4 Expanded mode with on-chip ROM enabled 1 (Open) 1 (Output 1) 1 (OFF) 0 (ON) 0 (ON) 0 (Output 0) 7 Single-chip mode 1 (Open) 1 (Output 1) 1 (OFF) 1 (OFF) 1 (OFF) 0 (Output 0) When you have set the items, click "Finish." Note: Do not operate the mode switch during CPU operation. Be sure to operate the FWE and MD pins after turning the power to the board off or while pressing the RESET button. 67 The user program mode has been set. 68 4.6.3 Connecting the Device Click "Device" to open the pull-down menu and click "Connect to Device(C)." Select the adapter board (FDM). When you have selected USB device, click "OK." The connection in the user program mode is completed. 69 4.6.4 Programming Write a program in the user area in the user program mode. Click the right mouse button on file 2378F.mot to display the pop-up menu. Click "Download File to [User Area]" to download file 2378F.mot to the user area. 70 You can check that the program has been downloaded to the user area. 71 4.6.5 Blank Check and Checksum To confirm that the user area has been programmed, perform a blank check and calculate a checksum. Click "Device" to open the pull-down menu and click "Blank Check." Click "Device" to open the pull-down menu and click "Flash Checksum." The results of the blank check and checksum calculation are displayed. 72 5. Flash Development Toolkit Processing The Flash Development Toolkit can be connected in either of the following two modes: the boot mode or the user program mode. In both modes, the continuation of the execution from a previous session can be specified. The connection modes of the Flash Development Toolkit are listed in Table 5-1. Normally, a new connection processing is used. The hexadecimal code is a command code of the Flash Development Toolkit. For details, refer to the description on flash memory (0.18-μm F-ZTAT version) in the Hardware Manual. Table 5-1 Connection Modes of the Flash Development Toolkit Mode Boot mode New Connection Processing Continuation of the Execution from a Previous Session Baud rate adjustment H'27 (Programming unit inquiry) H'27 (Programming unit inquiry) H'4F (Status request) H'10 (Device selection) H'4D (User area blank check) H'11 (Clock mode selection) H'3F (New baud rate setting) User boot mode H'27 (Programming unit inquiry) H'27 (Programming unit inquiry) User program mode H'10 (Device selection) H'4F (Status request) H'11 (Clock mode selection) H'4D (User area blank check) H'3F (New baud rate setting) 73 6. Sample Program This section describes the sample program in the user program mode of the H8S/2378F. 6.1 File Configuration The file configuration is shown in Figure 6-1. 2378 2378 folder ⏐⎯Project Project folder ⏐ ⏐⎯2378F 2378F folder ⏐ ⏐ ⏐⎯Release Release folder ⏐ ⏐ ⏐⎯2378f.hwp 2378f project database file ⏐ ⏐ ⏐⎯2378F.tps Current session file ⏐ ⏐ ⏐⎯defaultsession.hsf Session file ⏐ ⏐⎯Project.hws Project workspace file ⏐ ⏐⎯Project.tws Current project file ⏐⎯Src Source file folder ⏐ ⏐⎯BaudRate.src Baud rate ⏐ ⏐⎯CmdFunc.c Command function ⏐ ⏐⎯CmdFunc.h Command function header ⏐ ⏐⎯commands.h Command header ⏐ ⏐⎯DeviceInfo.h Device information header ⏐ ⏐⎯FDTErase.c Erase function ⏐ ⏐⎯FDTUMain.c Main function ⏐ ⏐⎯FDTUMain.h Main function header ⏐ ⏐⎯FDTWrite.c Programming function ⏐ ⏐⎯GenTest.c Test function ⏐ ⏐⎯GenTest.h Test function header ⏐ ⏐⎯io2378.h I/O address header ⏐ ⏐⎯KAlg.h Library header ⏐ ⏐⎯KDevice.h Device header ⏐ ⏐⎯KStruct.h Structure header ⏐ ⏐⎯KTypes.h Type header ⏐ ⏐⎯rom2ram.src RAM address definition ⏐ ⏐⎯Strt2378.src Start function ⏐ ⏐⎯Ugenu.c Micro function ⏐ ⏐⎯uGenu.h Micro function header ⏐⎯2378F.mot 2378F S-type file Figure 6-1 File Configuration 74 6.2 Source Files The source files are listed in Table 6-1. Table 6-1 Source Files File Baud rate File Name Description BaudRate.src BRR calculation assembly language file Command function CmdFunc.c Command processing source file Command function header CmdFunc.h Command function definition file Command header commands.h Command code definition file Device information header DeviceInfo.h Device information definition file Erase function FDTErase.c Erase function source file Main function FDTUMain.c Main kernel function source file Main function header FDTUMain.h Main kernel function definition file Programming function FDTWrite.c Programming function source file Test function GenTest.c User program mode test function source file Test function header GenTest.h User program mode test definition file I/O address header io2378.h Peripheral module register definition file Library header KAlg.h Programming and erasing library definition file Device header KDevice.h Device information definition file Structure header KStruct.h Structure definition file Type header KTypes.h Type definition file RAM address definition rom2ram.src RAM address definition file Start function Strt2378.src Start function assembly language file Micro function Ugenu.c Micro kernel function source file Micro function header uGenu.h Micro kernel definition file 75 6.3 Modules The modules are listed in Table 6-2. Table 6-2 Modules File Module Module Name Function BaudRate.src BRR calculation cal_brr CmdFunc.c Reference function ReferFunc Reference function Device selection SelectDevice Selects a device. Clock mode selection SelectClockMode Selects a clock mode. New baud rate setting SetNewBaudRate Sets a new baud rate. Program status RequestBootPrgSts Program status Sum check SumCheck Sum check ACK transmission SendAck Sends ACK. Blank check CheckBlank Checks the blank status. Memory read ReadMemory Reads memory. Command read GetCmdData Reads a command. Flash erasing EraseFLASH Erases flash memory. Erase data reception GetEraseData Receives erase data. Erase initial setting EraseInit Performs erase initial setting. Erasing start EraseStart Starts erasing operation. RAM main RamMain RAM main processing Command processing ProcessCommand Processes commands. Library transfer LibTrans Transfers a library. SCO bit setting ScoBitSet Sets the SCO bit. User boot area selection UserBootSelect Selects the user boot area. User area selection UserMatSelect Selects the user area. Flash programming WriteFLASH Programs flash memory. Programming data reception GetWriteData Receives programming data. Programming initial setting WriteInit Performs programming initial setting. Programming start WriteStart Starts programming. Main processing main Test main processing SCI initial setting InitSCI Performs SCI initial setting. Reception Get Reception FDTErase.c FDTUMain.c FDTWrite.c GenTest.c Calculates the BRR value using the frequency and bit rate. Transmission Put Transmission Strt2378.src Start startup Sets and starts the stack pointer. Ugenu.c ROM main RomMain ROM main processing Command function CmdFunc Receives and controls commands. Transfer start TransStart Starts transferring a program. Copy RamCopy Copies a program into RAM. 76 6.4 Module Hierarchical Structure The module hierarchical structure is shown in Figure 6-2. RESET_VECTOR (0x0000) Reset vector ⏐⎯startup (0x1000) Start ⏐⎯main Main processing ⏐⎯InitSCI SCI initial setting ⏐⎯RomMain ROM main processing ⏐⎯TransStart Transfer start ⏐ ⏐⎯RamCopy Copy ⏐⎯CmdFunc ⏐ ⏐⎯Get Command function Reception ⏐ ⏐⎯SendAck ACK transmission ⏐ ⏐ ⏐⎯Put Transmission ⏐ ⏐⎯ReferFunc Reference function ⏐ ⏐ ⏐⎯Put Transmission ⏐ ⏐⎯GetCmdData Command read ⏐ ⏐ ⏐⎯Get Reception ⏐ ⏐⎯SelectDevice Device selection ⏐ ⏐ ⏐⎯SendAck ACK transmission ⏐ ⏐ ⏐⎯ErrorCode Error code macro ⏐ ⏐ ⏐⎯Put Transmission ⏐ ⏐⎯SelectClockMode Clock mode selection ⏐ ⏐ ⏐⎯SendAck ACK transmission ⏐ ⏐ ⏐⎯ErrorCode Error code macro ⏐ ⏐ ⏐⎯Put Transmission ⏐ ⏐⎯SetNewBaudRate New bit rate setting ⏐ ⏐ ⏐⎯ErrorCode Error code macro ⏐ ⏐ ⏐⎯Put Transmission ⏐ ⏐ ⏐⎯cal_brr BRR calculation ⏐ ⏐ ⏐⎯SendAck ACK transmission ⏐ ⏐ ⏐⎯Get Reception ⏐ ⏐⎯RequestBootPrgSts Program status ⏐ ⏐ ⏐⎯Put Transmission ⏐ ⏐⎯Put Transmission ⏐⎯RamMain (0xFF4000) RAM main processing (To be continued) Figure 6-2 Module Hierarchical Structure (1) 77 (Continued) ⏐⎯RamMain (0xFF4000) RAM main processing ⏐⎯ProcessCommand ⏐⎯Get Command processing Reception ⏐⎯RequestBootPrgSts Program status ⏐⎯SumCheck Sum check ⏐ ⏐⎯UserBootSelect User boot area selection ⏐ ⏐ ⏐⎯nop NOP macro ⏐ ⏐⎯UserMatSelect User area selection ⏐ ⏐ ⏐⎯nop NOP macro ⏐ ⏐⎯Put Transmission ⏐⎯LibTrans Library transfer ⏐ ⏐⎯ScoBitSet ⏐ SCO bit setting ⏐⎯nop NOP macro ⏐⎯SendAck ACK transmission ⏐⎯EraseFLASH Flash erasing ⏐ ⏐⎯EraseInit Erase initial setting ⏐ ⏐ ⏐⎯UserMatSelect User area selection ⏐ ⏐ ⏐⎯INIT_ADDR ⏐ ⏐⎯ErrorCode Initial setting entry address Error code macro ⏐ ⏐⎯Put Transmission ⏐ ⏐⎯Get Reception ⏐ ⏐⎯RequestBootPrgSts Program status ⏐ ⏐⎯GetEraseData Erase data reception ⏐ ⏐ ⏐⎯Get ⏐ ⏐ ⏐⎯ErrorCode ⏐ ⏐ ⏐⎯Put Transmission Reception ⏐ ⏐⎯EraseStart ⏐ ⏐ Error code macro Erasing start ⏐⎯WRITE_ERASE_ADDR Programming/erasing entry address ⏐ ⏐⎯SendAck ACK transmission ⏐⎯WriteFLASH Flash programming ⏐ ⏐⎯WriteInit Programming initial setting ⏐ ⏐ ⏐⎯UserMatSelect User area selection ⏐ ⏐ ⏐⎯INIT_ADDR ⏐ ⏐⎯ErrorCode Initial setting entry address Error code macro ⏐ ⏐⎯Put Transmission ⏐ ⏐⎯Get Reception ⏐ ⏐⎯RequestBootPrgSts Program status ⏐ ⏐⎯GetWriteData Programming data reception ⏐ ⏐ ⏐⎯Get ⏐ ⏐ ⏐⎯ErrorCode ⏐ ⏐ ⏐⎯Put Transmission Reception Error code macro ⏐ ⏐⎯WriteStart Programming start ⏐ ⏐ ⏐⎯WRITE_ERASE_ADDR ⏐ ⏐⎯SendAck ACK transmission ⏐⎯GetCmdData Command read ⏐⎯ReadMemory Memory read (To be continued) Figure 6-2 Module Hierarchical Structure (2) 78 Programming/erasing entry address (Continued) ⏐⎯ReadMemory Memory read ⏐ ⏐⎯UserBootSelect User boot area selection ⏐ ⏐⎯UserMatSelect User area selection ⏐ ⏐⎯ErrorCode Error code macro ⏐ ⏐⎯Put Transmission ⏐⎯CheckBlank Blank check ⏐ ⏐⎯UserBootSelect User boot area selection ⏐ ⏐⎯UserMatSelect User area selection ⏐ ⏐⎯ErrorCode Error code macro ⏐ ⏐⎯Put Transmission ⏐ ⏐⎯SendAck ACK transmission ⏐⎯Put Transmission Figure 6-2 Module Hierarchical Structure (3) 79 6.5 Flow of the Program This section describes the flow of the sample program with referencing the module hierarchical structure. 6.5.1 Program Processing Flow The processing flow of the sample program is shown in Figure 6-3. In the user program mode, bit rate adjustment and user area erase processing, which are performed during boot operation, are not performed. For this reason, the program and data written in flash memory can be saved. Reset Bit-rate-adjustment status Bit rate adjustment Note: The sample program does not contain this processing. Inquiry/selection status Wait for inquiry and selection Inquiry Inquiry processing Transition to the programming/ erase status Selection Selection processing Programming/erase status User MAT/user boot MAT erase processing Wait for programming or erasing to be selected Note: The sample program does not contain this i Programming Programming processing Erasing Erase processing Figure 6-3 Program Processing Flow 80 Check Check processing 6.5.2 Main Processing (main) The flow of main processing is shown below: (1) The reset vector causes a branch to start (startup). (2) Start (startup) sets the stack pointer and calls main processing (main). (3) Main processing (main) calls SCI initial setting (InitSCI) and branches to ROM main processing (RomMain). (4) ROM main processing (RomMain) transfers RAM main processing to RAM, receives and processes a command, and sets items. After setting items, ROM main processing branches to RAM main processing (RamMain) in RAM. (5) RAM main processing (RamMain) processes the received commands and performs the following processing: Transferring the programming/erasing library (LibTrans) Erasing flash memory (EraseFLASH) Programming flash memory (WriteFLASH) Reading memory in the user boot area or user area (ReadMemory) Calculating a checksum of data in the user boot area or user area (SumCheck) Checking the blank status of the user boot area or user area (CheckBlank) Note: ROM main processing (RomMain) is also called a micro-kernel. It runs in ROM. RAM main processing (RamMain) is also called a main kernel. It runs in RAM. 6.5.3 ROM Main Processing (RomMain) The flow of ROM main processing (RomMain) is shown below: (1) Transfer start (TransStart) transfers the program in ROM to RAM. This operation is for performing library transfer, erasing, and programming in RAM. (2) Command function (CmdFunc) processes each command, responds to each inquiry, and sets selection. (3) Reference function (ReferFunc) and program status (RequestBootPrgSts) respond to each inquiry that corresponds to one of the following commands: Supported device inquiry Clock mode inquiry Multiplication ratio inquiry Operating frequency inquiry User boot area information inquiry User area information inquiry Erase block information inquiry Programming unit inquiry Boot program status inquiry (4) A selection setting command is set using one of the following modules: Device selection (SelectDevice): Selects a device code. Clock mode selection (SelectClockMode): Notifies the selected clock mode. New bit rate setting (SetNewBaudRate): Selects a new bit rate. (5) Inquiry/selection processing is completed and a branch is caused to RAM main processing (RamMain) transferred to RAM. 81 6.5.4 RAM Main Processing (RamMain) The flow of RAM main processing (RamMain) is shown below: (1) Command processing (ProcessCommand) processes commands. The following commands are to be processed. The sample program cannot process user boot area programming selection or block erasing for the user boot area because it runs in the user program mode. User area programming selection 128-byte programming Erasing selection Block erasing Memory read User boot area sum check User area sum check User boot area blank check User area blank check Boot program status inquiry (2) For the user area programming selection command, command processing transfers the programming library using library transfer (LibTrans) and branches to flash programming (WriteFLASH). (3) Flash programming (WriteFLASH) sets the frequency using programming initial setting (WriteInit). Then, it reads a command. When the command is 128-byte programming, programming data reception (GetWriteData) receives programming data and programming start (WriteStart) programs flash memory. When 128-byte data is programming end address data, the programming end codes are set in data to be programmed and programming destination address to end programming (call programming start (WriteStart) actually) and programming terminates. In this sample program, 128-byte programming end address data is H'FFFFFFFF, the programming end code of data to be programmed is H'F0F0F0F0, and the programming end code of the programming destination address is H'0F0F0F0F. (4) For the erasing selection command, library transfer (LibTrans) transfers the erasing library and branches to flash erasing (EraseFLASH). (5) Flash erasing (EraseFLASH) sets the frequency using erase initial setting (EraseInit). Then, it reads a command. When the command is block erasing, erase data reception (GetEraseData) receives erase data and erasing start (EraseStart) erases the specified block. When erase data is erasing end data, erasing terminates. (6) For the memory read command, command read (GetCmdData) specifies the read address. Memory read (ReadMemory) reads memory in the user boot area or user area. (7) For the user boot area sum check or user area sum check command, sum check (SumCheck) calculates a checksum of data in the user boot area or user area. (8) For the user boot area blank check or user area blank check command, blank check (CheckBlank) checks the blank status of the user boot area or user area. (9) For the boot program status inquiry command, program status (RequestBootPrgSts) sends the boot processing status. 82 7. Source Files of the Sample Program This section describes main source files of the sample program. 7.1 Header Files This sample program uses the following header files. 7.1.1 Bit Rate Setting (GenTest.h) A bit rate is set. /* 33MHz 9600bps */ //#define MA_BRR_SCI 0x6A /* Bit rate register channel 1 */ /* 8.25MHz 9600bps */ #define MA_BRR_SCI 0x1A /* Bit rate register channel 1 */ In the user program mode, communications between the connected device is performed at 9600 bps. For this reason, the bit rate register (BRR) in the SCI module must be set according to the operating frequency. In this example, the operating frequency is 8.25 MHz. To set 9600 bps, MA_BRR_SCI is set to 26 (0x1A). The relationships between operating frequencies and BBR register settings is shown in Table 7-1. Table 7-1 Operating Frequencies and BBR Register Settings (When the Bit Rate Is 9600 (bit/s)) Operating Frequency φ (MHz) 8 BRR Setting 25 Error (%) 0.16 8.25 26 -0.54 9.8304 31 0.00 10 32 -1.36 12 38 0.16 12.288 39 0.00 14 45 -0.93 14.7456 47 0.00 16 51 0.16 17.2032 55 0.00 18 58 -0.69 19.6608 63 0.00 20 64 0.16 The MA_BRR_SCI value is set according to the operating frequency of the board and built with HEW to create a program in an S-type file. 83 7.1.2 I/O Register Definition (io2378.h) The registers and bits related to the SCI module and ROM are defined. /************************************************************************/ /* H8S/2378F Internal I/O Include File */ /************************************************************************/ #define SCKCR (*(volatile unsigned char *)0xFFFF3B) #define STCS (unsigned char)0x08 #define SYSCR (*(volatile unsigned char *)0xFFFF3D) #define FLSHE (unsigned char)0x08 #define MSTPCRL (*(volatile unsigned char *)0xFFFF41) #define MSTP2 (unsigned char)0x04 #define PLLCR (*(volatile unsigned char *)0xFFFF45) /************************************************************************/ /* SCI */ /*----------------------------------------------------------------------*/ /* CHANNEL 1 */ /************************************************************************/ #define SCI_SMR (*(volatile unsigned char *)0xFFFF80) #define SCI_BRR (*(volatile unsigned char *)0xFFFF81) #define SCI_SCR (*(volatile unsigned char *)0xFFFF82) #define TE (unsigned char)0x20 #define RE (unsigned char)0x10 #define TE_RE (unsigned char)(TE | RE) #define SCI_TDR (*(volatile unsigned char *)0xFFFF83) #define SCI_SSR (*(volatile unsigned char *)0xFFFF84) #define TDRE (unsigned char)0x80 #define RDRF (unsigned char)0x40 #define RDRF_ERR_CLR (unsigned char)0x87 #define TEND (unsigned char)0x04 #define SCI_RDR (*(volatile unsigned char *)0xFFFF85) /************************************************************************/ /* FLASH */ /*----------------------------------------------------------------------*/ /* */ /************************************************************************/ #define FCCS (*(volatile unsigned char *)0xFFFFC4) #define FPCS (*(volatile unsigned char *)0xFFFFC5) 84 #define FECS (*(volatile unsigned char *)0xFFFFC6) #define FKEY (*(volatile unsigned char *)0xFFFFC8) #define FMATS (*(volatile unsigned char *)0xFFFFC9) #define FTDAR (*(volatile unsigned char *)0xFFFFCA) #define FLASH18 (*(volatile struct st_flash18 *)0xFFFFE800) /* FLASH18 Address*/ 7.1.3 Macro Definition (FDTUMain.h and KAIg.h) Labels used in the program are defined. (1) FDTUMain.h /* D E F I N E */ enum { FmatsUserBootMat = 0xaa, FmatsUserMat = 0x00, WriteMode = 0x01, EraseMode = 0x01, FkeyEnable = 0xA5 }; (2) KAlg.h /* D E F I N E S */ #define LOOP_END 1 #define bufSize 0x80 #define BLOCK_NO_ERROR 0x09 #define ERASE_END 0xFF #define WRITE_END 0xFFFFFFFF #define ADDRESS_ERROR 0x03 #define WRITE_ERASE_ENABLE 0x5A #define ADD_WRITE_PRM0 0xF0F0F0F0 #define ADD_WRITE_PRM1 0x0F0F0F0F 85 7.2 Main Processing and ROM Main Processing 7.2.1 Module Hierarchical Structure The module hierarchical structure of main processing and ROM main processing is shown in Figure 7-1. RESET_VECTOR (0x0000) Reset vector ⏐⎯startup (0x1000) Start ⏐⎯main Main processing ⏐⎯InitSCI SCI initial setting ⏐⎯RomMain ROM main processing ⏐⎯TransStart Transfer start ⏐⎯CmdFunc Command function ⏐⎯RamMain (0xFF4000) Figure 7-1 RAM main processing Module Hierarchical Structure of Main Processing and ROM Main Processing The reset vector causes a branch to start, which sets the stack pointer (Strt2378.src) and branches to main processing (main in GenTest.c). Main processing performs initial setting for the SCI (InitSCI in GenTest.c) to enable transmission/reception and causes a branch to ROM main processing (RomMain in Ugenu.c). ROM main processing transfers RAM main processing and others to RAM (TransStart in Ugenu.c) and processes commands (CmdFunc in Ugenu.c). At the end of data, ROM main processing branches to RAM main processing (RamMain in FDTUMain.c). Main processing and ROM main processing are executed in ROM. 7.2.2 Reset Vectors (GenTest.c and GenTest.h) The reset vectors are shown below: (1) GenTest.c /*Declare the vector table*/ #pragma section _VECT const DWORD RESET_VECTOR = (DWORD)RESET_JMP_ADDRESS; #pragma section (2) GenTest.h #define RESET_JMP_ADDRESS 0x1000 86 7.2.3 Transfer Start (Ugenu.c and rom2ram.src) The following modules are transferred from ROM to RAM according to the transfer table (rom2ram.src) when RAM main processing and others are transferred. For the sections, ROM options are used. Table 7-2 Transfer Modules Section Module P_RAM_SCI Get, Put (GenTest.c) P_RAM_MAIN RamMain and others (FDTUMain.c) P_RAM_CMD RequestBootPrgSts and others (CmdFunc.c) P_RAM_WRITE WriteFLASH and others (FDTWrite.c) P_RAM_ERASE EraseFLASH (FDTErase.c) 7.2.4 Command Function (Ugenu.c, commands.h, CmdFunc.c, and DeviceInfo.h) Command function (CmdFunc) processes inquiry and setting commands. Commands are defined as macros (commands.h) and a process (CmdFunc.c) corresponding to each command is performed. For an inquiry command, a response (DeviceInfo.h) corresponding to the command is output (ReferFunc in CmdFunc.c). 87 7.3 RAM Main Processing RAM main processing transfers a library, and erases and programs flash memory. This processing is executed in RAM. 7.3.1 Library Transfer (FDTUMain.c) (1) LibTrans When the command ID is prepareErase (0x48), FECS is set to EraseMode (0x01) and the erasing library is selected. When the command ID is other than the above (prepareUserAreaWrite, 0x43), FPCS is set to WriteMode (0x01) and the programming library is selected. FKEY is set to FkeyEnable (0xA5) to select transfer and the SCO bit is set. /* /////////////////////// // LibTrans Function // /////////////////////// */ void LibTrans(BYTE commandID) { if (commandID == prepareErase){ FECS = EraseMode; }else{ FPCS = WriteMode; } FKEY = FkeyEnable; ScoBitSet(); } 88 (2) ScoBitSet The library transfer destination address is set in the FTDAR register and the SCO bit of the FCCS register is set to 1. At least four NOP instructions are required after the SCO bit setting. To determine whether a transfer error occurs, 0xFF is programmed in the library transfer destination address before transfer and 0x00 is checked after transfer. /* //////////////////////// // ScoBitSet Function // //////////////////////// */ BYTE ScoBitSet(void) { /* Transmission error check initialization */ *((volatile unsigned char *)TRANS_RAM_ADDR) = 0xFF; FTDAR = FTDAR_VALUE; FCCS |= 0x01; /* SCO interruption */ nop(); nop(); nop(); nop(); /* Transmission error check */ if(0x00 == *((volatile unsigned char *)TRANS_RAM_ADDR)) { return(NORMAL); /* Transmission normal end */ } return(ABNORMAL); /* Transmission error */ } TRANS_RAM_ADDR and FTDAR_VALUE are defined in KDevice.h as follows: /* SCO define */ #define TRANS_RAM_ADDR 0xFF8000 #define FTDAR_VALUE 0x03 /* RAMTOP+16Kb */ 89 7.3.2 Area Selection (FDTUMain.c) To select the user boot area or user area, FmatsUserBootMat (0xaa) or FmatsUserMat (0x00) is set in the FMATS register. At least two NOP instructions are required after setting. /* ///////////////////////////// // UserBootSelect Function // ///////////////////////////// */ void UserBootSelect(void) { FMATS = FmatsUserBootMat; nop(); nop(); } /* //////////////////////////// // UserMatSelect Function // //////////////////////////// */ void UserMatSelect(void) { FMATS = FmatsUserMat; nop(); nop(); } 90 7.3.3 Flash Memory Erasing (FDTErase.c) (1) EraseInit The user area is selected, the operating frequency is specified, and the erasing library is initialized. The operating frequency specified with FDT is transmitted to the device with new bit rate selection. For initial setting of the library, this operating frequency is used. /* //////////////////////// // EraseInit Function // //////////////////////// */ BYTE EraseInit(void) { InitPtr ERASE_INIT = (InitPtr)INIT_ADDR; UserMatSelect(); FKEY = WRITE_ERASE_ENABLE; return ((*ERASE_INIT)(Frequency)); } (2) EraseStart The block number for erasing is specified and the erasing library is called. The block number is received from the Flash Development Toolkit. For details, refer to Source Files of the Sample Program. /* ///////////////////////// // EraseStart Function // ///////////////////////// */ BYTE EraseStart(BYTE blk_no) { ErasePtr ERASE_BLOCK = (ErasePtr)WRITE_ERASE_ADDR; return ((*ERASE_BLOCK)(blk_no)); } INIT_ADDR and WRITE_ERASE_ADDR are defined in KDevice.h as follows: #define TRANS_RAM_ADDR 0xFF8000 #define INIT_ADDR (TRANS_RAM_ADDR+32) #define WRITE_ERASE_ADDR (TRANS_RAM_ADDR+16) 91 7.3.4 Flash Memory Programming (FDTWrite.c) (1) WriteInit The user area is selected, the operating frequency is specified, and the initial setting of the programming library is performed. /* //////////////////////// // WriteInit Function // //////////////////////// */ BYTE WriteInit(void) { InitPtr WRITE_INIT = (InitPtr)INIT_ADDR; UserMatSelect(); FKEY = WRITE_ERASE_ENABLE; return ((*WRITE_INIT)(Frequency)); } (2) WriteStart The programming data storage address, programming destination address are specified and the programming library is called. The programming data and programming destination address are received from the Flash Development Toolkit. For details, refer to Source Files of the Sample Program. /* ///////////////////////// // WriteStart Function // ///////////////////////// */ BYTE WriteStart(BYTE *data, DWORD adr) { WritePtr WRITE_DATA = (WritePtr)WRITE_ERASE_ADDR; return ((*WRITE_DATA)((BYTE *)data, (BYTE *)adr)); } 92 (3) Executing programming end processing (WriteFLASH) Flash memory programming end processing is partially shown below. For details, refer to Source Files of the Sample Program. Programming data reception (GetWriteData) receives the programming data storage address and programming destination address. When the programming destination address is WRITE_END (0xFFFFFFFF), programming end processing is performed. The programming data storage address is set to ADD_WRITE_PRM0 (0xF0F0F0F0), the programming destination address is set to ADD_WRITE_PRM1 (0x0F0F0F0F), and the programming library is read. /* Acquisition of command data */ if (GetWriteData(pData, &pAddress, add_sum)){ return; } if (pAddress == WRITE_END){ pData = (BYTE *)ADD_WRITE_PRM0; pAddress = ADD_WRITE_PRM1; end_flg = LOOP_END; } /* A setup of boot status */ BootStatus = MODE_WRITE_RUN; /* Write-in start */ if (ErrorStatus = WriteStart(pData, pAddress)){ 93 8. Programming Guide This section describes how to write a program using the 0.18-μm F-ZTAT microcomputer standard boot program. The section also contains tips on creating programs and notes. For details, refer to the Hardware Manual. 8.1 Overview The 0.18-μm F-ZTAT microcomputer standard boot program consists of a transfer library, erasing library, and programming library. The functions are listed below: (1) Transfers the programming library or erasing library to the specified RAM area. (2) Specifies the operating frequency by the initial setting. (3) Specifies a block number and erases the relevant block. (4) Specifies data to be programmed and the programming destination address and programs the data. (5) Selects the user boot area or user area. 8.2 Control Registers and Control Bits The control registers and control bits related to the library transfer function and user boot area are described below. 8.2.1 Selecting a Function To select transfer, programming, or erasing, use the FKEY register. To transfer the programming or erasing library, set the FKEY register to H'A5. To perform programming or erasing, set the register to H'5A. Table 8-1 FKEY Register State Value Transfer enabled H’A5 Programming/erasing enabled H’5A Function Can transfer a library. Can write a value to the SCO bit. 8.2.2 Can program or erase flash memory. Starting Library Downloading To transfer a library, set the SCO bit (bit 0 of the FCCS register) to 1. Table 8-2 SCO Bit (Bit 0 of the FCCS Register) State Value Source program copy disabled 0 Source program copy enabled 1 Function Does not download a library to RAM. Issues a request to download a library to RAM. H'A5 must be written to FKEY and execution in on-chip RAM must be in progress. The SCO bit is cleared to 0 when downloading is completed. 94 8.2.3 Selecting a Library To select a library, set the corresponding bit of the FPCS or FECS register to 1. Table 8-3 Registers for Selecting a Program to Be Transferred Program to Be Transferred Register Bit Name Bit Programming program FPCS register PPVS bit Bit 0 Erasing program FECS register EPVB bit Bit 0 8.2.4 Selecting the User Boot Area To select the user boot area, set the FMATS register to H'AA. Table 8-4 FMATS Register State Value Function User area selection Other than H'AA Selects the user area. User boot area selection H’AA Selects the user boot area. Note: The value can be changed only in RAM. 8.2.5 Selecting the Transfer Destination Use the FTDAR register to set the RAM address of the library transfer destination. If the setting is invalid, bit 7 of the FTDAR register is set to 1. Table 8-5 FTDAR Register Transfer Destination Address Setting Function RAM start address + 20 Kbytes H’00 Sets the start address to download a program to H'FF9000. RAM start address + 24 Kbytes H’01 Sets the start address to download a program to H'FFA000. RAM start address + 28 Kbytes H’02 Sets the start address to download a program to H'FFB000. RAM start address + 16 Kbytes H’03 Sets the start address to download a program to H'FF8000. 95 8.3 Using the Libraries This section describes how to use the libraries. 8.3.1 Transfer Perform transfer operation using the procedure below: (1) Select the programming library or erasing library to be transferred. For the programming library, set the PPVS bit (bit 0) of the FPCS register to 1. For the erasing library, set the EPVB bit (bit 0) of the FECS register to 1. (2) Specify the transfer destination in RAM in the FTDAR register. (3) Set the FKEY register to H'A5 to place the chip in the transfer enable state. (4) Set the first byte of the transfer destination in RAM to H'FF so that the transfer result can be checked. (5) Set the SCO bit (bit 0 of the FCCS register) to 1. Insert four NOP instructions after the bit set instruction. (6) The return value is set in the first byte in RAM. Check that the value is H'00. 8.3.2 Erasing Perform erasing operation using the procedure below: (1) Call the erase initial setting entry (transfer destination + 32 bytes) and set the operating frequency (ER0). The processing result is set in the R0L register. (2) Set the FKEY register to H'5A to place the chip in the erasing/programming enable state. (3) Select the user boot area or user area using the FMATS register. Set H'AA for the user boot area or a value other than H'AA, such as H'00, for the user area. Insert two NOP instructions after FMATS setting. (4) Set the erase block number in the ER0 register and call the erasing entry (transfer destination + 16 bytes). (5) The processing result is set in the R0L register. 8.3.3 Programming Perform programming operation using the procedure below: (1) Call the programming initial setting entry (transfer destination + 32 bytes) and set the operating frequency (ER0). The processing result is set in the R0L register. (2) Set the FKEY register to H'5A to place the chip in the erasing/programming enabled state. (3) Select the user boot area or user area using the FMATS register. Set H'AA for the user boot area or a value other than H'AA, such as H'00, for the user area. Insert two NOP instructions after FMATS setting. (4) Set the address of data to be programmed in the ER0 register and the programming destination address in the ER1 register, and call the programming entry (transfer destination + 16 bytes). (5) The processing result is set in the R0L register. (6) At the end of programming, set H'F0F0F0F0 as the programming data storage address in the ER0 register and H'0F0F0F0F as the programming destination address in the ER1 register, and calls the programming entry. 96 8.4 Modules There are the following libraries: Transfer library, erasing library, and programming library. The function of each module is shown below: Table 8-6 Libraries and Entries Library Module Name Entry Function Transfer Transfer start Setting the SCO bit to 1 Transfers the program corresponding to the specified program type and program code. Erasing Erase initial setting (Transfer destination + 32 bytes) Calculates the erasing wait time using the specified operating frequency. Block erasing (Transfer destination + 16 bytes) Erases the specified block. Programming initial setting (Transfer destination + 32 bytes) Calculates the programming wait time using the specified operating frequency. Programming (Transfer destination + 16 bytes) Programs the specified data in the specified programming destination address. Programming 8.5 Module Specifications The library module specifications are listed below for your information. For details, refer to the Hardware Manual. 8.5.1 Transfer Start Name Transfer start Type None Sets the SCO bit of the FCCS bit to 1 to transfer a library. Function Transfers a program. Argument None Input For the programming library, set the PPVS bit (bit 0) of the FPCS register to 1. For the erasing library, set the EPVB bit (bit 0) of the FECS register to 1. Specify the transfer destination in RAM in the FTDAR register. Set the FKEY register to H'A5. Set the first byte of the transfer destination in RAM to H'FF. Return Value None Output FTDAR register TDER bit (bit 7): Parameter check flag Normal termination: 0 FTDAR register value error: 1 (downloading is suspended.) First byte of the transfer destination in RAM: Processing result Normal termination: H'00 FKEY register value error: H'03 Multi-selection error: H'05 Processing Selects the library corresponding to the PPVS bit of the FPCS register or the EPVB bit of the FECS register. If a library selection error occurs, sets the processing result and returns control. If FKEY is not H'A5, sets the processing result and returns control. If an FTDAR error occurs, sets the TDER bit to 1 and returns control. Transfers the library to the RAM area specified using FTDAR. Clears the SCO bit to 0. Returns control to the instruction next to that for setting the SCO bit. 97 8.5.2 Erase Initial Setting Name Erase initial setting Type typedef BYTE (*InitPtr)(WORD); Function Performs erase initial setting. Argument WORD: Operating frequency Return Value Processing result Normal termination: H'00 Operating frequency error: H'03 Processing 8.5.3 Calculates the erasing wait time using the operating frequency. Block Erasing Name Block erasing Type typedef BYTE (*ErasePtr)(BYTE); Function Erases a block. Argument BYTE: Erase block number Return Value Processing result Normal termination: H'00 Erase block number error: H'09 FKEY error: H’11 Erasing error: H’21 Error protection: H'41 Processing Checks FWE, FKEY, and block number. If an error occurs, sets an error code and returns control. Obtains the address using the block number. Erases the address corresponding to the block. If an erasing error occurs, sets an error code and returns control. Returns control at normal termination. 8.5.4 Programming Initial Setting Name Programming initial setting Type typedef BYTE (*InitPtr)(WORD); Function Performs programming initial setting. Argument WORD: Operating frequency Return Value Processing result Processing Calculates the programming wait time using the operating frequency. Normal termination: H'00 Operating frequency error: H'03 98 8.5.5 Programming Name Programming Type typedef BYTE (*WritePtr)(BYTE *, BYTE *); Function Performs programming. Arguments BYTE * (first argument): Programming data storage address BYTE * (second argument): Programming destination address Return Value Processing result Normal termination: H'00 Programming data address error: H'03 Programming address error: H'05 FKEY error: H’11 Programming error: H'21 Error protection: H'41 Processing Checks FWE, FKEY, and programming addresses. If an error occurs, sets an error code and returns control. Verifies and programs data. Verifies the programmed data. When there is no error, returns control. If there is an error, reprograms data. If the programming count is exceeded, returns control with a programming count error. When programming terminates normally, returns control. 99 Flash Development Toolkit Application Note (Applications) User Program Mode (H8S/2378F) Publication Date: Jun. 28, 2006 Rev.1.00 Published by: Sales Strategic Planning Div. Renesas Technology Corp. Edited by: Microcomputer Tool Development Department Renesas Solutions Corp. © 2006. Renesas Technology Corp. and Renesas Solutions Corp., All rights reserved. Printed in Japan. Flash Development Toolkit Application Note (Applications) 1753, Shimonumabe, Nakahara-ku, Kawasaki-shi, Kanagawa 211-8668 Japan REJ06J0003-0100
advertisement
Key Features
- On-board flash programming tool
- Graphical user interface
- Connects to a device
- Disconnects the device
- Erases blocks
- Checks the blank status
- Uploads data
- Downloads a target file
- Returns a checksum
Frequently Answers and Questions
What is the purpose of the Flash Development Toolkit?
The Flash Development Toolkit is an on-board flash programming tool for Renesas F-ZTAT microcomputers, which offers a sophisticated and easy-to-use graphical user interface.
What are the main functions of the Flash Development Toolkit?
The Flash Development Toolkit can connect to a device, disconnect the device, erase blocks, check the blank status, upload data, download a target file, return a checksum, and specify a flash area.
What are the different operating modes of the H8S/2378F?
The H8S/2378F has six operating modes (modes 1 to 5 and 7). The operating mode is selected by the setting the mode pins (MD2 to MD0). Modes 1, 2, and 4 are externally expanded modes in which the CPU can access external memory and peripheral devices. Mode 7 is a single-chip activation externally expanded mode in which the CPU can switch to access external memory and peripheral devices at the start of the execution of a program. Mode 3 is a boot mode and mode 5 is a user boot mode, both in which flash memory can be programmed or erased.
How do I program the user boot area of the H8S/2378F?
You can program the user boot area in the boot mode then program the user area is programmed in the user boot mode, or program only the user area by not entering the user boot mode.
What is the difference between the boot mode, user boot mode, and user program mode?
The boot mode allows you to program the user boot area and user area. The user boot mode allows you to program the user area. The user program mode allows you to program the user area and user boot area.