Skip to content

Commit 1f89b39

Browse files
committed
Release 6.2.0
1 parent cec32ac commit 1f89b39

File tree

122 files changed

+17871
-17685
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+17871
-17685
lines changed

README.md

Lines changed: 70 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -6,107 +6,107 @@ Azure RTOS GUIX Studio provides a complete, embedded graphical user interface (G
66

77
The Azure RTOS GUIX Studio installer is available here: https://aka.ms/azrtos-guix-installer.
88

9-
## Documentation
9+
Here are the key features and modules of GUIX:
1010

11-
Documentation for this library can be found here: http://docs.microsoft.com/azure/rtos/guix
11+
![GUIX Key Features](./docs/guix-features.png)
1212

13-
# Understanding inter-component dependencies
13+
## Getting Started
1414

15-
The main components of Azure RTOS are each provided in their own repository, but there are dependencies between them--shown in the following graph--that are important to understand when setting up your builds.
15+
Azure RTOS GUIX as part of Azure RTOS has been integrated to the semiconductor's SDKs and development environment. You can develop using the tools of choice from [NXP](https://www.nxp.com/design/software/embedded-software/azure-rtos-for-nxp-microcontrollers:AZURE-RTOS), [Renesas](https://github.com/renesas/azure-rtos) and [Microchip](https://mu.microchip.com/get-started-simplifying-your-iot-design-with-azure-rtos).
1616

17-
![dependency graph](docs/deps.png)
17+
We also [samples](https://github.com/azure-rtos/samples) using hero development boards from semiconductors you can build and test with.
1818

19+
See [Overview of Azure RTOS GUIX](https://learn.microsoft.com/azure/rtos/guix/overview-guix) for the high-level overview, and all documentation and APIs can be found in: [Azure RTOS GUIX documentation](https://learn.microsoft.com/azure/rtos/guix/).
1920

20-
# Building and using the library
21+
## Repository Structure and Usage
2122

22-
## Prerequisites
23+
### Directory layout
2324

24-
Install the following tools:
25+
.
26+
├── cmake # CMakeList files for building the project
27+
├── common # Core GUIX files
28+
├── fonts # Fonts required by GUIX
29+
├── graphics # Graphic assets
30+
├── ports # Architecture and compiler specific files
31+
├── samples # Sample codes
32+
├── tutorials # More sample codes
33+
├── LICENSE.txt # License terms
34+
├── LICENSE-HARDWARE.txt # Licensed hardware from semiconductors
35+
├── CONTRIBUTING.md # Contribution guidance
36+
└── SECURITY.md # Microsoft repo security guidance
2537

26-
* [CMake](https://cmake.org/download/) version 3.0 or later
27-
* [GCC compilers for arm-none-eabi](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)
28-
* [Ninja](https://ninja-build.org/)
38+
### Branches & Releases
2939

30-
## Cloning the repo
40+
The master branch has the most recent code with all new features and bug fixes. It does not represent the latest General Availability (GA) release of the library. Each official release (preview or GA) will be tagged to mark the commit and push it into the Github releases tab, e.g. `v6.2-rel`.
3141

32-
```bash
33-
$ git clone https://github.com/azure-rtos/guix.git
34-
```
42+
## Component dependencies
3543

36-
## Building as a static library
44+
The main components of Azure RTOS are each provided in their own repository, but there are dependencies between them, as shown in the following graph. This is important to understand when setting up your builds.
3745

38-
Each component of Azure RTOS comes with a composible CMake-based build system that supports many different MCUs and host systems. Integrating any of these components into your device app code is as simple as adding a git submodule and then including it in your build using the CMake command `add_subdirectory()`.
46+
![dependency graph](docs/deps.png)
3947

40-
While the typical usage pattern is to include threadx into your device code source tree to be built & linked with your code, you can compile this project as a standalone static library to confirm your build is set up correctly.
48+
> You will have to take the dependency graph above into account when building anything other than ThreadX itself.
4149
42-
```bash
43-
$ cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=cmake/cortex_m4.cmake -GNinja .
50+
### Building and using the library
4451

45-
$ cmake --build ./build
46-
```
52+
Instruction for building the GUIX as static library using Arm GNU Toolchain and CMake. If you are using toolchain and IDE from semiconductor, you might follow its own instructions to use Azure RTOS components as explained in the [Getting Started](#getting-started) section.
4753

48-
NOTE: You will have to take the dependency graph above into account when building anything other than threadx itself.
54+
1. Install the following tools:
4955

50-
# Repository Structure and Usage
56+
* [CMake](https://cmake.org/download/) version 3.0 or later
57+
* [Arm GNU Toolchain for arm-none-eabi](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads)
58+
* [Ninja](https://ninja-build.org/)
5159

52-
## Branches & Releases
60+
1. Build the [ThreadX library](https://github.com/azure-rtos/threadx#building-and-using-the-library) as the dependency.
5361

54-
The master branch has the most recent code with all new features and bug fixes. It does not represent the latest General Availability (GA) release of the library.
62+
1. Cloning the repo.
5563

56-
## Releases
64+
```bash
65+
$ git clone https://github.com/azure-rtos/guix.git
66+
```
5767

58-
Each official release (preview or GA) will be tagged to mark the commit and push it into the Github releases tab, e.g. `v6.0-rel`.
68+
1. Define the features and addons you need in `gx_user.h` and build together with the component source code. You can refer to [`gx_user_sample.h`](https://github.com/azure-rtos/guix/blob/master/common/inc/gx_user_sample.h) as an example.
5969

60-
## Directory layout
70+
1. Building as a static library
6171

62-
```
63-
- cmake
64-
- common
65-
- inc
66-
- src
67-
- ports
68-
- cortex_m0/gnu
69-
- inc
70-
- src
71-
- cortex_m3/gnu
72-
- inc
73-
- src
74-
- cortex_m4/gnu
75-
- inc
76-
- src
77-
- cortex_m7/gnu
78-
- inc
79-
- src
80-
- samples
81-
```
72+
Each component of Azure RTOS comes with a composable CMake-based build system that supports many different MCUs and host systems. Integrating any of these components into your device app code is as simple as adding a git submodule and then including it in your build using the CMake `add_subdirectory()`.
8273
83-
# Security
74+
While the typical usage pattern is to include GUIX into your device code source tree to be built & linked with your code, you can compile this project as a standalone static library to confirm your build is set up correctly.
8475
85-
Azure RTOS provides OEMs with components to secure communication and to create code and data isolation using underlying MCU/MPU hardware protection mechanisms. It is ultimately the responsibility of the device builder to ensure the device fully meets the evolving security requirements associated with its specific use case.
76+
An example of building the library for Cortex-M4:
77+
78+
```bash
79+
$ cmake -Bbuild -GNinja -DCMAKE_TOOLCHAIN_FILE=cmake/cortex_m4.cmake .
80+
81+
$ cmake --build ./build
82+
```
8683

87-
# Licensing
84+
## Professional support
8885

89-
License terms for using Azure RTOS are defined in the LICENSE.txt file of this repo. Please refer to this file for all definitive licensing information. No additional license fees are required for deploying Azure RTOS on hardware defined in the LICENSED-HARDWARE.txt file. If you are using hardware not defined in the LICENSED-HARDWARE.txt file or have licensing questions in general, please contact Microsoft directly at https://aka.ms/azrtos-license.
86+
[Professional support plans](https://azure.microsoft.com/support/options/) are available from Microsoft. For community support and others, see the [Resources](#resources) section below.
9087

91-
# Contribution, feedback, issues, and professional support
88+
## Licensing
9289

93-
If you encounter any bugs, have suggestions for new features, or if you would like to become an active contributor to this project, please follow the instructions provided in the contribution guideline for the corresponding repo.
90+
License terms for using Azure RTOS are defined in the LICENSE.txt file of this repo. Please refer to this file for all definitive licensing information. No additional license fees are required for deploying Azure RTOS on hardware defined in the [LICENSED-HARDWARE.txt](./LICENSED-HARDWARE.txt) file. If you are using hardware not listed in the file or having licensing questions in general, please contact Microsoft directly at https://aka.ms/azrtos-license.
9491

95-
For basic support, click Issues in the command bar or post a question to [Stack Overflow](http://stackoverflow.com/questions/tagged/azure-rtos+threadx) using the `threadx` and `azure-rtos` tags.
92+
## Resources
9693

97-
Professional support plans (https://azure.microsoft.com/en-us/support/options/) are available from Microsoft.
94+
The following are references to additional Azure RTOS resources:
95+
96+
- **Product introduction and white papers**: https://azure.com/rtos
97+
- **General technical questions**: https://aka.ms/QnA/azure-rtos
98+
- **Product issues and bugs, or feature requests**: https://github.com/azure-rtos/guix/issues
99+
- **Licensing and sales questions**: https://aka.ms/azrtos-license
100+
- **Product roadmap and support policy**: https://aka.ms/azrtos/lts
101+
- **Blogs and videos**: http://msiotblog.com and https://aka.ms/iotshow
102+
- **Azure RTOS TraceX Installer**: https://aka.ms/azrtos-tracex-installer
103+
104+
You can also check [previous questions](https://stackoverflow.com/questions/tagged/azure-rtos+guix) or ask new ones on StackOverflow using the `azure-rtos` and `guix` tags.
105+
106+
## Security
107+
108+
Azure RTOS provides OEMs with components to secure communication and to create code and data isolation using underlying MCU/MPU hardware protection mechanisms. It is ultimately the responsibility of the device builder to ensure the device fully meets the evolving security requirements associated with its specific use case.
98109

99-
# Additional Resources
110+
## Contribution
100111

101-
The following are references to additional Azure RTOS and Azure IoT in general:
102-
| Content | Link |
103-
|---|---|
104-
| TraceX Installer | https://aka.ms/azrtos-tracex-installer |
105-
| Azure RTOS Documentation and Guides: | https://docs.microsoft.com/azure/rtos |
106-
| Azure RTOS Website: | https://azure.microsoft.com/services/rtos/ |
107-
| Azure RTOS Sales Questions: | https://aka.ms/azrtos-license |
108-
| Azure RTOS Product Support Policy | https://aka.ms/azrtos/lts |
109-
| Azure RTOS Functional Safety Artifacts | https://aka.ms/azrtos/tuv |
110-
| For technical questions check out Microsoft Q/A for Azure IoT | https://aka.ms/QnA/azure-rtos |
111-
| Internet of Things Show for latest announcements and online training | https://aka.ms/iotshow |
112-
| IoT Tech Community | https://aka.ms/community/azure-rtos |
112+
Please follow the instructions provided in the [CONTRIBUTING.md](./CONTRIBUTING.md) for the corresponding repository.

common/inc/gx_api.h

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
/* APPLICATION INTERFACE DEFINITION RELEASE */
2525
/* */
2626
/* gx_api.h PORTABLE C */
27-
/* 6.1.12 */
27+
/* 6.2.0 */
2828
/* AUTHOR */
2929
/* */
3030
/* Kenneth Maxwell, Microsoft Corporation */
@@ -96,6 +96,11 @@
9696
/* added new style */
9797
/* GX_STYLE_REPEAT_SELECT, */
9898
/* resulting in version 6.1.12 */
99+
/* 10-31-2022 Kenneth Maxwell Modified comment(s), */
100+
/* removed unused style flag */
101+
/* GX_SCROLLBAR_BACKGROUND_ */
102+
/* TILE, */
103+
/* resulting in version 6.2.0 */
99104
/* */
100105
/**************************************************************************/
101106

@@ -118,8 +123,8 @@ extern "C" {
118123

119124
#define AZURE_RTOS_GUIX
120125
#define GUIX_MAJOR_VERSION 6
121-
#define GUIX_MINOR_VERSION 1
122-
#define GUIX_PATCH_VERSION 12
126+
#define GUIX_MINOR_VERSION 2
127+
#define GUIX_PATCH_VERSION 0
123128

124129
/* The following symbols are defined for backward compatibility reasons.*/
125130
#define __PRODUCT_GUIX__
@@ -872,7 +877,6 @@ typedef struct GX_STRING_STRUCT
872877

873878
/* Define Scroll Bar styles. */
874879

875-
#define GX_SCROLLBAR_BACKGROUND_TILE 0x00010000UL
876880
#define GX_SCROLLBAR_RELATIVE_THUMB 0x00020000UL
877881
#define GX_SCROLLBAR_END_BUTTONS 0x00040000UL
878882
#define GX_SCROLLBAR_VERTICAL 0x01000000UL

common/inc/gx_image_reader.h

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
/* COMPONENT DEFINITION RELEASE */
2727
/* */
2828
/* gx_image_reader.h PORTABLE C */
29-
/* 6.1.7 */
29+
/* 6.2.0 */
3030
/* AUTHOR */
3131
/* */
3232
/* Kenneth Maxwell, Microsoft Corporation */
@@ -48,6 +48,10 @@
4848
/* improved png decoding */
4949
/* performance, */
5050
/* resulting in version 6.1.7 */
51+
/* 10-31-2022 Kenneth Maxwell Modified comment(s), */
52+
/* added definitions for fixed */
53+
/* size table dimensions, */
54+
/* resulting in version 6.2.0 */
5155
/* */
5256
/**************************************************************************/
5357
#if defined(GX_SOFTWARE_DECODER_SUPPORT)
@@ -72,41 +76,45 @@
7276
#define GX_PNG_HUFFMAN_LIT_TABLE_SIZE 286
7377
#define GX_PNG_HUFFMAN_LIT_CODE_LEN_TABLE_SIZE 288
7478
#define GX_PNG_HUFFMAN_DIST_CODE_LEN_TABLE_SIZE 32
79+
#define GX_PNG_HUFFMAN_DIST_TABLE_SIZE 30
7580
#define GX_PNG_PALETTE_TABLE_SIZE 256
7681
#define GX_PNG_SCRATCH_BUFFER_SIZE (GX_PNG_CRC_TABLE_SIZE + \
7782
GX_PNG_HUFFMAN_LIT_TABLE_SIZE + \
7883
GX_PNG_HUFFMAN_LIT_CODE_LEN_TABLE_SIZE + \
7984
GX_PNG_HUFFMAN_DIST_CODE_LEN_TABLE_SIZE + \
8085
GX_PNG_PALETTE_TABLE_SIZE)
86+
#define JPG_MAX_COMPONENTS 3
87+
#define HUFF_TABLE_DIMENSION 2
88+
#define JPG_QUANT_TABLE_DIMENSION 4
8189

8290
/* Control block used internally for jpeg reader. */
8391

8492
typedef struct GX_JPEG_INFO_STRUCT
8593
{
94+
UINT (*gx_jpeg_mcu_draw)(struct GX_JPEG_INFO_STRUCT *, INT, INT);
8695
USHORT gx_jpeg_width;
8796
USHORT gx_jpeg_height;
8897
INT gx_jpeg_num_of_components;
89-
GX_UBYTE gx_jpeg_sample_factor[3];
90-
GX_UBYTE gx_jpeg_component_id[3];
91-
GX_UBYTE gx_jpeg_qantization_table_index[3];
92-
GX_UBYTE gx_jpeg_dc_table_index[3];
93-
GX_UBYTE gx_jpeg_ac_table_index[3];
94-
INT gx_jpeg_quantization_table[4][64];
95-
INT *gx_jpeg_huffman_table[2][2];
96-
GX_VALUE gx_jpeg_huffman_bits_count[2][2][16];
98+
GX_UBYTE gx_jpeg_sample_factor[JPG_MAX_COMPONENTS];
99+
GX_UBYTE gx_jpeg_component_id[JPG_MAX_COMPONENTS];
100+
GX_UBYTE gx_jpeg_qantization_table_index[JPG_MAX_COMPONENTS];
101+
GX_UBYTE gx_jpeg_dc_table_index[JPG_MAX_COMPONENTS];
102+
GX_UBYTE gx_jpeg_ac_table_index[JPG_MAX_COMPONENTS];
103+
INT gx_jpeg_quantization_table[JPG_QUANT_TABLE_DIMENSION][64];
104+
INT *gx_jpeg_huffman_table[HUFF_TABLE_DIMENSION][HUFF_TABLE_DIMENSION];
105+
GX_VALUE gx_jpeg_huffman_bits_count[HUFF_TABLE_DIMENSION][HUFF_TABLE_DIMENSION][16];
97106
INT gx_jpeg_restart_interval;
98107
GX_UBYTE gx_jpeg_Y_block[256];
99108
GX_UBYTE gx_jpeg_Cr_block[64];
100109
GX_UBYTE gx_jpeg_Cb_block[64];
101-
INT gx_jpeg_pre_dc[3];
110+
INT gx_jpeg_pre_dc[JPG_MAX_COMPONENTS];
102111
INT gx_jpeg_vecter[64];
103112
GX_UBYTE *gx_jpeg_data;
104113
INT gx_jpeg_data_size;
105114
INT gx_jpeg_data_index;
106115
GX_UBYTE *gx_jpeg_decoded_data;
107116
UINT gx_jpeg_decoded_data_size;
108117
GX_DRAW_CONTEXT *gx_jpeg_draw_context;
109-
UINT (*gx_jpeg_mcu_draw)(struct GX_JPEG_INFO_STRUCT *, INT, INT);
110118
INT gx_jpeg_draw_xpos;
111119
INT gx_jpeg_draw_ypos;
112120
} GX_JPEG_INFO;
@@ -134,7 +142,7 @@ typedef struct GX_PNG_STRUCT
134142
INT *gx_png_huffman_lit_table; /* 286 */
135143
INT *gx_png_huffman_lit_code_len; /* 286 */
136144
INT gx_png_huffman_lit_bits_count[17];
137-
INT gx_png_huffman_dist_table[30];
145+
INT gx_png_huffman_dist_table[GX_PNG_HUFFMAN_DIST_TABLE_SIZE];
138146
INT *gx_png_huffman_dist_code_len; /* 32 */
139147
INT gx_png_huffman_dist_bits_count[17];
140148
GX_COLOR *gx_png_palette_table; /* 256 */

common/inc/gx_scroll_wheel.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
/* COMPONENT DEFINITION RELEASE */
2727
/* */
2828
/* gx_scroll_wheel.h PORTABLE C */
29-
/* 6.1.7 */
29+
/* 6.2.0 */
3030
/* AUTHOR */
3131
/* */
3232
/* Kenneth Maxwell, Microsoft Corporation */
@@ -50,6 +50,10 @@
5050
/* generic scroll wheel, */
5151
/* resulting in version 6.1.7 */
5252
/* */
53+
/* 10-31-2022 Kenneth Maxwell Modified comment(s), */
54+
/* changed prototype for */
55+
/* generic_scroll_wheel_scroll,*/
56+
/* resulting in version 6.2.0 */
5357
/**************************************************************************/
5458

5559
#ifndef GX_SCROLL_WHEEL_H
@@ -139,7 +143,7 @@ VOID _gx_generic_scroll_wheel_down_wrap(GX_GENERIC_SCROLL_WHEEL *wheel);
139143
VOID _gx_generic_scroll_wheel_draw(GX_GENERIC_SCROLL_WHEEL *wheel);
140144
UINT _gx_generic_scroll_wheel_event_process(GX_GENERIC_SCROLL_WHEEL *wheel, GX_EVENT *event_ptr);
141145
UINT _gx_generic_scroll_wheel_row_height_set(GX_GENERIC_SCROLL_WHEEL *wheel, GX_VALUE row_height);
142-
VOID _gx_generic_scroll_wheel_scroll(GX_GENERIC_SCROLL_WHEEL *wheel, GX_VALUE shift);
146+
INT _gx_generic_scroll_wheel_scroll(GX_GENERIC_SCROLL_WHEEL *wheel, GX_VALUE shift);
143147
UINT _gx_generic_scroll_wheel_total_rows_set(GX_GENERIC_SCROLL_WHEEL *wheel, INT count);
144148
VOID _gx_generic_scroll_wheel_up_wrap(GX_GENERIC_SCROLL_WHEEL *wheel);
145149
GX_BOOL _gx_generic_scroll_wheel_wrap_style_check(GX_GENERIC_SCROLL_WHEEL *wheel);

0 commit comments

Comments
 (0)