Merged nuttx/nuttx into master

This commit is contained in:
Aleksandr Vyhovanec 2017-01-06 12:27:19 +03:00
commit 00a2884a21
31 changed files with 1186 additions and 115 deletions

20
Kconfig
View File

@ -45,6 +45,14 @@ config HOST_OTHER
endchoice
config TOOLCHAIN_WINDOWS
bool
default n
depends on HOST_WINDOWS
---help---
Selected internally if the selected Windows environment is compatible
with the use of Windows native toolchains.
choice
prompt "Windows Build Environment"
default WINDOWS_CYGWIN
@ -52,24 +60,34 @@ choice
config WINDOWS_NATIVE
bool "Windows Native"
select TOOLCHAIN_WINDOWS
---help---
Build natively in a CMD.exe environment with Windows style paths
(like C:\cgywin\home)
config WINDOWS_CYGWIN
bool "Cygwin"
select TOOLCHAIN_WINDOWS
---help---
Build natively in a Cygwin environment with POSIX style paths (like
/cygdrive/c/cgywin/home)
/cygdrive/c/Program Files)
config WINDOWS_UBUNTU
bool "Ubuntu under Windows 10"
---help---
Build natively in an Unbuntu shell under Windoes 10 environment with
POSIX style paths (like /mnt/c/Program Files)
config WINDOWS_MSYS
bool "MSYS"
select TOOLCHAIN_WINDOWS
---help---
Build natively in a Cygwin environment with POSIX style paths (like
/cygdrive/c/cgywin/home)
config WINDOWS_OTHER
bool "Windows POSIX-like environment"
select TOOLCHAIN_WINDOWS
---help---
Build natively in another POSIX-like environment. Additional
support may be necessary

View File

@ -1,8 +1,10 @@
README
^^^^^^
o Installation
o Environments
- Installing Cygwin
- Ubuntu Bash under Windows 10
o Installation
- Download and Unpack
- Semi-Optional apps/ Package
- Installation Directories with Spaces in the Path
@ -34,21 +36,49 @@ README
- Window Native Toolchain Issues
o Documentation
INSTALLATION
ENVIRONMENTS
^^^^^^^^^^^^
NuttX may be installed and built on a Linux system or on a Windows
system if Cygwin is installed. The MSYS environment is an option
to Cygwin on the Windows platform. However, I have little experience
that that configuration and it will not be discussed in this README
file.
NuttX requires a POSIX development environment such as you would find under
Linux or OSX. NuttX may be also be installed and built on Windows system
if you also provde such a POSIX development environment. Options for a
POSIX development environment under Windows include:
Instructions for installation of Cygwin on Windows system are provided
in the following paragraph.
- An installation of Linux on a virtual machine (VM) in Windows. I have
not been happy using a VM myself. I have had stability problems with
open source VMs and commercial VMs cost more than I want to spend.
Sharing files with Linux running in a VM is awkward; sharing devices
connected to the Windows box with Linux in a VM is, at the very least,
confusing; Using Windows tools (such as Segger J-Link) with files
built under the Linux VM is not a possibility.
NuttX can also be installed and built on a native Windows system, but
with some potential tool-related issues (see the discussion "Native
Windows Build" below).
- The Cygwin environment. Instructions for installation of Cygwin on a
Windows system are provided in the following paragraph, "Installing
Cygwin". Cygwin is a mature, well-tested, and very convenient
environment. It is especially expecially convenient if you need to
integrate with Windows tools and files. Downsides are that the
installation time is very long and the compile times are slow.
- Ubuntu/Bash shell under Windows 10. This is a new option under
Windows 10. See the section "Ubuntu Bash under Windows 10" below.
This is an improvement over Cygwin if your concern is compile time;
its build performance is comparable to native Linux, certainly better
than the Cygwin build time. It also installs in a tiny fraction of
the time as Cygwin, perhaps 20 minutes for the basic Ubuntu install
(vs. more than a day for the complete Cygwin install).
- The MSYS environment. I have no experience using the MSYS environment
and that configuration will not be discussed in this README file.
See http://www.mingw.org/wiki/MSYS if you are interested in
using MSYS. People report to me that they have used MSYS
successfully. I suppose that the advantages of the MSYS environemnt
is that it is closer to a native Windows environment and uses only a
minimal of add-on POSIX-land tools.
- NuttX can also be installed and built on a native Windows system, but
with some potential tool-related issues (see the discussion "Native
Windows Build" under "Building NuttX" below). GNUWin32 is used to
provide compatible native windows tools.
Installing Cygwin
-----------------
@ -84,6 +114,9 @@ Installing Cygwin
"Publishing". You can try omitting KDE, Gnome, GTK, and other
graphics packages if you don't plan to use them.
Perhaps a minimum set would be those packages listed below for the
"Ubuntu Bash under Windows 10" installation?
After installing Cygwin, you will get lots of links for installed
tools and shells. I use the RXVT native shell. It is fast and reliable
and does not require you to run the Cygwin X server (which is neither
@ -95,6 +128,136 @@ Installing Cygwin
about 5GiB. The server I selected was also very slow so it took
over a day to do the whole install!
Ubuntu Bash under Windows 10
----------------------------
A better version of a command-line only Ubuntu under Windows 10 (beta)
has recently been made available from Microsoft.
Installation
------------
Installation instructions abound on the Internet complete with screen
shots. I will attempt to duplicate those instructions in full here.
Here are the simplified installation steps:
- Open "Settings".
- Click on "Update & security".
- Click on "For Developers".
- Under "Use developer features", select the "Developer mode" option to
setup the environment to install Bash.
- A message box should pop up. Click "Yes" to turn on developer mode.
- After the necessary components install, you'll need to restart your
computer.
Once your computer reboots:
- Open "Control Panel".
- Click on "Programs".
- Click on "Turn Windows features on or off".
- A list of features will pop up, check the "Windows Subsystem for Linux
(beta)" option.
- Click OK.
- Once the components installed on your computer, click the "Restart
now" button to complete the task.
After your computer restarts, you will notice that Bash will not appear in
the "Recently added" list of apps, this is because Bash isn't actually
installed yet. Now that you have setup the necessary components, use the
following steps to complete the installation of Bash:
- Open "Start", do a search for bash.exe, and press "Enter".
- On the command prompt, type y and press Enter to download and install
Bash from the Windows Store. This will take awhile.
- Then you'll need to create a default UNIX user account. This account
doesn't have to be the same as your Windows account. Enter the
username in the required field and press Enter (you can't use the
username "admin").
- Close the "bash.exe" command prompt.
Now that you completed the installation and setup, you can open the Bash
tool from the Start menu like you would with any other app.
Accessing Windows Files from Ubuntu
-----------------------------------
File sysems will be mounted under "/mnt" so for example "C:\Program Files"
appears at "/mnt/c/Program Files". This is as opposed to Cgwin where
the same directory would appear at "/cygdrive/c/Program Files".
With these differences (perhaps a few other Windows quirks) the Ubuntu
install works just like Ubuntu running natively on your PC.
Accessing Ubuntu Files From Windows
-----------------------------------
In Ubuntu Userspace for Windows, the Ubuntu file system root directory is
at:
%localappdata%\lxss\rootfs
Or
C:\Users\Username\AppData\Local\lxss\rootfs
Install Linux Software.
-----------------------
Use "sudo apt-get install <package name>". As examples, this is how
you would get GIT:
$ sudo apt-get install git
This will get you a compiler for your host PC:
$ sudo apt-get install gcc
This will get you an ARM compiler for your target:
$ sudo apt-get install gcc-arm-none-eabi
NOTE: That is just an example. I am not sure if apt-get will give you a
current or usable compiler. You should carefully select your toolchain
for the needs of your project.]
You will also need to the get the kconfig-frontends configuration as
described below under "NuttX Configuration tool". In order build the
kconfig-frontends configuration tool you will also need: make, gperf,
flex, bison, and libncurses-dev.
That is enough to do a basic NuttX build.
Integrating with Windows Tools
------------------------------
If you want to integrate with Windows native tools, then you would need
deal with the same kind of craziness as with integrating Cygwin with
native toolchains, see the section "Cygwin Build Problems" below.
However, there is currently no build support for using Windows native
tools with Ubuntu under Windows. This tool combination is made to work
with Cygwin through the use of the 'cygpath -w' tool that converts paths
from say '/cydrive/c/Program Files' to 'C:\Program Files'. There is,
however, no corresponding tool to convert '/mnt/c/Program Files' in the
Ubuntu environment.
Graphics Support
----------------
The Ubuntu version support by Microsoft is a command-line only version.
There is no support for Linux graphics utilities.
This limititation is not a limitation of Ubuntu, however, only in what
Microsoft is willing to support. If you install a X-Server, then you
can also use basic graphics utilities. See for example:
http://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/
Many Linux graphics programs would, however, also require a graphics
framework like GTK or Qt. So this might be a trip down the rabbit hole.
INSTALLATION
^^^^^^^^^^^^
There are two ways to get NuttX: You may download released, stable
tarballs from wither the Bitbucket or Sourceforge download locations.
Or you may get NuttX by cloning the Bitbucket GIT repositories. Let's
consider the released tarballs first:
Download and Unpack
-------------------
@ -105,6 +268,11 @@ Download and Unpack
match the various instructions in the documentation and some scripts
in the source tree.
Download locations:
https://bitbucket.org/nuttx/nuttx/downloads
https://sourceforge.net/projects/nuttx/files/nuttx/
Semi-Optional apps/ Package
---------------------------

View File

@ -7,8 +7,8 @@ comment "ARM Configuration Options"
choice
prompt "Toolchain Selection"
default ARM_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS
default ARM_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS
default ARM_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS
default ARM_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS
config ARM_TOOLCHAIN_BUILDROOT
bool "Buildroot (Cygwin or Linux)"
@ -24,11 +24,11 @@ config ARM_TOOLCHAIN_CODESOURCERYL
config ARM_TOOLCHAIN_CODESOURCERYW
bool "CodeSourcery GNU toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config ARM_TOOLCHAIN_DEVKITARM
bool "devkitARM GNU toolchain"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config ARM_TOOLCHAIN_GNU_EABIL
bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)"
@ -38,7 +38,7 @@ config ARM_TOOLCHAIN_GNU_EABIL
config ARM_TOOLCHAIN_GNU_EABIW
bool "Generic GNU EABI toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
---help---
This option should work for any modern GNU toolchain (GCC 4.5 or newer)
configured for arm-none-eabi-.

View File

@ -7,12 +7,12 @@ comment "ARMV6M Configuration Options"
choice
prompt "Toolchain Selection"
default ARMV6M_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS
default ARMV6M_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS
default ARMV6M_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS
default ARMV6M_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS
config ARMV6M_TOOLCHAIN_ATOLLIC
bool "Atollic Lite/Pro for Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config ARMV6M_TOOLCHAIN_BUILDROOT
bool "Buildroot (Cygwin or Linux)"
@ -24,7 +24,7 @@ config ARMV6M_TOOLCHAIN_CODEREDL
config ARMV6M_TOOLCHAIN_CODEREDW
bool "CodeRed for Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config ARMV6M_TOOLCHAIN_CODESOURCERYL
bool "CodeSourcery GNU toolchain under Linux"
@ -32,11 +32,11 @@ config ARMV6M_TOOLCHAIN_CODESOURCERYL
config ARMV6M_TOOLCHAIN_CODESOURCERYW
bool "CodeSourcery GNU toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config ARMV6M_TOOLCHAIN_DEVKITARM
bool "devkitARM GNU toolchain"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config ARMV6M_TOOLCHAIN_GNU_EABIL
bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)"
@ -46,7 +46,7 @@ config ARMV6M_TOOLCHAIN_GNU_EABIL
config ARMV6M_TOOLCHAIN_GNU_EABIW
bool "Generic GNU EABI toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
---help---
This option should work for any modern GNU toolchain (GCC 4.5 or newer)
configured for arm-none-eabi.

View File

@ -128,8 +128,8 @@ endif # ARMV7A_HAVE_L2CC
choice
prompt "Toolchain Selection"
default ARMV7A_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS
default ARMV7A_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS
default ARMV7A_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS
default ARMV7A_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS
config ARMV7A_TOOLCHAIN_BUILDROOT
bool "Buildroot (Cygwin or Linux)"
@ -145,11 +145,11 @@ config ARMV7A_TOOLCHAIN_CODESOURCERYL
config ARMV7A_TOOLCHAIN_CODESOURCERYW
bool "CodeSourcery GNU toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config ARMV7A_TOOLCHAIN_DEVKITARM
bool "devkitARM GNU toolchain"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config ARMV7A_TOOLCHAIN_GNU_EABIL
bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)"
@ -159,7 +159,7 @@ config ARMV7A_TOOLCHAIN_GNU_EABIL
config ARMV7A_TOOLCHAIN_GNU_EABIW
bool "Generic GNU EABI toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
---help---
This option should work for any modern GNU toolchain (GCC 4.5 or newer)
configured for arm-none-eabi-.

View File

@ -48,12 +48,12 @@ config ARMV7M_DTCM
choice
prompt "Toolchain Selection"
default ARMV7M_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS
default ARMV7M_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS
default ARMV7M_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS
default ARMV7M_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS
config ARMV7M_TOOLCHAIN_IARW
bool "IAR for Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
select ARM_TOOLCHAIN_IAR
config ARMV7M_TOOLCHAIN_IARL
@ -63,7 +63,7 @@ config ARMV7M_TOOLCHAIN_IARL
config ARMV7M_TOOLCHAIN_ATOLLIC
bool "Atollic Lite/Pro for Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
select ARM_TOOLCHAIN_GNU
config ARMV7M_TOOLCHAIN_BUILDROOT
@ -78,7 +78,7 @@ config ARMV7M_TOOLCHAIN_CODEREDL
config ARMV7M_TOOLCHAIN_CODEREDW
bool "CodeRed for Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
select ARM_TOOLCHAIN_GNU
config ARMV7M_TOOLCHAIN_CODESOURCERYL
@ -88,12 +88,12 @@ config ARMV7M_TOOLCHAIN_CODESOURCERYL
config ARMV7M_TOOLCHAIN_CODESOURCERYW
bool "CodeSourcery GNU toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
select ARM_TOOLCHAIN_GNU
config ARMV7M_TOOLCHAIN_DEVKITARM
bool "devkitARM GNU toolchain"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
select ARM_TOOLCHAIN_GNU
config ARMV7M_TOOLCHAIN_GNU_EABIL
@ -106,7 +106,7 @@ config ARMV7M_TOOLCHAIN_GNU_EABIL
config ARMV7M_TOOLCHAIN_GNU_EABIW
bool "Generic GNU EABI toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
select ARM_TOOLCHAIN_GNU
---help---
This option should work for any modern GNU toolchain (GCC 4.5 or newer)
@ -114,7 +114,7 @@ config ARMV7M_TOOLCHAIN_GNU_EABIW
config ARMV7M_TOOLCHAIN_RAISONANCE
bool "STMicro Raisonance for Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
select ARM_TOOLCHAIN_GNU
endchoice

View File

@ -144,8 +144,8 @@ endif # ARMV7R_HAVE_L2CC
choice
prompt "Toolchain Selection"
default ARMV7R_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS
default ARMV7R_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS
default ARMV7R_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS
default ARMV7R_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS
config ARMV7R_TOOLCHAIN_BUILDROOT
bool "Buildroot (Cygwin or Linux)"
@ -161,11 +161,11 @@ config ARMV7R_TOOLCHAIN_CODESOURCERYL
config ARMV7R_TOOLCHAIN_CODESOURCERYW
bool "CodeSourcery GNU toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config ARMV7R_TOOLCHAIN_DEVKITARM
bool "devkitARM GNU toolchain"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config ARMV7R_TOOLCHAIN_GNU_EABIL
bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)"
@ -175,7 +175,7 @@ config ARMV7R_TOOLCHAIN_GNU_EABIL
config ARMV7R_TOOLCHAIN_GNU_EABIW
bool "Generic GNU EABI toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
---help---
This option should work for any modern GNU toolchain (GCC 4.5 or newer)
configured for arm-none-eabi-.

View File

@ -2574,11 +2574,11 @@ static bool stm32_dmasupported(FAR struct sdio_dev_s *dev)
static int stm32_dmapreflight(FAR struct sdio_dev_s *dev,
FAR const uint8_t *buffer, size_t buflen)
{
#if !defined(CONFIG_STM32_STM32F40XX)
struct stm32_dev_s *priv = (struct stm32_dev_s *)dev;
DEBUGASSERT(priv != NULL && buffer != NULL && buflen > 0);
#if !defined(CONFIG_STM32_STM32F40XX)
/* Wide bus operation is required for DMA */
if (!priv->widebus)

View File

@ -8,13 +8,13 @@ comment "AVR Configuration Options"
choice
prompt "Toolchain"
default AVR_WINAVR_TOOLCHAIN if HOST_WINDOWS
default AVR_WINAVR_TOOLCHAIN if TOOLCHAIN_WINDOWS
default AVR_BUILDROOT_TOOLCHAIN if HOST_LINUX
default AVR_CROSSPACK_TOOLCHAIN if HOST_OSX
config AVR_WINAVR_TOOLCHAIN
bool "WinAVR"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
---help---
For Cygwin development environment on Windows machines, you
can use WinAVR: http://sourceforge.net/projects/winavr/files/
@ -29,7 +29,7 @@ config AVR_WINAVR_TOOLCHAIN
config AVR_ATMEL_AVR_TOOLCHAIN
bool "Atmel AVR Toolchain"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
---help---
Atmel provides GNU Toolchain for AVR development. It can
be obtained by installing Atmel Studio 6 and later or
@ -55,7 +55,6 @@ config AVR_CROSSPACK_TOOLCHAIN
config AVR_BUILDROOT_TOOLCHAIN
bool "Buildroot"
depends on HOST_LINUX || HOST_WINDOWS
---help---
There is a DIY buildroot version for the AVR boards here:
http://sourceforge.net/projects/nuttx/files/buildroot/. See

View File

@ -8,12 +8,12 @@ comment "AVR32 Configuration Options"
choice
prompt "Toolchain"
default AVR32_AVRTOOLSW if HOST_WINDOWS
default AVR32_AVRTOOLSW if TOOLCHAIN_WINDOWS
default AVR32_AVRTOOLSL if HOST_LINUX
config AVR32_AVRTOOLSW
bool "AVR tools for Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config AVR32_AVRTOOLSL
bool "AVR tools for Linux"

View File

@ -8,8 +8,8 @@ comment "MIPS32 Configuration Options"
choice
prompt "Toolchain Selection"
default MIPS32_TOOLCHAIN_MICROCHIPW_LITE if HOST_WINDOWS
default MIPS32_TOOLCHAIN_GNU_ELF if !HOST_WINDOWS
default MIPS32_TOOLCHAIN_MICROCHIPW_LITE if TOOLCHAIN_WINDOWS
default MIPS32_TOOLCHAIN_GNU_ELF if !TOOLCHAIN_WINDOWS
config MIPS32_TOOLCHAIN_GNU_ELF
bool "Generic GNU ELF toolchain"
@ -31,15 +31,15 @@ config MIPS32_TOOLCHAIN_MICROCHIPL_LITE
config MIPS32_TOOLCHAIN_MICROCHIPW_XC32
bool "Microchip XC32 toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config MIPS32_TOOLCHAIN_MICROCHIPW
bool "Microchip C32 toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config MIPS32_TOOLCHAIN_MICROCHIPW_LITE
bool "Microchip C32 toolchain under Windows (Lite edition)"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config MIPS32_TOOLCHAIN_MICROCHIPOPENL
bool "microchipOpen toolchain under Linux"
@ -47,7 +47,7 @@ config MIPS32_TOOLCHAIN_MICROCHIPOPENL
config MIPS32_TOOLCHAIN_PINGUINOW
bool "Pinguino mips-elf toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
config MIPS32_TOOLCHAIN_PINGUINOL
bool "Pinguino mips-elf toolchain under OS X or Linux"

View File

@ -7,8 +7,8 @@ if ARCH_CHIP_LM32
choice
prompt "Toolchain Selection"
default LM32_TOOLCHAIN_GNUW if HOST_WINDOWS
default LM32_TOOLCHAIN_GNUL if !HOST_WINDOWS
default LM32_TOOLCHAIN_GNUW if TOOLCHAIN_WINDOWS
default LM32_TOOLCHAIN_GNUL if !TOOLCHAIN_WINDOWS
config LM32_TOOLCHAIN_BUILDROOT
bool "Buildroot (Cygwin or Linux)"
@ -22,7 +22,7 @@ config LM32_TOOLCHAIN_GNUL
config LM32_TOOLCHAIN_GNUW
bool "Generic GNU toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
---help---
This option should work for any modern GNU toolchain (GCC 4.5 or newer)
configured for lm32-elf-.

View File

@ -7,8 +7,8 @@ comment "RV32IM Configuration Options"
choice
prompt "Toolchain Selection"
default RV32IM_TOOLCHAIN_GNU_RVGW if HOST_WINDOWS
default RV32IM_TOOLCHAIN_GNU_RVGL if !HOST_WINDOWS
default RV32IM_TOOLCHAIN_GNU_RVGW if TOOLCHAIN_WINDOWS
default RV32IM_TOOLCHAIN_GNU_RVGL if !TOOLCHAIN_WINDOWS
config RV32IM_TOOLCHAIN_GNU_RVGL
bool "Generic GNU RVG toolchain under Linux (or other POSIX environment)"
@ -18,7 +18,7 @@ config RV32IM_TOOLCHAIN_GNU_RVGL
config RV32IM_TOOLCHAIN_GNU_RVGW
bool "Generic GNU RVG toolchain under Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
---help---
This option should work for any modern GNU toolchain (GCC 5.2 or newer)
configured for riscv32-unknown-elf.

View File

@ -37,7 +37,7 @@ config SIM_CYGWIN_DECORATED
default n
depends on WINDOWS_CYGWIN
---help---
Older versions of Cygwin toolsdecorated C symbol names by adding an
Older versions of Cygwin tools decorated C symbol names by adding an
underscore to the beginning of the symbol name. Newer versions of
Cygwin do not seem to do this.

View File

@ -7,8 +7,8 @@ if ARCH_CHIP_Z180
choice
prompt "Toolchain Selection"
default Z180_TOOLCHAIN_SDCCW if HOST_WINDOWS
default Z180_TOOLCHAIN_SDCCL if !HOST_WINDOWS
default Z180_TOOLCHAIN_SDCCW if TOOLCHAIN_WINDOWS
default Z180_TOOLCHAIN_SDCCL if !TOOLCHAIN_WINDOWS
config Z180_TOOLCHAIN_SDCCL
bool "SDCC for Linux, MAC OSX, or Cygwin"
@ -16,7 +16,7 @@ config Z180_TOOLCHAIN_SDCCL
config Z180_TOOLCHAIN_SDCCW
bool "SDCC for Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
endchoice

View File

@ -7,8 +7,8 @@ if ARCH_CHIP_Z80
choice
prompt "Toolchain Selection"
default Z80_TOOLCHAIN_SDCCW if HOST_WINDOWS
default Z80_TOOLCHAIN_SDCCL if !HOST_WINDOWS
default Z80_TOOLCHAIN_SDCCW if TOOLCHAIN_WINDOWS
default Z80_TOOLCHAIN_SDCCL if !TOOLCHAIN_WINDOWS
config Z80_TOOLCHAIN_SDCCL
bool "SDCC for Linux, MAC OSX, or Cygwin"
@ -16,7 +16,7 @@ config Z80_TOOLCHAIN_SDCCL
config Z80_TOOLCHAIN_SDCCW
bool "SDCC for Windows"
depends on HOST_WINDOWS
depends on TOOLCHAIN_WINDOWS
endchoice

View File

@ -555,6 +555,13 @@ config NXFONT_X11_MISC_FIXED_10X20
This option enables support for a "x11-misc-fixed-10x20".
(font ID FONTID_X11_MISC_FIXED_10X20 == 42).
config NXFONT_TOM_THUMB_4X6
bool "Tom Thumb Monospace 4x6"
default n
---help---
This option enables support for a small, 3x5 font (with blank space
padding to 4x6) (font ID FONTID_TOM_THUMB_4X6 == 43).
endmenu
menuconfig NXTERM

View File

@ -1,7 +1,7 @@
/****************************************************************************
* include/nuttx/nx/nxfonts.h
*
* Copyright (C) 2008, 2009, 2011, 2015 Gregory Nutt. All rights reserved.
* Copyright (C) 2008, 2009, 2011, 2015, 2017 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -50,6 +50,7 @@
/****************************************************************************
* Pre-processor definitions
****************************************************************************/
/* Select the default font. If no fonts are selected, then a compilation
* error is likely down the road.
*/
@ -194,6 +195,11 @@
#elif defined(CONFIG_NXFONT_MONO5X8)
# define NXFONT_DEFAULT FONTID_MONO5X8
/* Tom Thumb mono-space 4x6 font */
#elif defined(CONFIG_NXFONT_TOM_THUMB_4X6)
# define NXFONT_DEFAULT FONTID_TOM_THUMB_4X6
#endif
/****************************************************************************
@ -387,6 +393,10 @@ enum nx_fontid_e
#ifdef CONFIG_NXFONT_X11_MISC_FIXED_10X20
, FONTID_X11_MISC_FIXED_10X20 = 42 /* X11 misc fixed 10x20 */
#endif
#ifdef CONFIG_NXFONT_TOM_THUMB_4X6
, FONTID_TOM_THUMB_4X6 = 43 /* Tom Thumb monospace 4x6 */
#endif
};
/* This structures provides the metrics for one glyph */

View File

@ -225,6 +225,10 @@ ifeq ($(CONFIG_NXFONT_X11_MISC_FIXED_10X20),y)
$(Q) $(MAKE) -C nxfonts -f Makefile.sources TOPDIR=$(TOPDIR) NXFONTS_FONTID=42 EXTRADEFINES=$(EXTRADEFINES)
endif
ifeq ($(CONFIG_NXFONT_TOM_THUMB_4X6),y)
$(Q) $(MAKE) -C nxfonts -f Makefile.sources TOPDIR=$(TOPDIR) NXFONTS_FONTID=43 EXTRADEFINES=$(EXTRADEFINES)
endif
gensources: gen1bppsources gen2bppsource gen4bppsource gen8bppsource gen16bppsource gen24bppsource gen32bppsources genfontsources
$(AOBJS): $(BINDIR)$(DELIM)%$(OBJEXT): %.S

View File

@ -1,7 +1,7 @@
############################################################################
# libnx/nxfonts/Make.defs
#
# Copyright (C) 2008, 2013 Gregory Nutt. All rights reserved.
# Copyright (C) 2008, 2013, 2017 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
@ -225,7 +225,11 @@ ifeq ($(CONFIG_NXFONT_X11_MISC_FIXED_10X20),y)
CSRCS += nxfonts_bitmaps_x11-misc-fixed-10x20.c
endif
# Tom Thumb mono-space 4x6 font
ifeq ($(CONFIG_NXFONT_TOM_THUMB_4X6),y)
CSRCS += nxfonts_tom-thumb-4x6.c
endif
# Add the nxfont/ directory to the build

View File

@ -1,7 +1,7 @@
############################################################################
# libnx/nxfonts/Makefile.sources
#
# Copyright (C) 2008, 2013 Gregory Nutt. All rights reserved.
# Copyright (C) 2008, 2013, 2017 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
@ -296,6 +296,12 @@ NXFONTS_PREFIX := g_x11_misc_fixed_10x20_
GEN_CSRC = nxfonts_bitmaps_x11-misc-fixed-10x20.c
endif
# Tom Thumb mono-space 4x6 font
ifeq ($(NXFONTS_FONTID),43)
NXFONTS_PREFIX := g_tom_thumb_4x6_
GEN_CSRC = nxfonts_tom-thumb-4x6.c
endif
DEPENDENCY := nxfonts_bitmaps.c
CPPFLAGS += -DNXFONTS_FONTID=$(NXFONTS_FONTID)

View File

@ -54,10 +54,6 @@
# define CONFIG_NXFONTS_CHARBITS 7
#endif
/****************************************************************************
* Public Types
****************************************************************************/
/****************************************************************************
* Public Data
****************************************************************************/
@ -65,7 +61,8 @@
#undef EXTERN
#if defined(__cplusplus)
# define EXTERN extern "C"
extern "C" {
extern "C"
{
#else
# define EXTERN extern
#endif

View File

@ -130,6 +130,8 @@
# include "nxfonts_x11-misc-fixed-9x18B.h"
#elif NXFONTS_FONTID == 42
# include "nxfonts_x11-misc-fixed-10x20.h"
#elif NXFONTS_FONTID == 43
# include "nxfonts_tom-thumb-4x6.h"
#else
# error "No font ID specified"
#endif

View File

@ -1,7 +1,7 @@
/****************************************************************************
* libnx/nxfonts/nxfonts_getfont.c
*
* Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved.
* Copyright (C) 2008-2009, 2011, 2017 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -48,14 +48,6 @@
#include "nxfonts.h"
/****************************************************************************
* Pre-Processor Definitions
****************************************************************************/
/****************************************************************************
* Private Types
****************************************************************************/
/****************************************************************************
* Private Data
****************************************************************************/
@ -246,9 +238,12 @@ extern const struct nx_fontpackage_s g_x11_misc_fixed_9x18B_package;
extern const struct nx_fontpackage_s g_x11_misc_fixed_10x20_package;
#endif
#ifdef CONFIG_NXFONT_TOM_THUMB_4X6
extern const struct nx_fontpackage_s g_tom_thumb_4x6_package;
#endif
static FAR const struct nx_fontpackage_s *g_fontpackages[] =
{
/* MONO */
#ifdef CONFIG_NXFONT_MONO5X8
@ -431,13 +426,15 @@ static FAR const struct nx_fontpackage_s *g_fontpackages[] =
&g_x11_misc_fixed_10x20_package,
#endif
/* Tom Thumb mono-space 4x6 font */
#ifdef CONFIG_NXFONT_TOM_THUMB_4X6
&g_tom_thumb_4x6_package,
#endif
NULL
};
/****************************************************************************
* Public Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/

View File

@ -0,0 +1,827 @@
/****************************************************************************
* libnx/nxfonts/nxfonts_tom-thumb-4x6.h
*
* Copyright (C) 2017 Alan Carvalho de Assis. All rights reserved.
* Author: Alan Carvalho de Assis <acassis@gmail.com>
*
* Based on Tom Thumb font:
* https://robey.lag.net/2010/01/23/tiny-monospace-font.html
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT}
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING}
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
#ifndef __LIBNX_NXFONTS_NXFONTS_TOM_THUMB_4X6_H
#define __LIBNX_NXFONTS_NXFONTS_TOM_THUMB_4X6_H
/****************************************************************************
* Included Files
****************************************************************************/
/****************************************************************************
* Pre-Processor Definitions
****************************************************************************/
/* Font ID */
#define NXFONT_ID FONTID_TOM_THUMB_4X6
/* Ranges of 7-bit and 8-bit fonts */
#define NXFONT_MIN7BIT 33
#define NXFONT_MAX7BIT 126
#define NXFONT_MIN8BIT 161
#define NXFONT_MAX8BIT 255
/* Maximum height and width of any glyph in the set */
#define NXFONT_MAXHEIGHT 6
#define NXFONT_MAXWIDTH 4
/* The width of a space */
#define NXFONT_SPACEWIDTH 4
/* exclam (33) */
#define NXFONT_METRICS_33 {1, 2, 5, 1, 0, 0}
#define NXFONT_BITMAP_33 {0x80, 0x80, 0x80, 0x0, 0x80}
/* quotedbl (34) */
#define NXFONT_METRICS_34 {1, 4, 2, 0, 0, 0}
#define NXFONT_BITMAP_34 {0xa0, 0xa0}
/* numbersign (35) */
#define NXFONT_METRICS_35 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_35 {0xa0, 0xe0, 0xa0, 0xe0, 0xa0}
/* dollar (36) */
#define NXFONT_METRICS_36 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_36 {0x60, 0xc0, 0x60, 0xc0, 0x40}
/* percent (37) */
#define NXFONT_METRICS_37 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_37 {0x80, 0x20, 0x40, 0x80, 0x20}
/* ampersand (38) */
#define NXFONT_METRICS_38 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_38 {0xc0, 0xc0, 0xe0, 0xa0, 0x60}
/* quotesingle (39) */
#define NXFONT_METRICS_39 {1, 2, 2, 1, 0, 0}
#define NXFONT_BITMAP_39 {0x80, 0x80}
/* parenleft (40) */
#define NXFONT_METRICS_40 {1, 3, 5, 1, 0, 0}
#define NXFONT_BITMAP_40 {0x40, 0x80, 0x80, 0x80, 0x40}
/* parenright (41) */
#define NXFONT_METRICS_41 {1, 3, 5, 0, 0, 0}
#define NXFONT_BITMAP_41 {0x80, 0x40, 0x40, 0x40, 0x80}
/* asterisk (42) */
#define NXFONT_METRICS_42 {1, 4, 3, 0, 0, 0}
#define NXFONT_BITMAP_42 {0xa0, 0x40, 0xa0}
/* plus (43) */
#define NXFONT_METRICS_43 {1, 4, 3, 0, 1, 0}
#define NXFONT_BITMAP_43 {0x40, 0xe0, 0x40}
/* comma (44) */
#define NXFONT_METRICS_44 {1, 3, 2, 0, 3, 0}
#define NXFONT_BITMAP_44 {0x40, 0x80}
/* hyphen (45) */
#define NXFONT_METRICS_45 {1, 4, 1, 0, 2, 0}
#define NXFONT_BITMAP_45 {0xe0}
/* period (46) */
#define NXFONT_METRICS_46 {1, 2, 1, 1, 4, 0}
#define NXFONT_BITMAP_46 {0x80}
/* slash (47) */
#define NXFONT_METRICS_47 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_47 {0x20, 0x20, 0x40, 0x80, 0x80}
/* zero (48) */
#define NXFONT_METRICS_48 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_48 {0x60, 0xa0, 0xa0, 0xa0, 0xc0}
/* one (49) */
#define NXFONT_METRICS_49 {1, 3, 5, 0, 0, 0}
#define NXFONT_BITMAP_49 {0x40, 0xc0, 0x40, 0x40, 0x40}
/* two (50) */
#define NXFONT_METRICS_50 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_50 {0xc0, 0x20, 0x40, 0x80, 0xe0}
/* three (51) */
#define NXFONT_METRICS_51 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_51 {0xc0, 0x20, 0x40, 0x20, 0xc0}
/* four (52) */
#define NXFONT_METRICS_52 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_52 {0xa0, 0xa0, 0xe0, 0x20, 0x20}
/* five (53) */
#define NXFONT_METRICS_53 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_53 {0xe0, 0x80, 0xc0, 0x20, 0xc0}
/* six (54) */
#define NXFONT_METRICS_54 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_54 {0x60, 0x80, 0xe0, 0xa0, 0xe0}
/* seven (55) */
#define NXFONT_METRICS_55 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_55 {0xe0, 0x20, 0x40, 0x80, 0x80}
/* eight (56) */
#define NXFONT_METRICS_56 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_56 {0xe0, 0xa0, 0xe0, 0xa0, 0xe0}
/* nine (57) */
#define NXFONT_METRICS_57 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_57 {0xe0, 0xa0, 0xe0, 0x20, 0xc0}
/* colon (58) */
#define NXFONT_METRICS_58 {1, 2, 3, 1, 1, 0}
#define NXFONT_BITMAP_58 {0x80, 0x0, 0x80}
/* semicolon (59) */
#define NXFONT_METRICS_59 {1, 3, 4, 0, 1, 0}
#define NXFONT_BITMAP_59 {0x40, 0x0, 0x40, 0x80}
/* less (60) */
#define NXFONT_METRICS_60 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_60 {0x20, 0x40, 0x80, 0x40, 0x20}
/* equal (61) */
#define NXFONT_METRICS_61 {1, 4, 3, 0, 1, 0}
#define NXFONT_BITMAP_61 {0xe0, 0x0, 0xe0}
/* greater (62) */
#define NXFONT_METRICS_62 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_62 {0x80, 0x40, 0x20, 0x40, 0x80}
/* question (63) */
#define NXFONT_METRICS_63 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_63 {0xe0, 0x20, 0x40, 0x0, 0x40}
/* at (64) */
#define NXFONT_METRICS_64 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_64 {0x40, 0xa0, 0xe0, 0x80, 0x60}
/* A (65) */
#define NXFONT_METRICS_65 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_65 {0x40, 0xa0, 0xe0, 0xa0, 0xa0}
/* B (66) */
#define NXFONT_METRICS_66 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_66 {0xc0, 0xa0, 0xc0, 0xa0, 0xc0}
/* C (67) */
#define NXFONT_METRICS_67 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_67 {0x60, 0x80, 0x80, 0x80, 0x60}
/* D (68) */
#define NXFONT_METRICS_68 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_68 {0xc0, 0xa0, 0xa0, 0xa0, 0xc0}
/* E (69) */
#define NXFONT_METRICS_69 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_69 {0xe0, 0x80, 0xe0, 0x80, 0xe0}
/* F (70) */
#define NXFONT_METRICS_70 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_70 {0xe0, 0x80, 0xe0, 0x80, 0x80}
/* G (71) */
#define NXFONT_METRICS_71 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_71 {0x60, 0x80, 0xe0, 0xa0, 0x60}
/* H (72) */
#define NXFONT_METRICS_72 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_72 {0xa0, 0xa0, 0xe0, 0xa0, 0xa0}
/* I (73) */
#define NXFONT_METRICS_73 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_73 {0xe0, 0x40, 0x40, 0x40, 0xe0}
/* J (74) */
#define NXFONT_METRICS_74 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_74 {0x20, 0x20, 0x20, 0xa0, 0x40}
/* K (75) */
#define NXFONT_METRICS_75 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_75 {0xa0, 0xa0, 0xc0, 0xa0, 0xa0}
/* L (76) */
#define NXFONT_METRICS_76 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_76 {0x80, 0x80, 0x80, 0x80, 0xe0}
/* M (77) */
#define NXFONT_METRICS_77 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_77 {0xa0, 0xe0, 0xe0, 0xa0, 0xa0}
/* N (78) */
#define NXFONT_METRICS_78 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_78 {0xa0, 0xe0, 0xe0, 0xe0, 0xa0}
/* O (79) */
#define NXFONT_METRICS_79 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_79 {0x40, 0xa0, 0xa0, 0xa0, 0x40}
/* P (80) */
#define NXFONT_METRICS_80 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_80 {0xc0, 0xa0, 0xc0, 0x80, 0x80}
/* Q (81) */
#define NXFONT_METRICS_81 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_81 {0x40, 0xa0, 0xa0, 0xe0, 0x60}
/* R (82) */
#define NXFONT_METRICS_82 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_82 {0xc0, 0xa0, 0xe0, 0xc0, 0xa0}
/* S (83) */
#define NXFONT_METRICS_83 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_83 {0x60, 0x80, 0x40, 0x20, 0xc0}
/* T (84) */
#define NXFONT_METRICS_84 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_84 {0xe0, 0x40, 0x40, 0x40, 0x40}
/* U (85) */
#define NXFONT_METRICS_85 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_85 {0xa0, 0xa0, 0xa0, 0xa0, 0x60}
/* V (86) */
#define NXFONT_METRICS_86 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_86 {0xa0, 0xa0, 0xa0, 0x40, 0x40}
/* W (87) */
#define NXFONT_METRICS_87 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_87 {0xa0, 0xa0, 0xe0, 0xe0, 0xa0}
/* X (88) */
#define NXFONT_METRICS_88 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_88 {0xa0, 0xa0, 0x40, 0xa0, 0xa0}
/* Y (89) */
#define NXFONT_METRICS_89 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_89 {0xa0, 0xa0, 0x40, 0x40, 0x40}
/* Z (90) */
#define NXFONT_METRICS_90 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_90 {0xe0, 0x20, 0x40, 0x80, 0xe0}
/* bracketleft (91) */
#define NXFONT_METRICS_91 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_91 {0xe0, 0x80, 0x80, 0x80, 0xe0}
/* backslash (92) */
#define NXFONT_METRICS_92 {1, 4, 3, 0, 1, 0}
#define NXFONT_BITMAP_92 {0x80, 0x40, 0x20}
/* bracketright (93) */
#define NXFONT_METRICS_93 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_93 {0xe0, 0x20, 0x20, 0x20, 0xe0}
/* asciicircum (94) */
#define NXFONT_METRICS_94 {1, 4, 2, 0, 0, 0}
#define NXFONT_BITMAP_94 {0x40, 0xa0}
/* underscore (95) */
#define NXFONT_METRICS_95 {1, 4, 1, 0, 4, 0}
#define NXFONT_BITMAP_95 {0xe0}
/* grave (96) */
#define NXFONT_METRICS_96 {1, 3, 2, 0, 0, 0}
#define NXFONT_BITMAP_96 {0x80, 0x40}
/* a (97) */
#define NXFONT_METRICS_97 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_97 {0xc0, 0x60, 0xa0, 0xe0}
/* b (98) */
#define NXFONT_METRICS_98 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_98 {0x80, 0xc0, 0xa0, 0xa0, 0xc0}
/* c (99) */
#define NXFONT_METRICS_99 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_99 {0x60, 0x80, 0x80, 0x60}
/* d (100) */
#define NXFONT_METRICS_100 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_100 {0x20, 0x60, 0xa0, 0xa0, 0x60}
/* e (101) */
#define NXFONT_METRICS_101 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_101 {0x60, 0xa0, 0xc0, 0x60}
/* f (102) */
#define NXFONT_METRICS_102 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_102 {0x20, 0x40, 0xe0, 0x40, 0x40}
/* g (103) */
#define NXFONT_METRICS_103 {1, 4, 5, 0, 1, 0}
#define NXFONT_BITMAP_103 {0x60, 0xa0, 0xe0, 0x20, 0x40}
/* h (104) */
#define NXFONT_METRICS_104 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_104 {0x80, 0xc0, 0xa0, 0xa0, 0xa0}
/* i (105) */
#define NXFONT_METRICS_105 {1, 2, 5, 1, 0, 0}
#define NXFONT_BITMAP_105 {0x80, 0x0, 0x80, 0x80, 0x80}
/* j (106) */
#define NXFONT_METRICS_106 {1, 4, 6, 0, 0, 0}
#define NXFONT_BITMAP_106 {0x20, 0x0, 0x20, 0x20, 0xa0, 0x40}
/* k (107) */
#define NXFONT_METRICS_107 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_107 {0x80, 0xa0, 0xc0, 0xc0, 0xa0}
/* l (108) */
#define NXFONT_METRICS_108 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_108 {0xc0, 0x40, 0x40, 0x40, 0xe0}
/* m (109) */
#define NXFONT_METRICS_109 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_109 {0xe0, 0xe0, 0xe0, 0xa0}
/* n (110) */
#define NXFONT_METRICS_110 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_110 {0xc0, 0xa0, 0xa0, 0xa0}
/* o (111) */
#define NXFONT_METRICS_111 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_111 {0x40, 0xa0, 0xa0, 0x40}
/* p (112) */
#define NXFONT_METRICS_112 {1, 4, 5, 0, 1, 0}
#define NXFONT_BITMAP_112 {0xc0, 0xa0, 0xa0, 0xc0, 0x80}
/* q (113) */
#define NXFONT_METRICS_113 {1, 4, 5, 0, 1, 0}
#define NXFONT_BITMAP_113 {0x60, 0xa0, 0xa0, 0x60, 0x20}
/* r (114) */
#define NXFONT_METRICS_114 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_114 {0x60, 0x80, 0x80, 0x80}
/* s (115) */
#define NXFONT_METRICS_115 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_115 {0x60, 0xc0, 0x60, 0xc0}
/* t (116) */
#define NXFONT_METRICS_116 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_116 {0x40, 0xe0, 0x40, 0x40, 0x60}
/* u (117) */
#define NXFONT_METRICS_117 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_117 {0xa0, 0xa0, 0xa0, 0x60}
/* v (118) */
#define NXFONT_METRICS_118 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_118 {0xa0, 0xa0, 0xe0, 0x40}
/* w (119) */
#define NXFONT_METRICS_119 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_119 {0xa0, 0xe0, 0xe0, 0xe0}
/* x (120) */
#define NXFONT_METRICS_120 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_120 {0xa0, 0x40, 0x40, 0xa0}
/* y (121) */
#define NXFONT_METRICS_121 {1, 4, 5, 0, 1, 0}
#define NXFONT_BITMAP_121 {0xa0, 0xa0, 0x60, 0x20, 0x40}
/* z (122) */
#define NXFONT_METRICS_122 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_122 {0xe0, 0x60, 0xc0, 0xe0}
/* braceleft (123) */
#define NXFONT_METRICS_123 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_123 {0x60, 0x40, 0x80, 0x40, 0x60}
/* bar (124) */
#define NXFONT_METRICS_124 {1, 2, 5, 1, 0, 0}
#define NXFONT_BITMAP_124 {0x80, 0x80, 0x0, 0x80, 0x80}
/* braceright (125) */
#define NXFONT_METRICS_125 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_125 {0xc0, 0x40, 0x20, 0x40, 0xc0}
/* asciitilde (126) */
#define NXFONT_METRICS_126 {1, 4, 2, 0, 0, 0}
#define NXFONT_BITMAP_126 {0x60, 0xc0}
/* exclamdown (161) */
#define NXFONT_METRICS_161 {1, 2, 5, 1, 0, 0}
#define NXFONT_BITMAP_161 {0x80, 0x0, 0x80, 0x80, 0x80}
/* cent (162) */
#define NXFONT_METRICS_162 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_162 {0x40, 0xe0, 0x80, 0xe0, 0x40}
/* sterling (163) */
#define NXFONT_METRICS_163 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_163 {0x60, 0x40, 0xe0, 0x40, 0xe0}
/* currency (164) */
#define NXFONT_METRICS_164 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_164 {0xa0, 0x40, 0xe0, 0x40, 0xa0}
/* yen (165) */
#define NXFONT_METRICS_165 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_165 {0xa0, 0xa0, 0x40, 0xe0, 0x40}
/* brokenbar (166) */
#define NXFONT_METRICS_166 {1, 2, 5, 1, 0, 0}
#define NXFONT_BITMAP_166 {0x80, 0x80, 0x0, 0x80, 0x80}
/* section (167) */
#define NXFONT_METRICS_167 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_167 {0x60, 0x40, 0xa0, 0x40, 0xc0}
/* dieresis (168) */
#define NXFONT_METRICS_168 {1, 4, 1, 0, 0, 0}
#define NXFONT_BITMAP_168 {0xa0}
/* copyright (169) */
#define NXFONT_METRICS_169 {1, 4, 3, 0, 0, 0}
#define NXFONT_BITMAP_169 {0x60, 0x80, 0x60}
/* ordfeminine (170) */
#define NXFONT_METRICS_170 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_170 {0x60, 0xa0, 0xe0, 0x0, 0xe0}
/* guillemotleft (171) */
#define NXFONT_METRICS_171 {1, 3, 3, 0, 0, 0}
#define NXFONT_BITMAP_171 {0x40, 0x80, 0x40}
/* logicalnot (172) */
#define NXFONT_METRICS_172 {1, 4, 2, 0, 1, 0}
#define NXFONT_BITMAP_172 {0xe0, 0x20}
/* softhyphen (173) */
#define NXFONT_METRICS_173 {1, 3, 1, 0, 2, 0}
#define NXFONT_BITMAP_173 {0xc0}
/* registered (174) */
#define NXFONT_METRICS_174 {1, 4, 3, 0, 0, 0}
#define NXFONT_BITMAP_174 {0xc0, 0xc0, 0xa0}
/* macron (175) */
#define NXFONT_METRICS_175 {1, 4, 1, 0, 0, 0}
#define NXFONT_BITMAP_175 {0xe0}
/* degree (176) */
#define NXFONT_METRICS_176 {1, 4, 3, 0, 0, 0}
#define NXFONT_BITMAP_176 {0x40, 0xa0, 0x40}
/* plusminus (177) */
#define NXFONT_METRICS_177 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_177 {0x40, 0xe0, 0x40, 0x0, 0xe0}
/* twosuperior (178) */
#define NXFONT_METRICS_178 {1, 4, 3, 0, 0, 0}
#define NXFONT_BITMAP_178 {0xc0, 0x40, 0x60}
/* threesuperior (179) */
#define NXFONT_METRICS_179 {1, 4, 3, 0, 0, 0}
#define NXFONT_BITMAP_179 {0xe0, 0x60, 0xe0}
/* acute (180) */
#define NXFONT_METRICS_180 {1, 3, 2, 1, 0, 0}
#define NXFONT_BITMAP_180 {0x40, 0x80}
/* mu (181) */
#define NXFONT_METRICS_181 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_181 {0xa0, 0xa0, 0xa0, 0xc0, 0x80}
/* paragraph (182) */
#define NXFONT_METRICS_182 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_182 {0x60, 0xa0, 0x60, 0x60, 0x60}
/* periodcentered (183) */
#define NXFONT_METRICS_183 {1, 4, 3, 0, 1, 0}
#define NXFONT_BITMAP_183 {0xe0, 0xe0, 0xe0}
/* cedilla (184) */
#define NXFONT_METRICS_184 {1, 4, 3, 0, 2, 0}
#define NXFONT_BITMAP_184 {0x40, 0x20, 0xc0}
/* onesuperior (185) */
#define NXFONT_METRICS_185 {1, 2, 3, 1, 0, 0}
#define NXFONT_BITMAP_185 {0x80, 0x80, 0x80}
/* ordmasculine (186) */
#define NXFONT_METRICS_186 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_186 {0x40, 0xa0, 0x40, 0x0, 0xe0}
/* guillemotright (187) */
#define NXFONT_METRICS_187 {1, 3, 3, 1, 0, 0}
#define NXFONT_BITMAP_187 {0x80, 0x40, 0x80}
/* onequarter (188) */
#define NXFONT_METRICS_188 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_188 {0x80, 0x80, 0x0, 0x60, 0x20}
/* onehalf (189) */
#define NXFONT_METRICS_189 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_189 {0x80, 0x80, 0x0, 0xc0, 0x60}
/* threequarters (190) */
#define NXFONT_METRICS_190 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_190 {0xc0, 0xc0, 0x0, 0x60, 0x20}
/* questiondown (191) */
#define NXFONT_METRICS_191 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_191 {0x40, 0x0, 0x40, 0x80, 0xe0}
/* Agrave (192) */
#define NXFONT_METRICS_192 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_192 {0x40, 0x20, 0x40, 0xe0, 0xa0}
/* Aacute (193) */
#define NXFONT_METRICS_193 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_193 {0x40, 0x80, 0x40, 0xe0, 0xa0}
/* Acircumflex (194) */
#define NXFONT_METRICS_194 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_194 {0xe0, 0x0, 0x40, 0xe0, 0xa0}
/* Atilde (195) */
#define NXFONT_METRICS_195 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_195 {0x60, 0xc0, 0x40, 0xe0, 0xa0}
/* Adieresis (196) */
#define NXFONT_METRICS_196 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_196 {0xa0, 0x40, 0xa0, 0xe0, 0xa0}
/* Aring (197) */
#define NXFONT_METRICS_197 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_197 {0xc0, 0xc0, 0xa0, 0xe0, 0xa0}
/* AE (198) */
#define NXFONT_METRICS_198 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_198 {0x60, 0xc0, 0xe0, 0xc0, 0xe0}
/* Ccedilla (199) */
#define NXFONT_METRICS_199 {1, 4, 6, 0, 0, 0}
#define NXFONT_BITMAP_199 {0x60, 0x80, 0x80, 0x60, 0x20, 0x40}
/* Egrave (200) */
#define NXFONT_METRICS_200 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_200 {0x40, 0x20, 0xe0, 0xc0, 0xe0}
/* Eacute (201) */
#define NXFONT_METRICS_201 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_201 {0x40, 0x80, 0xe0, 0xc0, 0xe0}
/* Ecircumflex (202) */
#define NXFONT_METRICS_202 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_202 {0xe0, 0x0, 0xe0, 0xc0, 0xe0}
/* Edieresis (203) */
#define NXFONT_METRICS_203 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_203 {0xa0, 0x0, 0xe0, 0xc0, 0xe0}
/* Igrave (204) */
#define NXFONT_METRICS_204 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_204 {0x40, 0x20, 0xe0, 0x40, 0xe0}
/* Iacute (205) */
#define NXFONT_METRICS_205 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_205 {0x40, 0x80, 0xe0, 0x40, 0xe0}
/* Icircumflex (206) */
#define NXFONT_METRICS_206 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_206 {0xe0, 0x0, 0xe0, 0x40, 0xe0}
/* Idieresis (207) */
#define NXFONT_METRICS_207 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_207 {0xa0, 0x0, 0xe0, 0x40, 0xe0}
/* Eth (208) */
#define NXFONT_METRICS_208 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_208 {0xc0, 0xa0, 0xe0, 0xa0, 0xc0}
/* Ntilde (209) */
#define NXFONT_METRICS_209 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_209 {0xc0, 0x60, 0xa0, 0xe0, 0xa0}
/* Ograve (210) */
#define NXFONT_METRICS_210 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_210 {0x40, 0x20, 0xe0, 0xa0, 0xe0}
/* Oacute (211) */
#define NXFONT_METRICS_211 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_211 {0x40, 0x80, 0xe0, 0xa0, 0xe0}
/* Ocircumflex (212) */
#define NXFONT_METRICS_212 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_212 {0xe0, 0x0, 0xe0, 0xa0, 0xe0}
/* Otilde (213) */
#define NXFONT_METRICS_213 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_213 {0xc0, 0x60, 0xe0, 0xa0, 0xe0}
/* Odieresis (214) */
#define NXFONT_METRICS_214 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_214 {0xa0, 0x0, 0xe0, 0xa0, 0xe0}
/* multiply (215) */
#define NXFONT_METRICS_215 {1, 4, 3, 0, 1, 0}
#define NXFONT_BITMAP_215 {0xa0, 0x40, 0xa0}
/* Oslash (216) */
#define NXFONT_METRICS_216 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_216 {0x60, 0xa0, 0xe0, 0xa0, 0xc0}
/* Ugrave (217) */
#define NXFONT_METRICS_217 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_217 {0x80, 0x40, 0xa0, 0xa0, 0xe0}
/* Uacute (218) */
#define NXFONT_METRICS_218 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_218 {0x20, 0x40, 0xa0, 0xa0, 0xe0}
/* Ucircumflex (219) */
#define NXFONT_METRICS_219 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_219 {0xe0, 0x0, 0xa0, 0xa0, 0xe0}
/* Udieresis (220) */
#define NXFONT_METRICS_220 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_220 {0xa0, 0x0, 0xa0, 0xa0, 0xe0}
/* Yacute (221) */
#define NXFONT_METRICS_221 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_221 {0x20, 0x40, 0xa0, 0xe0, 0x40}
/* Thorn (222) */
#define NXFONT_METRICS_222 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_222 {0x80, 0xe0, 0xa0, 0xe0, 0x80}
/* germandbls (223) */
#define NXFONT_METRICS_223 {1, 4, 6, 0, 0, 0}
#define NXFONT_BITMAP_223 {0x60, 0xa0, 0xc0, 0xa0, 0xc0, 0x80}
/* agrave (224) */
#define NXFONT_METRICS_224 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_224 {0x40, 0x20, 0x60, 0xa0, 0xe0}
/* aacute (225) */
#define NXFONT_METRICS_225 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_225 {0x40, 0x80, 0x60, 0xa0, 0xe0}
/* acircumflex (226) */
#define NXFONT_METRICS_226 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_226 {0xe0, 0x0, 0x60, 0xa0, 0xe0}
/* atilde (227) */
#define NXFONT_METRICS_227 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_227 {0x60, 0xc0, 0x60, 0xa0, 0xe0}
/* adieresis (228) */
#define NXFONT_METRICS_228 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_228 {0xa0, 0x0, 0x60, 0xa0, 0xe0}
/* aring (229) */
#define NXFONT_METRICS_229 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_229 {0x60, 0x60, 0x60, 0xa0, 0xe0}
/* ae (230) */
#define NXFONT_METRICS_230 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_230 {0x60, 0xe0, 0xe0, 0xc0}
/* ccedilla (231) */
#define NXFONT_METRICS_231 {1, 4, 5, 0, 1, 0}
#define NXFONT_BITMAP_231 {0x60, 0x80, 0x60, 0x20, 0x40}
/* egrave (232) */
#define NXFONT_METRICS_232 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_232 {0x40, 0x20, 0x60, 0xe0, 0x60}
/* eacute (233) */
#define NXFONT_METRICS_233 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_233 {0x40, 0x80, 0x60, 0xe0, 0x60}
/* ecircumflex (234) */
#define NXFONT_METRICS_234 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_234 {0xe0, 0x0, 0x60, 0xe0, 0x60}
/* edieresis (235) */
#define NXFONT_METRICS_235 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_235 {0xa0, 0x0, 0x60, 0xe0, 0x60}
/* igrave (236) */
#define NXFONT_METRICS_236 {1, 3, 5, 1, 0, 0}
#define NXFONT_BITMAP_236 {0x80, 0x40, 0x80, 0x80, 0x80}
/* iacute (237) */
#define NXFONT_METRICS_237 {1, 3, 5, 0, 0, 0}
#define NXFONT_BITMAP_237 {0x40, 0x80, 0x40, 0x40, 0x40}
/* icircumflex (238) */
#define NXFONT_METRICS_238 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_238 {0xe0, 0x0, 0x40, 0x40, 0x40}
/* idieresis (239) */
#define NXFONT_METRICS_239 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_239 {0xa0, 0x0, 0x40, 0x40, 0x40}
/* eth (240) */
#define NXFONT_METRICS_240 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_240 {0x60, 0xc0, 0x60, 0xa0, 0x60}
/* ntilde (241) */
#define NXFONT_METRICS_241 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_241 {0xc0, 0x60, 0xc0, 0xa0, 0xa0}
/* ograve (242) */
#define NXFONT_METRICS_242 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_242 {0x40, 0x20, 0x40, 0xa0, 0x40}
/* oacute (243) */
#define NXFONT_METRICS_243 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_243 {0x40, 0x80, 0x40, 0xa0, 0x40}
/* ocircumflex (244) */
#define NXFONT_METRICS_244 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_244 {0xe0, 0x0, 0x40, 0xa0, 0x40}
/* otilde (245) */
#define NXFONT_METRICS_245 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_245 {0xc0, 0x60, 0x40, 0xa0, 0x40}
/* odieresis (246) */
#define NXFONT_METRICS_246 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_246 {0xa0, 0x0, 0x40, 0xa0, 0x40}
/* divide (247) */
#define NXFONT_METRICS_247 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_247 {0x40, 0x0, 0xe0, 0x0, 0x40}
/* oslash (248) */
#define NXFONT_METRICS_248 {1, 4, 4, 0, 1, 0}
#define NXFONT_BITMAP_248 {0x60, 0xe0, 0xa0, 0xc0}
/* ugrave (249) */
#define NXFONT_METRICS_249 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_249 {0x80, 0x40, 0xa0, 0xa0, 0x60}
/* uacute (250) */
#define NXFONT_METRICS_250 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_250 {0x20, 0x40, 0xa0, 0xa0, 0x60}
/* ucircumflex (251) */
#define NXFONT_METRICS_251 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_251 {0xe0, 0x0, 0xa0, 0xa0, 0x60}
/* udieresis (252) */
#define NXFONT_METRICS_252 {1, 4, 5, 0, 0, 0}
#define NXFONT_BITMAP_252 {0xa0, 0x0, 0xa0, 0xa0, 0x60}
/* yacute (253) */
#define NXFONT_METRICS_253 {1, 4, 6, 0, 0, 0}
#define NXFONT_BITMAP_253 {0x20, 0x40, 0xa0, 0x60, 0x20, 0x40}
/* thorn (254) */
#define NXFONT_METRICS_254 {1, 4, 5, 0, 1, 0}
#define NXFONT_BITMAP_254 {0x80, 0xc0, 0xa0, 0xc0, 0x80}
/* ydieresis (255) */
#define NXFONT_METRICS_255 {1, 4, 6, 0, 0, 0}
#define NXFONT_BITMAP_255 {0xa0, 0x0, 0xa0, 0x60, 0x20, 0x40}
#endif

View File

@ -1,7 +1,7 @@
/****************************************************************************
* sched/pthread/pthread_cancel.c
*
* Copyright (C) 2007, 2009, 2013 Gregory Nutt. All rights reserved.
* Copyright (C) 2007, 2009, 2013, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -120,8 +120,6 @@ int pthread_cancel(pthread_t thread)
/* If the thread is waiting at a cancellation point, then notify of the
* cancellation thereby waking the task up with an ECANCELED error.
*
* REVISIT: is locking the scheduler sufficent in SMP mode?
*/
if (tcb->cmn.cpcount > 0)

View File

@ -67,10 +67,14 @@
int sched_unlock(void)
{
FAR struct tcb_s *rtcb = this_task();
#ifdef CONFIG_SMP
int cpu;
cpu = this_cpu();
rtcb = current_task(cpu);
#else
rtcb = this_task();
#endif
/* Check for some special cases: (1) rtcb may be NULL only during
* early boot-up phases, and (2) sched_unlock() should have no

View File

@ -152,8 +152,6 @@ int task_delete(pid_t pid)
/* If the task is waiting at a cancellation point, then notify of the
* cancellation thereby waking the task up with an ECANCELED error.
*
* REVISIT: is locking the scheduler sufficent in SMP mode?
*/
if (dtcb->cpcount > 0)

View File

@ -269,7 +269,7 @@ bdf-convert.c
2. Use the bdf-converter program to convert the BDF font to the NuttX
font format. This will result in a C header file containing
definitions. That header file should be installed at, for example,
graphics/nxfonts/nxfonts_myfont.h.
libnx/nxfonts/nxfonts_myfont.h.
Create a new NuttX configuration variable. For example, suppose
you define the following variable: CONFIG_NXFONT_MYFONT. Then
@ -324,7 +324,7 @@ bdf-convert.c
@$(MAKE) -C nxfonts -f Makefile.sources TOPDIR=$(TOPDIR) NXFONTS_FONTID=2 EXTRADEFINES=$(EXTRADEFINES)
endif
6. nuttx/graphics/nxfonts/Make.defs. Set the make variable NXFSET_CSRCS.
6. nuttx/libnx/nxfonts/Make.defs. Set the make variable NXFSET_CSRCS.
NXFSET_CSRCS determines the name of the font C file to build when
NXFONTS_FONTID=2:
@ -335,12 +335,12 @@ bdf-convert.c
NXFSET_CSRCS += nxfonts_bitmaps_myfont.c
endif
7. nuttx/graphics/nxfonts/Makefile.sources. This is the Makefile used
7. nuttx/libnx/nxfonts/Makefile.sources. This is the Makefile used
in step 5 that will actually generate the font C file. So, given
your NXFONTS_FONTID=2, it needs to determine a prefix to use for
auto-generated variable and function names and (again) the name of
the auto-generated file to create (this must be the same name that
was used in nuttx/graphics/nxfonts/Make.defs):
was used in nuttx/libnx/nxfonts/Make.defs):
ifeq ($(NXFONTS_FONTID),1)
NXFONTS_PREFIX := g_sans23x27_
@ -351,9 +351,9 @@ bdf-convert.c
GEN_CSRC = nxfonts_bitmaps_myfont.c
endif
8. graphics/nxfonts/nxfonts_bitmaps.c. This is the file that contains
8. graphics/libnx/nxfonts_bitmaps.c. This is the file that contains
the generic font structures. It is used as a "template" file by
nuttx/graphics/nxfonts/Makefile.sources to create your customized
nuttx/libnx/nxfonts/Makefile.sources to create your customized
font data set.
#if NXFONTS_FONTID == 1
@ -367,7 +367,7 @@ bdf-convert.c
Where nxfonts_myfont.h is the NuttX font file that we generated in
step 2 using the bdf-converter tool.
9. graphics/nxfonts/nxfonts_getfont.c. Finally, we need to extend the
9. libnx/nxfonts/nxfonts_getfont.c. Finally, we need to extend the
logic that does the run-time font lookups so that can find our new
font. The lookup function is NXHANDLE nxf_getfonthandle(enum nx_fontid_e fontid).
The new font information needs to be added to data structures used by

View File

@ -1,7 +1,7 @@
#!/bin/bash
# tools/sethost.sh
#
# Copyright (C) 2016 Gregory Nutt. All rights reserved.
# Copyright (C) 2016-2017 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
@ -42,13 +42,14 @@ unset configfile
function showusage {
echo ""
echo "USAGE: $progname [-w|l] [-c|n] [-32|64] [<config>]"
echo "USAGE: $progname [-w|l] [-c|u|n] [-32|64] [<config>]"
echo " $progname -h"
echo ""
echo "Where:"
echo " -w|l selects Windows (w) or Linux (l). Default: Linux"
echo " -c|n selects Windows native (n) or Cygwin (c). Default Cygwin"
echo " -32|64 selects 32- or 64-bit host (Only for Cygwin). Default 64"
echo " -c|u|n selects Windows environment option: Cygwin (c), Ubuntu under"
echo " Windows 10 (u), or Windows native (n). Default Cygwin"
echo " -32|64 selects 32- or 64-bit host. Default 64"
echo " -h will show this help test and terminate"
echo " <config> selects configuration file. Default: .config"
exit 1
@ -65,9 +66,15 @@ while [ ! -z "$1" ]; do
host=linux
;;
-c )
host=windows
wenv=cygwin
;;
-u )
host=windows
wenv=ubuntu
;;
-n )
host=windows
wenv=native
;;
-32 )
@ -170,6 +177,7 @@ if [ "X$host" == "Xlinux" ]; then
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_NATIVE
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_CYGWIN
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_UBUNTU
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_MSYS
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_OTHER
@ -184,11 +192,19 @@ else
if [ "X$wenv" == "Xcygwin" ]; then
echo " Select CONFIG_WINDOWS_CYGWIN=y"
kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_CYGWIN
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_UBUNTU
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_NATIVE
else
echo " Select CONFIG_WINDOWS_NATIVE=y"
kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_NATIVE
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_CYGWIN
if [ "X$wenv" == "Xubuntu" ]; then
echo " Select CONFIG_WINDOWS_UBUNTU=y"
kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_UBUNTU
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_NATIVE
else
echo " Select CONFIG_WINDOWS_NATIVE=y"
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_UBUNTU
kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_NATIVE
fi
fi
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_MSYS

View File

@ -1,7 +1,7 @@
#!/bin/bash
# testbuild.sh
#
# Copyright (C) 2016 Gregory Nutt. All rights reserved.
# Copyright (C) 2016-2017 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
@ -47,12 +47,13 @@ unset testfile
function showusage {
echo ""
echo "USAGE: $progname [-w|l] [-c|n] [-s] [-a <appsdir>] [-n <nxdir>] <testlist-file>"
echo "USAGE: $progname [-w|l] [-c|u|n] [-s] [-a <appsdir>] [-n <nxdir>] <testlist-file>"
echo " $progname -h"
echo ""
echo "Where:"
echo " -w|l selects Windows (w) or Linux (l). Default: Linux"
echo " -c|n selects Windows native (n) or Cygwin (c). Default Cygwin"
echo " -c|u|n selects Windows environment option: Cygwin (c), Ubuntu under"
echo " Windows 10 (u), or Windows native (n). Default Cygwin"
echo " -s Use C++ unsigned long size_t in new operator. Default unsigned int"
echo " -a <appsdir> provides the relative path to the apps/ directory. Default ../apps"
echo " -n <nxdir> provides the relative path to the NxWidgets/ directory. Default ../NxWidgets"
@ -76,12 +77,19 @@ while [ ! -z "$1" ]; do
host=linux
;;
-c )
host=windows
wenv=cygwin
;;
-u )
host=windows
wenv=ubuntu
;;
-n )
host=windows
wenv=native
;;
-s )
host=windows
sizet=long
;;
-a )
@ -165,11 +173,19 @@ function configure {
if [ "X$wenv" == "Xcygwin" ]; then
echo " Select CONFIG_WINDOWS_CYGWIN=y"
kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_CYGWIN
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_UBUNTU
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_NATIVE
else
echo " Select CONFIG_WINDOWS_NATIVE=y"
kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_NATIVE
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_CYGWIN
if [ "X$wenv" == "Xubuntu" ]; then
echo " Select CONFIG_WINDOWS_UBUNTU=y"
kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_UBUNTU
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_NATIVE
else
echo " Select CONFIG_WINDOWS_NATIVE=y"
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_UBUNTU
kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_NATIVE
fi
fi
kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_MSYS