├── .cproject ├── .gitignore ├── .mxproject ├── .project ├── .settings └── language.settings.xml ├── Core ├── GUIX │ ├── common │ │ ├── inc │ │ │ ├── gx_animation.h │ │ │ ├── gx_api.h │ │ │ ├── gx_binres_loader.h │ │ │ ├── gx_button.h │ │ │ ├── gx_canvas.h │ │ │ ├── gx_circular_gauge.h │ │ │ ├── gx_context.h │ │ │ ├── gx_display.h │ │ │ ├── gx_drop_list.h │ │ │ ├── gx_icon.h │ │ │ ├── gx_image_reader.h │ │ │ ├── gx_line_chart.h │ │ │ ├── gx_menu.h │ │ │ ├── gx_multi_line_text_input.h │ │ │ ├── gx_multi_line_text_view.h │ │ │ ├── gx_numeric_pixelmap_prompt.h │ │ │ ├── gx_numeric_prompt.h │ │ │ ├── gx_pixelmap_prompt.h │ │ │ ├── gx_progress_bar.h │ │ │ ├── gx_prompt.h │ │ │ ├── gx_radial_progress_bar.h │ │ │ ├── gx_radial_slider.h │ │ │ ├── gx_screen_stack.h │ │ │ ├── gx_scroll_wheel.h │ │ │ ├── gx_scrollbar.h │ │ │ ├── gx_single_line_text_input.h │ │ │ ├── gx_slider.h │ │ │ ├── gx_sprite.h │ │ │ ├── gx_system.h │ │ │ ├── gx_system_rtos_bind.h │ │ │ ├── gx_text_input_cursor.h │ │ │ ├── gx_tree_view.h │ │ │ ├── gx_user_sample.h │ │ │ ├── gx_utility.h │ │ │ ├── gx_widget.h │ │ │ └── gx_window.h │ │ └── src │ │ │ ├── gx_accordion_menu_create.c │ │ │ ├── gx_accordion_menu_draw.c │ │ │ ├── gx_accordion_menu_event_process.c │ │ │ ├── gx_accordion_menu_position.c │ │ │ ├── gx_animation_canvas_define.c │ │ │ ├── gx_animation_complete.c │ │ │ ├── gx_animation_create.c │ │ │ ├── gx_animation_drag_disable.c │ │ │ ├── gx_animation_drag_enable.c │ │ │ ├── gx_animation_drag_event_process.c │ │ │ ├── gx_animation_drag_tracking.c │ │ │ ├── gx_animation_drag_tracking_start.c │ │ │ ├── gx_animation_landing_speed_set.c │ │ │ ├── gx_animation_slide_landing.c │ │ │ ├── gx_animation_slide_landing_start.c │ │ │ ├── gx_animation_start.c │ │ │ ├── gx_animation_stop.c │ │ │ ├── gx_animation_update.c │ │ │ ├── gx_binres_language_count_get.c │ │ │ ├── gx_binres_language_info_load.c │ │ │ ├── gx_binres_language_table_load.c │ │ │ ├── gx_binres_theme_load.c │ │ │ ├── gx_brush_default.c │ │ │ ├── gx_brush_define.c │ │ │ ├── gx_button_background_draw.c │ │ │ ├── gx_button_create.c │ │ │ ├── gx_button_deselect.c │ │ │ ├── gx_button_draw.c │ │ │ ├── gx_button_event_process.c │ │ │ ├── gx_button_select.c │ │ │ ├── gx_button_siblings_deselect.c │ │ │ ├── gx_canvas_alpha_set.c │ │ │ ├── gx_canvas_arc_draw.c │ │ │ ├── gx_canvas_block_move.c │ │ │ ├── gx_canvas_circle_draw.c │ │ │ ├── gx_canvas_composite_create.c │ │ │ ├── gx_canvas_create.c │ │ │ ├── gx_canvas_delete.c │ │ │ ├── gx_canvas_dirty_mark.c │ │ │ ├── gx_canvas_drawing_complete.c │ │ │ ├── gx_canvas_drawing_initiate.c │ │ │ ├── gx_canvas_ellipse_draw.c │ │ │ ├── gx_canvas_glyphs_draw.c │ │ │ ├── gx_canvas_hardware_layer_bind.c │ │ │ ├── gx_canvas_hide.c │ │ │ ├── gx_canvas_line_draw.c │ │ │ ├── gx_canvas_memory_define.c │ │ │ ├── gx_canvas_mouse_define.c │ │ │ ├── gx_canvas_mouse_hide.c │ │ │ ├── gx_canvas_mouse_show.c │ │ │ ├── gx_canvas_offset_set.c │ │ │ ├── gx_canvas_pie_draw.c │ │ │ ├── gx_canvas_pixel_draw.c │ │ │ ├── gx_canvas_pixelmap_blend.c │ │ │ ├── gx_canvas_pixelmap_draw.c │ │ │ ├── gx_canvas_pixelmap_get.c │ │ │ ├── gx_canvas_pixelmap_rotate.c │ │ │ ├── gx_canvas_pixelmap_tile.c │ │ │ ├── gx_canvas_polygon_draw.c │ │ │ ├── gx_canvas_rectangle_draw.c │ │ │ ├── gx_canvas_rotated_text_draw.c │ │ │ ├── gx_canvas_shift.c │ │ │ ├── gx_canvas_show.c │ │ │ ├── gx_canvas_text_draw.c │ │ │ ├── gx_checkbox_create.c │ │ │ ├── gx_checkbox_draw.c │ │ │ ├── gx_checkbox_event_process.c │ │ │ ├── gx_checkbox_pixelmap_set.c │ │ │ ├── gx_checkbox_select.c │ │ │ ├── gx_circular_gauge_angle_get.c │ │ │ ├── gx_circular_gauge_angle_increment_calculate.c │ │ │ ├── gx_circular_gauge_angle_set.c │ │ │ ├── gx_circular_gauge_animation_set.c │ │ │ ├── gx_circular_gauge_background_draw.c │ │ │ ├── gx_circular_gauge_create.c │ │ │ ├── gx_circular_gauge_draw.c │ │ │ ├── gx_circular_gauge_event_process.c │ │ │ ├── gx_circular_gauge_needle_dirty_mark.c │ │ │ ├── gx_circular_gauge_needle_rectangle_calculate.c │ │ │ ├── gx_circular_gauge_needle_rotate.c │ │ │ ├── gx_context_brush_default.c │ │ │ ├── gx_context_brush_define.c │ │ │ ├── gx_context_brush_get.c │ │ │ ├── gx_context_brush_pattern_set.c │ │ │ ├── gx_context_brush_set.c │ │ │ ├── gx_context_brush_style_set.c │ │ │ ├── gx_context_brush_width_set.c │ │ │ ├── gx_context_color_get.c │ │ │ ├── gx_context_fill_color_set.c │ │ │ ├── gx_context_font_get.c │ │ │ ├── gx_context_font_set.c │ │ │ ├── gx_context_line_color_set.c │ │ │ ├── gx_context_pixelmap_get.c │ │ │ ├── gx_context_pixelmap_set.c │ │ │ ├── gx_context_raw_brush_define.c │ │ │ ├── gx_context_raw_fill_color_set.c │ │ │ ├── gx_context_raw_line_color_set.c │ │ │ ├── gx_context_string_get.c │ │ │ ├── gx_display_active_language_set.c │ │ │ ├── gx_display_canvas_dirty.c │ │ │ ├── gx_display_color_set.c │ │ │ ├── gx_display_color_table_set.c │ │ │ ├── gx_display_create.c │ │ │ ├── gx_display_delete.c │ │ │ ├── gx_display_driver_1555xrgb_canvas_blend.c │ │ │ ├── gx_display_driver_1555xrgb_jpeg_draw.c │ │ │ ├── gx_display_driver_1555xrgb_native_color_get.c │ │ │ ├── gx_display_driver_1555xrgb_pixel_blend.c │ │ │ ├── gx_display_driver_1555xrgb_pixelmap_rotate.c │ │ │ ├── gx_display_driver_1555xrgb_png_draw.c │ │ │ ├── gx_display_driver_1555xrgb_setup.c │ │ │ ├── gx_display_driver_16bpp_block_move.c │ │ │ ├── gx_display_driver_16bpp_canvas_copy.c │ │ │ ├── gx_display_driver_16bpp_horizontal_line_draw.c │ │ │ ├── gx_display_driver_16bpp_horizontal_pattern_line_draw.c │ │ │ ├── gx_display_driver_16bpp_mouse_capture.c │ │ │ ├── gx_display_driver_16bpp_mouse_restore.c │ │ │ ├── gx_display_driver_16bpp_pixel_write.c │ │ │ ├── gx_display_driver_16bpp_pixelmap_blend.c │ │ │ ├── gx_display_driver_16bpp_pixelmap_draw.c │ │ │ ├── gx_display_driver_16bpp_pixelmap_rotate.c │ │ │ ├── gx_display_driver_16bpp_row_pitch_get.c │ │ │ ├── gx_display_driver_16bpp_simple_line_draw.c │ │ │ ├── gx_display_driver_16bpp_vertical_line_draw.c │ │ │ ├── gx_display_driver_16bpp_vertical_pattern_line_draw.c │ │ │ ├── gx_display_driver_1bpp_block_move.c │ │ │ ├── gx_display_driver_1bpp_canvas_copy.c │ │ │ ├── gx_display_driver_1bpp_glyph_1bpp_draw.c │ │ │ ├── gx_display_driver_1bpp_horizontal_line_draw.c │ │ │ ├── gx_display_driver_1bpp_horizontal_pattern_line_draw.c │ │ │ ├── gx_display_driver_1bpp_horizontal_pixelmap_line_draw.c │ │ │ ├── gx_display_driver_1bpp_mouse_capture.c │ │ │ ├── gx_display_driver_1bpp_mouse_restore.c │ │ │ ├── gx_display_driver_1bpp_native_color_get.c │ │ │ ├── gx_display_driver_1bpp_pixel_write.c │ │ │ ├── gx_display_driver_1bpp_pixelmap_draw.c │ │ │ ├── gx_display_driver_1bpp_pixelmap_rotate.c │ │ │ ├── gx_display_driver_1bpp_row_pitch_get.c │ │ │ ├── gx_display_driver_1bpp_simple_line_draw.c │ │ │ ├── gx_display_driver_1bpp_vertical_line_draw.c │ │ │ ├── gx_display_driver_1bpp_vertical_pattern_line_draw.c │ │ │ ├── gx_display_driver_24xrgb_canvas_blend.c │ │ │ ├── gx_display_driver_24xrgb_jpeg_draw.c │ │ │ ├── gx_display_driver_24xrgb_mouse_capture.c │ │ │ ├── gx_display_driver_24xrgb_mouse_restore.c │ │ │ ├── gx_display_driver_24xrgb_native_color_get.c │ │ │ ├── gx_display_driver_24xrgb_pixel_blend.c │ │ │ ├── gx_display_driver_24xrgb_pixelmap_blend.c │ │ │ ├── gx_display_driver_24xrgb_png_draw.c │ │ │ ├── gx_display_driver_24xrgb_setup.c │ │ │ ├── gx_display_driver_32argb_native_color_get.c │ │ │ ├── gx_display_driver_32argb_pixel_blend.c │ │ │ ├── gx_display_driver_32argb_pixelmap_blend.c │ │ │ ├── gx_display_driver_32argb_pixelmap_draw.c │ │ │ ├── gx_display_driver_32argb_setup.c │ │ │ ├── gx_display_driver_32bpp_block_move.c │ │ │ ├── gx_display_driver_32bpp_canvas_copy.c │ │ │ ├── gx_display_driver_32bpp_glyph_1bit_draw.c │ │ │ ├── gx_display_driver_32bpp_horizontal_line_draw.c │ │ │ ├── gx_display_driver_32bpp_horizontal_pattern_line_draw.c │ │ │ ├── gx_display_driver_32bpp_horizontal_pixelmap_line_draw.c │ │ │ ├── gx_display_driver_32bpp_pixel_write.c │ │ │ ├── gx_display_driver_32bpp_pixelmap_draw.c │ │ │ ├── gx_display_driver_32bpp_pixelmap_rotate.c │ │ │ ├── gx_display_driver_32bpp_row_pitch_get.c │ │ │ ├── gx_display_driver_32bpp_simple_line_draw.c │ │ │ ├── gx_display_driver_32bpp_vertical_line_draw.c │ │ │ ├── gx_display_driver_32bpp_vertical_pattern_line_draw.c │ │ │ ├── gx_display_driver_332rgb_native_color_get.c │ │ │ ├── gx_display_driver_332rgb_pixel_blend.c │ │ │ ├── gx_display_driver_332rgb_pixelmap_draw.c │ │ │ ├── gx_display_driver_332rgb_pixelmap_rotate.c │ │ │ ├── gx_display_driver_332rgb_setup.c │ │ │ ├── gx_display_driver_4444argb_canvas_blend.c │ │ │ ├── gx_display_driver_4444argb_horizontal_pixelmap_line_draw.c │ │ │ ├── gx_display_driver_4444argb_native_color_get.c │ │ │ ├── gx_display_driver_4444argb_pixel_blend.c │ │ │ ├── gx_display_driver_4444argb_pixelmap_draw.c │ │ │ ├── gx_display_driver_4444argb_pixelmap_rotate.c │ │ │ ├── gx_display_driver_4444argb_setup.c │ │ │ ├── gx_display_driver_4bpp_block_move.c │ │ │ ├── gx_display_driver_4bpp_canvas_copy.c │ │ │ ├── gx_display_driver_4bpp_glyph_1bit_draw.c │ │ │ ├── gx_display_driver_4bpp_glyph_4bit_draw.c │ │ │ ├── gx_display_driver_4bpp_grayscale_setup.c │ │ │ ├── gx_display_driver_4bpp_horizontal_line_draw.c │ │ │ ├── gx_display_driver_4bpp_horizontal_pattern_line_draw.c │ │ │ ├── gx_display_driver_4bpp_horizontal_pixelmap_line_draw.c │ │ │ ├── gx_display_driver_4bpp_mouse_capture.c │ │ │ ├── gx_display_driver_4bpp_mouse_restore.c │ │ │ ├── gx_display_driver_4bpp_native_color_get.c │ │ │ ├── gx_display_driver_4bpp_pixel_write.c │ │ │ ├── gx_display_driver_4bpp_pixelmap_draw.c │ │ │ ├── gx_display_driver_4bpp_pixelmap_rotate.c │ │ │ ├── gx_display_driver_4bpp_row_pitch_get.c │ │ │ ├── gx_display_driver_4bpp_simple_line_draw.c │ │ │ ├── gx_display_driver_4bpp_vertical_line_draw.c │ │ │ ├── gx_display_driver_4bpp_vertical_pattern_line_draw.c │ │ │ ├── gx_display_driver_565rgb_canvas_blend.c │ │ │ ├── gx_display_driver_565rgb_glyph_1bit_draw.c │ │ │ ├── gx_display_driver_565rgb_horizontal_pixelmap_line_draw.c │ │ │ ├── gx_display_driver_565rgb_jpeg_draw.c │ │ │ ├── gx_display_driver_565rgb_native_color_get.c │ │ │ ├── gx_display_driver_565rgb_pixel_blend.c │ │ │ ├── gx_display_driver_565rgb_png_draw.c │ │ │ ├── gx_display_driver_565rgb_setup.c │ │ │ ├── gx_display_driver_8bit_palette_native_color_get.c │ │ │ ├── gx_display_driver_8bit_palette_setup.c │ │ │ ├── gx_display_driver_8bpp_block_move.c │ │ │ ├── gx_display_driver_8bpp_canvas_copy.c │ │ │ ├── gx_display_driver_8bpp_glyph_1bit_draw.c │ │ │ ├── gx_display_driver_8bpp_glyph_3bit_draw.c │ │ │ ├── gx_display_driver_8bpp_glyph_4bit_draw.c │ │ │ ├── gx_display_driver_8bpp_horizontal_line_draw.c │ │ │ ├── gx_display_driver_8bpp_horizontal_pattern_line_draw.c │ │ │ ├── gx_display_driver_8bpp_horizontal_pixelmap_line_draw.c │ │ │ ├── gx_display_driver_8bpp_mouse_capture.c │ │ │ ├── gx_display_driver_8bpp_mouse_restore.c │ │ │ ├── gx_display_driver_8bpp_pixel_write.c │ │ │ ├── gx_display_driver_8bpp_pixelmap_blend.c │ │ │ ├── gx_display_driver_8bpp_pixelmap_draw.c │ │ │ ├── gx_display_driver_8bpp_pixelmap_rotate.c │ │ │ ├── gx_display_driver_8bpp_row_pitch_get.c │ │ │ ├── gx_display_driver_8bpp_simple_line_draw.c │ │ │ ├── gx_display_driver_8bpp_vertical_line_draw.c │ │ │ ├── gx_display_driver_8bpp_vertical_pattern_line_draw.c │ │ │ ├── gx_display_driver_arc_clipping_get.c │ │ │ ├── gx_display_driver_generic_aliased_arc_draw.c │ │ │ ├── gx_display_driver_generic_aliased_circle_draw.c │ │ │ ├── gx_display_driver_generic_aliased_ellipse_draw.c │ │ │ ├── gx_display_driver_generic_aliased_filled_circle_draw.c │ │ │ ├── gx_display_driver_generic_aliased_fixed_point_line_draw.c │ │ │ ├── gx_display_driver_generic_aliased_line_draw.c │ │ │ ├── gx_display_driver_generic_aliased_wide_arc_draw.c │ │ │ ├── gx_display_driver_generic_aliased_wide_circle_draw.c │ │ │ ├── gx_display_driver_generic_aliased_wide_ellipse_draw.c │ │ │ ├── gx_display_driver_generic_aliased_wide_line_draw.c │ │ │ ├── gx_display_driver_generic_alphamap_draw.c │ │ │ ├── gx_display_driver_generic_arc_draw.c │ │ │ ├── gx_display_driver_generic_arc_fill.c │ │ │ ├── gx_display_driver_generic_circle_draw.c │ │ │ ├── gx_display_driver_generic_circle_fill.c │ │ │ ├── gx_display_driver_generic_drawing_complete.c │ │ │ ├── gx_display_driver_generic_drawing_initiate.c │ │ │ ├── gx_display_driver_generic_ellipse_draw.c │ │ │ ├── gx_display_driver_generic_ellipse_fill.c │ │ │ ├── gx_display_driver_generic_filled_circle_draw.c │ │ │ ├── gx_display_driver_generic_glyph_4bpp_draw.c │ │ │ ├── gx_display_driver_generic_glyph_8bpp_draw.c │ │ │ ├── gx_display_driver_generic_mouse_cursor_define.c │ │ │ ├── gx_display_driver_generic_mouse_draw.c │ │ │ ├── gx_display_driver_generic_mouse_enable.c │ │ │ ├── gx_display_driver_generic_mouse_position_set.c │ │ │ ├── gx_display_driver_generic_pie_fill.c │ │ │ ├── gx_display_driver_generic_polygon_draw.c │ │ │ ├── gx_display_driver_generic_polygon_fill.c │ │ │ ├── gx_display_driver_generic_simple_pie_fill.c │ │ │ ├── gx_display_driver_generic_simple_wide_line_draw.c │ │ │ ├── gx_display_driver_generic_wide_arc_draw.c │ │ │ ├── gx_display_driver_generic_wide_circle_draw.c │ │ │ ├── gx_display_driver_generic_wide_ellipse_draw.c │ │ │ ├── gx_display_driver_generic_wide_line_fill.c │ │ │ ├── gx_display_driver_generic_wide_line_points_calculate.c │ │ │ ├── gx_display_driver_horizontal_line_alpha_draw.c │ │ │ ├── gx_display_driver_monochrome_setup.c │ │ │ ├── gx_display_driver_simple_line_alpha_draw.c │ │ │ ├── gx_display_driver_vertical_line_alpha_draw.c │ │ │ ├── gx_display_font_table_set.c │ │ │ ├── gx_display_language_table_get.c │ │ │ ├── gx_display_language_table_set.c │ │ │ ├── gx_display_pixelmap_table_set.c │ │ │ ├── gx_display_string_get.c │ │ │ ├── gx_display_string_table_get.c │ │ │ ├── gx_display_theme_install.c │ │ │ ├── gx_drop_list_background_draw.c │ │ │ ├── gx_drop_list_close.c │ │ │ ├── gx_drop_list_create.c │ │ │ ├── gx_drop_list_draw.c │ │ │ ├── gx_drop_list_event_process.c │ │ │ ├── gx_drop_list_open.c │ │ │ ├── gx_drop_list_pixelmap_set.c │ │ │ ├── gx_drop_list_popup_get.c │ │ │ ├── gx_horizontal_list_children_position.c │ │ │ ├── gx_horizontal_list_create.c │ │ │ ├── gx_horizontal_list_event_process.c │ │ │ ├── gx_horizontal_list_left_wrap.c │ │ │ ├── gx_horizontal_list_page_index_set.c │ │ │ ├── gx_horizontal_list_right_wrap.c │ │ │ ├── gx_horizontal_list_scroll.c │ │ │ ├── gx_horizontal_list_scroll_info_get.c │ │ │ ├── gx_horizontal_list_selected_index_get.c │ │ │ ├── gx_horizontal_list_selected_set.c │ │ │ ├── gx_horizontal_list_selected_visible.c │ │ │ ├── gx_horizontal_list_selected_widget_get.c │ │ │ ├── gx_horizontal_list_slide_back_check.c │ │ │ ├── gx_horizontal_list_total_columns_set.c │ │ │ ├── gx_horizontal_scrollbar_create.c │ │ │ ├── gx_icon_background_draw.c │ │ │ ├── gx_icon_button_create.c │ │ │ ├── gx_icon_button_draw.c │ │ │ ├── gx_icon_button_pixelmap_set.c │ │ │ ├── gx_icon_create.c │ │ │ ├── gx_icon_draw.c │ │ │ ├── gx_icon_event_process.c │ │ │ ├── gx_icon_pixelmap_set.c │ │ │ ├── gx_icon_pixelmap_update.c │ │ │ ├── gx_image_reader_colorspace_convert.c │ │ │ ├── gx_image_reader_create.c │ │ │ ├── gx_image_reader_image_decode.c │ │ │ ├── gx_image_reader_jpeg_decode.c │ │ │ ├── gx_image_reader_nearest_palette_color_get.c │ │ │ ├── gx_image_reader_palette_set.c │ │ │ ├── gx_image_reader_pixel_read_callback_set.c │ │ │ ├── gx_image_reader_pixel_write_callback_set.c │ │ │ ├── gx_image_reader_png_decode.c │ │ │ ├── gx_image_reader_rle_encode.c │ │ │ ├── gx_image_reader_start.c │ │ │ ├── gx_line_chart_axis_draw.c │ │ │ ├── gx_line_chart_create.c │ │ │ ├── gx_line_chart_data_draw.c │ │ │ ├── gx_line_chart_draw.c │ │ │ ├── gx_line_chart_update.c │ │ │ ├── gx_line_chart_y_scale_calculate.c │ │ │ ├── gx_menu_create.c │ │ │ ├── gx_menu_draw.c │ │ │ ├── gx_menu_insert.c │ │ │ ├── gx_menu_position.c │ │ │ ├── gx_menu_remove.c │ │ │ ├── gx_menu_text_draw.c │ │ │ ├── gx_menu_text_offset_set.c │ │ │ ├── gx_monochrome_driver_disabled_button_line_draw.c │ │ │ ├── gx_multi_line_text_button_create.c │ │ │ ├── gx_multi_line_text_button_draw.c │ │ │ ├── gx_multi_line_text_button_event_process.c │ │ │ ├── gx_multi_line_text_button_line_pointers_set.c │ │ │ ├── gx_multi_line_text_button_text_draw.c │ │ │ ├── gx_multi_line_text_button_text_id_set.c │ │ │ ├── gx_multi_line_text_button_text_set.c │ │ │ ├── gx_multi_line_text_input_backspace.c │ │ │ ├── gx_multi_line_text_input_buffer_clear.c │ │ │ ├── gx_multi_line_text_input_buffer_get.c │ │ │ ├── gx_multi_line_text_input_char_insert.c │ │ │ ├── gx_multi_line_text_input_char_remove.c │ │ │ ├── gx_multi_line_text_input_copy.c │ │ │ ├── gx_multi_line_text_input_create.c │ │ │ ├── gx_multi_line_text_input_cursor_pos_calculate.c │ │ │ ├── gx_multi_line_text_input_cursor_pos_get.c │ │ │ ├── gx_multi_line_text_input_cursor_pos_update.c │ │ │ ├── gx_multi_line_text_input_cursor_visible.c │ │ │ ├── gx_multi_line_text_input_cut.c │ │ │ ├── gx_multi_line_text_input_delete.c │ │ │ ├── gx_multi_line_text_input_down_arrow.c │ │ │ ├── gx_multi_line_text_input_draw.c │ │ │ ├── gx_multi_line_text_input_end.c │ │ │ ├── gx_multi_line_text_input_event_process.c │ │ │ ├── gx_multi_line_text_input_fill_color_set.c │ │ │ ├── gx_multi_line_text_input_highlight_rectangle_get.c │ │ │ ├── gx_multi_line_text_input_home.c │ │ │ ├── gx_multi_line_text_input_keydown_process.c │ │ │ ├── gx_multi_line_text_input_left_arrow.c │ │ │ ├── gx_multi_line_text_input_mark_down.c │ │ │ ├── gx_multi_line_text_input_mark_end.c │ │ │ ├── gx_multi_line_text_input_mark_home.c │ │ │ ├── gx_multi_line_text_input_mark_next.c │ │ │ ├── gx_multi_line_text_input_mark_previous.c │ │ │ ├── gx_multi_line_text_input_mark_up.c │ │ │ ├── gx_multi_line_text_input_paste.c │ │ │ ├── gx_multi_line_text_input_right_arrow.c │ │ │ ├── gx_multi_line_text_input_style_add.c │ │ │ ├── gx_multi_line_text_input_style_remove.c │ │ │ ├── gx_multi_line_text_input_style_set.c │ │ │ ├── gx_multi_line_text_input_text_color_set.c │ │ │ ├── gx_multi_line_text_input_text_rectangle_get.c │ │ │ ├── gx_multi_line_text_input_text_select.c │ │ │ ├── gx_multi_line_text_input_text_set.c │ │ │ ├── gx_multi_line_text_input_up_arrow.c │ │ │ ├── gx_multi_line_text_view_create.c │ │ │ ├── gx_multi_line_text_view_display_info_get.c │ │ │ ├── gx_multi_line_text_view_draw.c │ │ │ ├── gx_multi_line_text_view_event_process.c │ │ │ ├── gx_multi_line_text_view_font_set.c │ │ │ ├── gx_multi_line_text_view_line_cache_update.c │ │ │ ├── gx_multi_line_text_view_line_space_set.c │ │ │ ├── gx_multi_line_text_view_scroll.c │ │ │ ├── gx_multi_line_text_view_scroll_info_get.c │ │ │ ├── gx_multi_line_text_view_string_total_rows_compute.c │ │ │ ├── gx_multi_line_text_view_text_color_set.c │ │ │ ├── gx_multi_line_text_view_text_draw.c │ │ │ ├── gx_multi_line_text_view_text_id_set.c │ │ │ ├── gx_multi_line_text_view_text_set.c │ │ │ ├── gx_multi_line_text_view_visible_rows_compute.c │ │ │ ├── gx_multi_line_text_view_whitespace_set.c │ │ │ ├── gx_numeric_pixelmap_prompt_create.c │ │ │ ├── gx_numeric_pixelmap_prompt_format.c │ │ │ ├── gx_numeric_pixelmap_prompt_format_function_set.c │ │ │ ├── gx_numeric_pixelmap_prompt_value_set.c │ │ │ ├── gx_numeric_prompt_create.c │ │ │ ├── gx_numeric_prompt_format.c │ │ │ ├── gx_numeric_prompt_format_function_set.c │ │ │ ├── gx_numeric_prompt_value_set.c │ │ │ ├── gx_numeric_scroll_wheel_create.c │ │ │ ├── gx_numeric_scroll_wheel_range_set.c │ │ │ ├── gx_numeric_scroll_wheel_text_get.c │ │ │ ├── gx_pixelmap_button_create.c │ │ │ ├── gx_pixelmap_button_draw.c │ │ │ ├── gx_pixelmap_button_event_process.c │ │ │ ├── gx_pixelmap_button_pixelmap_set.c │ │ │ ├── gx_pixelmap_button_transparent_detect.c │ │ │ ├── gx_pixelmap_prompt_background_draw.c │ │ │ ├── gx_pixelmap_prompt_create.c │ │ │ ├── gx_pixelmap_prompt_draw.c │ │ │ ├── gx_pixelmap_prompt_pixelmap_set.c │ │ │ ├── gx_pixelmap_slider_create.c │ │ │ ├── gx_pixelmap_slider_draw.c │ │ │ ├── gx_pixelmap_slider_event_process.c │ │ │ ├── gx_pixelmap_slider_pixelmap_set.c │ │ │ ├── gx_pixelmap_slider_pixelmap_update.c │ │ │ ├── gx_popup_list_event_process.c │ │ │ ├── gx_progress_bar_background_draw.c │ │ │ ├── gx_progress_bar_create.c │ │ │ ├── gx_progress_bar_draw.c │ │ │ ├── gx_progress_bar_event_process.c │ │ │ ├── gx_progress_bar_font_set.c │ │ │ ├── gx_progress_bar_info_set.c │ │ │ ├── gx_progress_bar_pixelmap_set.c │ │ │ ├── gx_progress_bar_range_set.c │ │ │ ├── gx_progress_bar_text_color_set.c │ │ │ ├── gx_progress_bar_text_draw.c │ │ │ ├── gx_progress_bar_value_set.c │ │ │ ├── gx_prompt_create.c │ │ │ ├── gx_prompt_draw.c │ │ │ ├── gx_prompt_font_set.c │ │ │ ├── gx_prompt_text_color_set.c │ │ │ ├── gx_prompt_text_draw.c │ │ │ ├── gx_prompt_text_get.c │ │ │ ├── gx_prompt_text_id_set.c │ │ │ ├── gx_prompt_text_set.c │ │ │ ├── gx_radial_progress_bar_anchor_set.c │ │ │ ├── gx_radial_progress_bar_background_draw.c │ │ │ ├── gx_radial_progress_bar_create.c │ │ │ ├── gx_radial_progress_bar_draw.c │ │ │ ├── gx_radial_progress_bar_event_process.c │ │ │ ├── gx_radial_progress_bar_font_set.c │ │ │ ├── gx_radial_progress_bar_info_set.c │ │ │ ├── gx_radial_progress_bar_resize.c │ │ │ ├── gx_radial_progress_bar_size_update.c │ │ │ ├── gx_radial_progress_bar_text_color_set.c │ │ │ ├── gx_radial_progress_bar_text_draw.c │ │ │ ├── gx_radial_progress_bar_value_calculate.c │ │ │ ├── gx_radial_progress_bar_value_set.c │ │ │ ├── gx_radial_slider_anchor_angle_calculate.c │ │ │ ├── gx_radial_slider_anchor_angles_set.c │ │ │ ├── gx_radial_slider_angle_calculate.c │ │ │ ├── gx_radial_slider_angle_set.c │ │ │ ├── gx_radial_slider_animation_set.c │ │ │ ├── gx_radial_slider_animation_start.c │ │ │ ├── gx_radial_slider_animation_update.c │ │ │ ├── gx_radial_slider_create.c │ │ │ ├── gx_radial_slider_draw.c │ │ │ ├── gx_radial_slider_event_process.c │ │ │ ├── gx_radial_slider_info_get.c │ │ │ ├── gx_radial_slider_info_set.c │ │ │ ├── gx_radial_slider_needle_rectangle_calculate.c │ │ │ ├── gx_radial_slider_pixelmap_set.c │ │ │ ├── gx_radio_button_create.c │ │ │ ├── gx_radio_button_draw.c │ │ │ ├── gx_radio_button_pixelmap_set.c │ │ │ ├── gx_screen_stack_create.c │ │ │ ├── gx_screen_stack_pop.c │ │ │ ├── gx_screen_stack_push.c │ │ │ ├── gx_screen_stack_reset.c │ │ │ ├── gx_scroll_thumb_create.c │ │ │ ├── gx_scroll_thumb_draw.c │ │ │ ├── gx_scroll_thumb_event_process.c │ │ │ ├── gx_scroll_thumb_shift_limit.c │ │ │ ├── gx_scroll_wheel_create.c │ │ │ ├── gx_scroll_wheel_event_process.c │ │ │ ├── gx_scroll_wheel_gradient_alpha_set.c │ │ │ ├── gx_scroll_wheel_gradient_create.c │ │ │ ├── gx_scroll_wheel_row_height_set.c │ │ │ ├── gx_scroll_wheel_scroll.c │ │ │ ├── gx_scroll_wheel_selected_background_set.c │ │ │ ├── gx_scroll_wheel_selected_get.c │ │ │ ├── gx_scroll_wheel_selected_row_calculate.c │ │ │ ├── gx_scroll_wheel_selected_set.c │ │ │ ├── gx_scroll_wheel_speed_set.c │ │ │ ├── gx_scroll_wheel_total_rows_set.c │ │ │ ├── gx_scrollbar_draw.c │ │ │ ├── gx_scrollbar_event_process.c │ │ │ ├── gx_scrollbar_limit_check.c │ │ │ ├── gx_scrollbar_reset.c │ │ │ ├── gx_scrollbar_size_update.c │ │ │ ├── gx_scrollbar_thumb_position_calculate.c │ │ │ ├── gx_scrollbar_value_calculate.c │ │ │ ├── gx_scrollbar_value_set.c │ │ │ ├── gx_single_line_text_input_backspace.c │ │ │ ├── gx_single_line_text_input_buffer_clear.c │ │ │ ├── gx_single_line_text_input_buffer_get.c │ │ │ ├── gx_single_line_text_input_character_delete.c │ │ │ ├── gx_single_line_text_input_character_insert.c │ │ │ ├── gx_single_line_text_input_copy.c │ │ │ ├── gx_single_line_text_input_create.c │ │ │ ├── gx_single_line_text_input_cut.c │ │ │ ├── gx_single_line_text_input_draw.c │ │ │ ├── gx_single_line_text_input_draw_position_get.c │ │ │ ├── gx_single_line_text_input_end.c │ │ │ ├── gx_single_line_text_input_event_process.c │ │ │ ├── gx_single_line_text_input_fill_color_set.c │ │ │ ├── gx_single_line_text_input_home.c │ │ │ ├── gx_single_line_text_input_keydown_process.c │ │ │ ├── gx_single_line_text_input_left_arrow.c │ │ │ ├── gx_single_line_text_input_mark_end.c │ │ │ ├── gx_single_line_text_input_mark_home.c │ │ │ ├── gx_single_line_text_input_mark_next.c │ │ │ ├── gx_single_line_text_input_mark_previous.c │ │ │ ├── gx_single_line_text_input_paste.c │ │ │ ├── gx_single_line_text_input_position_get.c │ │ │ ├── gx_single_line_text_input_position_update.c │ │ │ ├── gx_single_line_text_input_right_arrow.c │ │ │ ├── gx_single_line_text_input_style_add.c │ │ │ ├── gx_single_line_text_input_style_remove.c │ │ │ ├── gx_single_line_text_input_style_set.c │ │ │ ├── gx_single_line_text_input_text_color_set.c │ │ │ ├── gx_single_line_text_input_text_rectangle_get.c │ │ │ ├── gx_single_line_text_input_text_select.c │ │ │ ├── gx_single_line_text_input_text_set.c │ │ │ ├── gx_slider_create.c │ │ │ ├── gx_slider_draw.c │ │ │ ├── gx_slider_event_process.c │ │ │ ├── gx_slider_info_set.c │ │ │ ├── gx_slider_needle_draw.c │ │ │ ├── gx_slider_needle_position_get.c │ │ │ ├── gx_slider_tickmarks_draw.c │ │ │ ├── gx_slider_travel_get.c │ │ │ ├── gx_slider_value_calculate.c │ │ │ ├── gx_slider_value_set.c │ │ │ ├── gx_sprite_create.c │ │ │ ├── gx_sprite_current_frame_set.c │ │ │ ├── gx_sprite_draw.c │ │ │ ├── gx_sprite_event_process.c │ │ │ ├── gx_sprite_frame_list_set.c │ │ │ ├── gx_sprite_start.c │ │ │ ├── gx_sprite_stop.c │ │ │ ├── gx_sprite_update.c │ │ │ ├── gx_string_scroll_wheel_create.c │ │ │ ├── gx_string_scroll_wheel_string_id_list_set.c │ │ │ ├── gx_string_scroll_wheel_string_list_set.c │ │ │ ├── gx_string_scroll_wheel_text_get.c │ │ │ ├── gx_system_active_language_set.c │ │ │ ├── gx_system_all_canvas_dirty.c │ │ │ ├── gx_system_all_views_free.c │ │ │ ├── gx_system_animation_free.c │ │ │ ├── gx_system_animation_get.c │ │ │ ├── gx_system_bidi_text_disable.c │ │ │ ├── gx_system_bidi_text_enable.c │ │ │ ├── gx_system_canvas_refresh.c │ │ │ ├── gx_system_clipboard_get.c │ │ │ ├── gx_system_clipboard_put.c │ │ │ ├── gx_system_dirty_list_remove.c │ │ │ ├── gx_system_dirty_list_trim.c │ │ │ ├── gx_system_dirty_mark.c │ │ │ ├── gx_system_dirty_partial_add.c │ │ │ ├── gx_system_draw_context_get.c │ │ │ ├── gx_system_error_process.c │ │ │ ├── gx_system_event_dispatch.c │ │ │ ├── gx_system_event_fold.c │ │ │ ├── gx_system_event_remove.c │ │ │ ├── gx_system_event_send.c │ │ │ ├── gx_system_focus_claim.c │ │ │ ├── gx_system_font_4bpp.c │ │ │ ├── gx_system_font_8bpp.c │ │ │ ├── gx_system_font_mono.c │ │ │ ├── gx_system_free_view_get.c │ │ │ ├── gx_system_initialize.c │ │ │ ├── gx_system_input_capture.c │ │ │ ├── gx_system_input_release.c │ │ │ ├── gx_system_language_table_get.c │ │ │ ├── gx_system_language_table_set.c │ │ │ ├── gx_system_lock.c │ │ │ ├── gx_system_memory_allocator_set.c │ │ │ ├── gx_system_pen_configure.c │ │ │ ├── gx_system_pen_flick_test.c │ │ │ ├── gx_system_pen_speed_init.c │ │ │ ├── gx_system_pen_speed_update.c │ │ │ ├── gx_system_private_string.c │ │ │ ├── gx_system_root_view_add.c │ │ │ ├── gx_system_rtos_bind.c │ │ │ ├── gx_system_screen_stack_create.c │ │ │ ├── gx_system_screen_stack_get.c │ │ │ ├── gx_system_screen_stack_pop.c │ │ │ ├── gx_system_screen_stack_push.c │ │ │ ├── gx_system_screen_stack_reset.c │ │ │ ├── gx_system_scroll_appearance_get.c │ │ │ ├── gx_system_scroll_appearance_set.c │ │ │ ├── gx_system_start.c │ │ │ ├── gx_system_string_get.c │ │ │ ├── gx_system_string_table_get.c │ │ │ ├── gx_system_string_width_get.c │ │ │ ├── gx_system_text_render_style_set.c │ │ │ ├── gx_system_thread_entry.c │ │ │ ├── gx_system_timer_expiration.c │ │ │ ├── gx_system_timer_start.c │ │ │ ├── gx_system_timer_stop.c │ │ │ ├── gx_system_timer_update.c │ │ │ ├── gx_system_top_root_find.c │ │ │ ├── gx_system_top_widget_find.c │ │ │ ├── gx_system_unlock.c │ │ │ ├── gx_system_version_string_get.c │ │ │ ├── gx_system_view_add.c │ │ │ ├── gx_system_view_fold.c │ │ │ ├── gx_system_view_split.c │ │ │ ├── gx_system_views_free.c │ │ │ ├── gx_system_views_update.c │ │ │ ├── gx_system_widget_find.c │ │ │ ├── gx_text_button_create.c │ │ │ ├── gx_text_button_draw.c │ │ │ ├── gx_text_button_font_set.c │ │ │ ├── gx_text_button_text_color_set.c │ │ │ ├── gx_text_button_text_draw.c │ │ │ ├── gx_text_button_text_get.c │ │ │ ├── gx_text_button_text_id_set.c │ │ │ ├── gx_text_button_text_set.c │ │ │ ├── gx_text_input_cursor_blink_interval_set.c │ │ │ ├── gx_text_input_cursor_dirty_rectangle_get.c │ │ │ ├── gx_text_input_cursor_draw.c │ │ │ ├── gx_text_input_cursor_height_set.c │ │ │ ├── gx_text_input_cursor_width_set.c │ │ │ ├── gx_text_scroll_wheel_callback_set.c │ │ │ ├── gx_text_scroll_wheel_create.c │ │ │ ├── gx_text_scroll_wheel_draw.c │ │ │ ├── gx_text_scroll_wheel_font_set.c │ │ │ ├── gx_text_scroll_wheel_text_color_set.c │ │ │ ├── gx_touch_driver_generic_resistive.c │ │ │ ├── gx_tree_view_create.c │ │ │ ├── gx_tree_view_draw.c │ │ │ ├── gx_tree_view_event_process.c │ │ │ ├── gx_tree_view_indentation_set.c │ │ │ ├── gx_tree_view_position.c │ │ │ ├── gx_tree_view_root_line_color_set.c │ │ │ ├── gx_tree_view_root_pixelmap_set.c │ │ │ ├── gx_tree_view_scroll.c │ │ │ ├── gx_tree_view_scroll_info_get.c │ │ │ ├── gx_tree_view_selected_get.c │ │ │ ├── gx_tree_view_selected_set.c │ │ │ ├── gx_utility_1555xrgb_pixelmap_resize.c │ │ │ ├── gx_utility_1555xrgb_pixelmap_rotate.c │ │ │ ├── gx_utility_16bpp_pixelmap_resize.c │ │ │ ├── gx_utility_1bpp_pixelmap_resize.c │ │ │ ├── gx_utility_1bpp_pixelmap_rotate.c │ │ │ ├── gx_utility_32argb_pixelmap_resize.c │ │ │ ├── gx_utility_32argb_pixelmap_rotate.c │ │ │ ├── gx_utility_332rgb_pixelmap_rotate.c │ │ │ ├── gx_utility_4444argb_pixelmap_resize.c │ │ │ ├── gx_utility_4444argb_pixelmap_rotate.c │ │ │ ├── gx_utility_4bpp_pixelmap_resize.c │ │ │ ├── gx_utility_4bpp_pixelmap_rotate.c │ │ │ ├── gx_utility_565rgb_pixelmap_rotate.c │ │ │ ├── gx_utility_8bpp_pixelmap_resize.c │ │ │ ├── gx_utility_8bpp_pixelmap_rotate.c │ │ │ ├── gx_utility_alphamap_create.c │ │ │ ├── gx_utility_bidi_bracket_pair_get.c │ │ │ ├── gx_utility_bidi_character_type_get.c │ │ │ ├── gx_utility_bidi_mirroring_get.c │ │ │ ├── gx_utility_bidi_paragraph_reorder.c │ │ │ ├── gx_utility_canvas_to_bmp.c │ │ │ ├── gx_utility_circle_point_get.c │ │ │ ├── gx_utility_easing_function_calculate.c │ │ │ ├── gx_utility_gradient_create.c │ │ │ ├── gx_utility_gradient_delete.c │ │ │ ├── gx_utility_ltoa.c │ │ │ ├── gx_utility_math_acos.c │ │ │ ├── gx_utility_math_asin.c │ │ │ ├── gx_utility_math_cos.c │ │ │ ├── gx_utility_math_sin.c │ │ │ ├── gx_utility_math_sqrt.c │ │ │ ├── gx_utility_pixelmap_resize.c │ │ │ ├── gx_utility_pixelmap_rotate.c │ │ │ ├── gx_utility_pixelmap_simple_rotate.c │ │ │ ├── gx_utility_rectangle_center.c │ │ │ ├── gx_utility_rectangle_center_find.c │ │ │ ├── gx_utility_rectangle_combine.c │ │ │ ├── gx_utility_rectangle_compare.c │ │ │ ├── gx_utility_rectangle_define.c │ │ │ ├── gx_utility_rectangle_inside_detect.c │ │ │ ├── gx_utility_rectangle_overlap_detect.c │ │ │ ├── gx_utility_rectangle_point_detect.c │ │ │ ├── gx_utility_rectangle_resize.c │ │ │ ├── gx_utility_rectangle_shift.c │ │ │ ├── gx_utility_string_length_check.c │ │ │ ├── gx_utility_string_to_alphamap.c │ │ │ ├── gx_utility_thai_glyph_shaping.c │ │ │ ├── gx_utility_unicode_to_utf8.c │ │ │ ├── gx_utility_utf8_string_backward_character_length_get.c │ │ │ ├── gx_utility_utf8_string_character_get.c │ │ │ ├── gx_vertical_list_children_position.c │ │ │ ├── gx_vertical_list_create.c │ │ │ ├── gx_vertical_list_down_wrap.c │ │ │ ├── gx_vertical_list_event_process.c │ │ │ ├── gx_vertical_list_page_index_set.c │ │ │ ├── gx_vertical_list_scroll.c │ │ │ ├── gx_vertical_list_scroll_info_get.c │ │ │ ├── gx_vertical_list_selected_index_get.c │ │ │ ├── gx_vertical_list_selected_set.c │ │ │ ├── gx_vertical_list_selected_visible.c │ │ │ ├── gx_vertical_list_selected_widget_get.c │ │ │ ├── gx_vertical_list_slide_back_check.c │ │ │ ├── gx_vertical_list_total_rows_set.c │ │ │ ├── gx_vertical_list_up_wrap.c │ │ │ ├── gx_vertical_scrollbar_create.c │ │ │ ├── gx_widget_allocate.c │ │ │ ├── gx_widget_attach.c │ │ │ ├── gx_widget_back_attach.c │ │ │ ├── gx_widget_back_link.c │ │ │ ├── gx_widget_back_move.c │ │ │ ├── gx_widget_background_draw.c │ │ │ ├── gx_widget_block_move.c │ │ │ ├── gx_widget_border_draw.c │ │ │ ├── gx_widget_border_style_set.c │ │ │ ├── gx_widget_border_width_get.c │ │ │ ├── gx_widget_canvas_get.c │ │ │ ├── gx_widget_child_clipping_update.c │ │ │ ├── gx_widget_child_detect.c │ │ │ ├── gx_widget_child_focus_assign.c │ │ │ ├── gx_widget_children_draw.c │ │ │ ├── gx_widget_children_event_process.c │ │ │ ├── gx_widget_client_get.c │ │ │ ├── gx_widget_client_index_get.c │ │ │ ├── gx_widget_clipping_update.c │ │ │ ├── gx_widget_color_get.c │ │ │ ├── gx_widget_context_fill_set.c │ │ │ ├── gx_widget_create.c │ │ │ ├── gx_widget_created_test.c │ │ │ ├── gx_widget_delete.c │ │ │ ├── gx_widget_detach.c │ │ │ ├── gx_widget_draw.c │ │ │ ├── gx_widget_draw_set.c │ │ │ ├── gx_widget_event_generate.c │ │ │ ├── gx_widget_event_process.c │ │ │ ├── gx_widget_event_process_set.c │ │ │ ├── gx_widget_event_to_parent.c │ │ │ ├── gx_widget_fill_color_set.c │ │ │ ├── gx_widget_find.c │ │ │ ├── gx_widget_first_child_get.c │ │ │ ├── gx_widget_first_client_child_get.c │ │ │ ├── gx_widget_focus_next.c │ │ │ ├── gx_widget_focus_previous.c │ │ │ ├── gx_widget_font_get.c │ │ │ ├── gx_widget_free.c │ │ │ ├── gx_widget_front_move.c │ │ │ ├── gx_widget_height_get.c │ │ │ ├── gx_widget_hide.c │ │ │ ├── gx_widget_last_child_get.c │ │ │ ├── gx_widget_last_client_child_get.c │ │ │ ├── gx_widget_link.c │ │ │ ├── gx_widget_nav_order_initialize.c │ │ │ ├── gx_widget_next_client_child_get.c │ │ │ ├── gx_widget_next_sibling_get.c │ │ │ ├── gx_widget_parent_get.c │ │ │ ├── gx_widget_pixelmap_get.c │ │ │ ├── gx_widget_previous_sibling_get.c │ │ │ ├── gx_widget_resize.c │ │ │ ├── gx_widget_scroll_shift.c │ │ │ ├── gx_widget_shift.c │ │ │ ├── gx_widget_show.c │ │ │ ├── gx_widget_status_add.c │ │ │ ├── gx_widget_status_get.c │ │ │ ├── gx_widget_status_remove.c │ │ │ ├── gx_widget_status_test.c │ │ │ ├── gx_widget_string_get.c │ │ │ ├── gx_widget_style_add.c │ │ │ ├── gx_widget_style_get.c │ │ │ ├── gx_widget_style_remove.c │ │ │ ├── gx_widget_style_set.c │ │ │ ├── gx_widget_text_blend.c │ │ │ ├── gx_widget_text_draw.c │ │ │ ├── gx_widget_text_id_draw.c │ │ │ ├── gx_widget_top_visible_child_find.c │ │ │ ├── gx_widget_transparent_pixelmap_detect.c │ │ │ ├── gx_widget_type_find.c │ │ │ ├── gx_widget_unlink.c │ │ │ ├── gx_widget_width_get.c │ │ │ ├── gx_window_background_draw.c │ │ │ ├── gx_window_border_draw.c │ │ │ ├── gx_window_client_height_get.c │ │ │ ├── gx_window_client_scroll.c │ │ │ ├── gx_window_client_width_get.c │ │ │ ├── gx_window_close.c │ │ │ ├── gx_window_create.c │ │ │ ├── gx_window_draw.c │ │ │ ├── gx_window_event_process.c │ │ │ ├── gx_window_execute.c │ │ │ ├── gx_window_root_create.c │ │ │ ├── gx_window_root_delete.c │ │ │ ├── gx_window_root_event_process.c │ │ │ ├── gx_window_root_find.c │ │ │ ├── gx_window_scroll.c │ │ │ ├── gx_window_scroll_info_get.c │ │ │ ├── gx_window_scrollbar_find.c │ │ │ ├── gx_window_view_update_detect.c │ │ │ ├── gx_window_wallpaper_get.c │ │ │ ├── gx_window_wallpaper_set.c │ │ │ ├── gxe_accordion_menu_create.c │ │ │ ├── gxe_accordion_menu_event_process.c │ │ │ ├── gxe_accordion_menu_position.c │ │ │ ├── gxe_animation_canvas_define.c │ │ │ ├── gxe_animation_create.c │ │ │ ├── gxe_animation_drag_disable.c │ │ │ ├── gxe_animation_drag_enable.c │ │ │ ├── gxe_animation_landing_speed_set.c │ │ │ ├── gxe_animation_start.c │ │ │ ├── gxe_animation_stop.c │ │ │ ├── gxe_binres_language_count_get.c │ │ │ ├── gxe_binres_language_info_load.c │ │ │ ├── gxe_binres_language_table_load.c │ │ │ ├── gxe_binres_theme_load.c │ │ │ ├── gxe_brush_default.c │ │ │ ├── gxe_brush_define.c │ │ │ ├── gxe_button_create.c │ │ │ ├── gxe_button_deselect.c │ │ │ ├── gxe_button_event_process.c │ │ │ ├── gxe_button_select.c │ │ │ ├── gxe_canvas_alpha_set.c │ │ │ ├── gxe_canvas_arc_draw.c │ │ │ ├── gxe_canvas_block_move.c │ │ │ ├── gxe_canvas_circle_draw.c │ │ │ ├── gxe_canvas_create.c │ │ │ ├── gxe_canvas_delete.c │ │ │ ├── gxe_canvas_drawing_complete.c │ │ │ ├── gxe_canvas_drawing_initiate.c │ │ │ ├── gxe_canvas_ellipse_draw.c │ │ │ ├── gxe_canvas_hardware_layer_bind.c │ │ │ ├── gxe_canvas_hide.c │ │ │ ├── gxe_canvas_line_draw.c │ │ │ ├── gxe_canvas_memory_define.c │ │ │ ├── gxe_canvas_mouse_define.c │ │ │ ├── gxe_canvas_mouse_hide.c │ │ │ ├── gxe_canvas_mouse_show.c │ │ │ ├── gxe_canvas_offset_set.c │ │ │ ├── gxe_canvas_pie_draw.c │ │ │ ├── gxe_canvas_pixel_draw.c │ │ │ ├── gxe_canvas_pixelmap_blend.c │ │ │ ├── gxe_canvas_pixelmap_draw.c │ │ │ ├── gxe_canvas_pixelmap_get.c │ │ │ ├── gxe_canvas_pixelmap_rotate.c │ │ │ ├── gxe_canvas_pixelmap_tile.c │ │ │ ├── gxe_canvas_polygon_draw.c │ │ │ ├── gxe_canvas_rectangle_draw.c │ │ │ ├── gxe_canvas_rotated_text_draw.c │ │ │ ├── gxe_canvas_shift.c │ │ │ ├── gxe_canvas_show.c │ │ │ ├── gxe_canvas_text_draw.c │ │ │ ├── gxe_checkbox_create.c │ │ │ ├── gxe_checkbox_event_process.c │ │ │ ├── gxe_checkbox_pixelmap_set.c │ │ │ ├── gxe_checkbox_select.c │ │ │ ├── gxe_circular_gauge_angle_get.c │ │ │ ├── gxe_circular_gauge_angle_set.c │ │ │ ├── gxe_circular_gauge_animation_set.c │ │ │ ├── gxe_circular_gauge_create.c │ │ │ ├── gxe_circular_gauge_event_process.c │ │ │ ├── gxe_context_brush_default.c │ │ │ ├── gxe_context_brush_define.c │ │ │ ├── gxe_context_brush_get.c │ │ │ ├── gxe_context_brush_pattern_set.c │ │ │ ├── gxe_context_brush_set.c │ │ │ ├── gxe_context_brush_style_set.c │ │ │ ├── gxe_context_brush_width_set.c │ │ │ ├── gxe_context_color_get.c │ │ │ ├── gxe_context_fill_color_set.c │ │ │ ├── gxe_context_font_get.c │ │ │ ├── gxe_context_font_set.c │ │ │ ├── gxe_context_line_color_set.c │ │ │ ├── gxe_context_pixelmap_get.c │ │ │ ├── gxe_context_pixelmap_set.c │ │ │ ├── gxe_context_raw_brush_define.c │ │ │ ├── gxe_context_raw_fill_color_set.c │ │ │ ├── gxe_context_raw_line_color_set.c │ │ │ ├── gxe_context_string_get.c │ │ │ ├── gxe_display_active_language_set.c │ │ │ ├── gxe_display_color_set.c │ │ │ ├── gxe_display_color_table_set.c │ │ │ ├── gxe_display_create.c │ │ │ ├── gxe_display_delete.c │ │ │ ├── gxe_display_font_table_set.c │ │ │ ├── gxe_display_language_table_get.c │ │ │ ├── gxe_display_language_table_set.c │ │ │ ├── gxe_display_pixelmap_table_set.c │ │ │ ├── gxe_display_string_get.c │ │ │ ├── gxe_display_string_table_get.c │ │ │ ├── gxe_display_theme_install.c │ │ │ ├── gxe_drop_list_close.c │ │ │ ├── gxe_drop_list_create.c │ │ │ ├── gxe_drop_list_event_process.c │ │ │ ├── gxe_drop_list_open.c │ │ │ ├── gxe_drop_list_pixelmap_set.c │ │ │ ├── gxe_drop_list_popup_get.c │ │ │ ├── gxe_horizontal_list_children_position.c │ │ │ ├── gxe_horizontal_list_create.c │ │ │ ├── gxe_horizontal_list_event_process.c │ │ │ ├── gxe_horizontal_list_page_index_set.c │ │ │ ├── gxe_horizontal_list_selected_index_get.c │ │ │ ├── gxe_horizontal_list_selected_set.c │ │ │ ├── gxe_horizontal_list_selected_widget_get.c │ │ │ ├── gxe_horizontal_list_total_columns_set.c │ │ │ ├── gxe_horizontal_scrollbar_create.c │ │ │ ├── gxe_icon_button_create.c │ │ │ ├── gxe_icon_button_pixelmap_set.c │ │ │ ├── gxe_icon_create.c │ │ │ ├── gxe_icon_event_process.c │ │ │ ├── gxe_icon_pixelmap_set.c │ │ │ ├── gxe_image_reader_create.c │ │ │ ├── gxe_image_reader_palette_set.c │ │ │ ├── gxe_image_reader_start.c │ │ │ ├── gxe_line_chart_create.c │ │ │ ├── gxe_line_chart_update.c │ │ │ ├── gxe_line_chart_y_scale_calculate.c │ │ │ ├── gxe_menu_create.c │ │ │ ├── gxe_menu_insert.c │ │ │ ├── gxe_menu_remove.c │ │ │ ├── gxe_menu_text_offset_set.c │ │ │ ├── gxe_multi_line_text_button_create.c │ │ │ ├── gxe_multi_line_text_button_event_process.c │ │ │ ├── gxe_multi_line_text_button_text_id_set.c │ │ │ ├── gxe_multi_line_text_button_text_set.c │ │ │ ├── gxe_multi_line_text_input_backspace.c │ │ │ ├── gxe_multi_line_text_input_buffer_clear.c │ │ │ ├── gxe_multi_line_text_input_buffer_get.c │ │ │ ├── gxe_multi_line_text_input_char_insert.c │ │ │ ├── gxe_multi_line_text_input_create.c │ │ │ ├── gxe_multi_line_text_input_cursor_pos_get.c │ │ │ ├── gxe_multi_line_text_input_delete.c │ │ │ ├── gxe_multi_line_text_input_down_arrow.c │ │ │ ├── gxe_multi_line_text_input_end.c │ │ │ ├── gxe_multi_line_text_input_event_process.c │ │ │ ├── gxe_multi_line_text_input_fill_color_set.c │ │ │ ├── gxe_multi_line_text_input_home.c │ │ │ ├── gxe_multi_line_text_input_left_arrow.c │ │ │ ├── gxe_multi_line_text_input_right_arrow.c │ │ │ ├── gxe_multi_line_text_input_style_add.c │ │ │ ├── gxe_multi_line_text_input_style_remove.c │ │ │ ├── gxe_multi_line_text_input_style_set.c │ │ │ ├── gxe_multi_line_text_input_text_color_set.c │ │ │ ├── gxe_multi_line_text_input_text_select.c │ │ │ ├── gxe_multi_line_text_input_text_set.c │ │ │ ├── gxe_multi_line_text_input_up_arrow.c │ │ │ ├── gxe_multi_line_text_view_create.c │ │ │ ├── gxe_multi_line_text_view_event_process.c │ │ │ ├── gxe_multi_line_text_view_font_set.c │ │ │ ├── gxe_multi_line_text_view_line_space_set.c │ │ │ ├── gxe_multi_line_text_view_scroll_info_get.c │ │ │ ├── gxe_multi_line_text_view_text_color_set.c │ │ │ ├── gxe_multi_line_text_view_text_id_set.c │ │ │ ├── gxe_multi_line_text_view_text_set.c │ │ │ ├── gxe_multi_line_text_view_whitespace_set.c │ │ │ ├── gxe_numeric_pixelmap_prompt_create.c │ │ │ ├── gxe_numeric_pixelmap_prompt_format_function_set.c │ │ │ ├── gxe_numeric_pixelmap_prompt_value_set.c │ │ │ ├── gxe_numeric_prompt_create.c │ │ │ ├── gxe_numeric_prompt_format_function_set.c │ │ │ ├── gxe_numeric_prompt_value_set.c │ │ │ ├── gxe_numeric_scroll_wheel_create.c │ │ │ ├── gxe_numeric_scroll_wheel_range_set.c │ │ │ ├── gxe_pixelmap_button_create.c │ │ │ ├── gxe_pixelmap_button_event_process.c │ │ │ ├── gxe_pixelmap_button_pixelmap_set.c │ │ │ ├── gxe_pixelmap_prompt_create.c │ │ │ ├── gxe_pixelmap_prompt_pixelmap_set.c │ │ │ ├── gxe_pixelmap_slider_create.c │ │ │ ├── gxe_pixelmap_slider_event_process.c │ │ │ ├── gxe_pixelmap_slider_pixelmap_set.c │ │ │ ├── gxe_progress_bar_create.c │ │ │ ├── gxe_progress_bar_event_process.c │ │ │ ├── gxe_progress_bar_font_set.c │ │ │ ├── gxe_progress_bar_info_set.c │ │ │ ├── gxe_progress_bar_pixelmap_set.c │ │ │ ├── gxe_progress_bar_range_set.c │ │ │ ├── gxe_progress_bar_text_color_set.c │ │ │ ├── gxe_progress_bar_value_set.c │ │ │ ├── gxe_prompt_create.c │ │ │ ├── gxe_prompt_font_set.c │ │ │ ├── gxe_prompt_text_color_set.c │ │ │ ├── gxe_prompt_text_get.c │ │ │ ├── gxe_prompt_text_id_set.c │ │ │ ├── gxe_prompt_text_set.c │ │ │ ├── gxe_radial_progress_bar_anchor_set.c │ │ │ ├── gxe_radial_progress_bar_create.c │ │ │ ├── gxe_radial_progress_bar_event_process.c │ │ │ ├── gxe_radial_progress_bar_font_set.c │ │ │ ├── gxe_radial_progress_bar_info_set.c │ │ │ ├── gxe_radial_progress_bar_text_color_set.c │ │ │ ├── gxe_radial_progress_bar_value_set.c │ │ │ ├── gxe_radial_slider_anchor_angles_set.c │ │ │ ├── gxe_radial_slider_angle_set.c │ │ │ ├── gxe_radial_slider_animation_set.c │ │ │ ├── gxe_radial_slider_animation_start.c │ │ │ ├── gxe_radial_slider_create.c │ │ │ ├── gxe_radial_slider_event_process.c │ │ │ ├── gxe_radial_slider_info_get.c │ │ │ ├── gxe_radial_slider_info_set.c │ │ │ ├── gxe_radial_slider_pixelmap_set.c │ │ │ ├── gxe_radio_button_create.c │ │ │ ├── gxe_radio_button_pixelmap_set.c │ │ │ ├── gxe_screen_stack_create.c │ │ │ ├── gxe_screen_stack_pop.c │ │ │ ├── gxe_screen_stack_push.c │ │ │ ├── gxe_screen_stack_reset.c │ │ │ ├── gxe_scroll_thumb_create.c │ │ │ ├── gxe_scroll_thumb_event_process.c │ │ │ ├── gxe_scroll_wheel_create.c │ │ │ ├── gxe_scroll_wheel_event_process.c │ │ │ ├── gxe_scroll_wheel_gradient_alpha_set.c │ │ │ ├── gxe_scroll_wheel_row_height_set.c │ │ │ ├── gxe_scroll_wheel_selected_background_set.c │ │ │ ├── gxe_scroll_wheel_selected_get.c │ │ │ ├── gxe_scroll_wheel_selected_set.c │ │ │ ├── gxe_scroll_wheel_speed_set.c │ │ │ ├── gxe_scroll_wheel_total_rows_set.c │ │ │ ├── gxe_scrollbar_event_process.c │ │ │ ├── gxe_scrollbar_limit_check.c │ │ │ ├── gxe_scrollbar_reset.c │ │ │ ├── gxe_scrollbar_value_set.c │ │ │ ├── gxe_single_line_text_input_backspace.c │ │ │ ├── gxe_single_line_text_input_buffer_clear.c │ │ │ ├── gxe_single_line_text_input_buffer_get.c │ │ │ ├── gxe_single_line_text_input_character_delete.c │ │ │ ├── gxe_single_line_text_input_character_insert.c │ │ │ ├── gxe_single_line_text_input_create.c │ │ │ ├── gxe_single_line_text_input_draw_position_get.c │ │ │ ├── gxe_single_line_text_input_end.c │ │ │ ├── gxe_single_line_text_input_event_process.c │ │ │ ├── gxe_single_line_text_input_fill_color_set.c │ │ │ ├── gxe_single_line_text_input_home.c │ │ │ ├── gxe_single_line_text_input_left_arrow.c │ │ │ ├── gxe_single_line_text_input_position_get.c │ │ │ ├── gxe_single_line_text_input_right_arrow.c │ │ │ ├── gxe_single_line_text_input_style_add.c │ │ │ ├── gxe_single_line_text_input_style_remove.c │ │ │ ├── gxe_single_line_text_input_style_set.c │ │ │ ├── gxe_single_line_text_input_text_color_set.c │ │ │ ├── gxe_single_line_text_input_text_select.c │ │ │ ├── gxe_single_line_text_input_text_set.c │ │ │ ├── gxe_slider_create.c │ │ │ ├── gxe_slider_event_process.c │ │ │ ├── gxe_slider_info_set.c │ │ │ ├── gxe_slider_needle_position_get.c │ │ │ ├── gxe_slider_travel_get.c │ │ │ ├── gxe_slider_value_calculate.c │ │ │ ├── gxe_slider_value_set.c │ │ │ ├── gxe_sprite_create.c │ │ │ ├── gxe_sprite_current_frame_set.c │ │ │ ├── gxe_sprite_frame_list_set.c │ │ │ ├── gxe_sprite_start.c │ │ │ ├── gxe_sprite_stop.c │ │ │ ├── gxe_string_scroll_wheel_create.c │ │ │ ├── gxe_string_scroll_wheel_string_id_list_set.c │ │ │ ├── gxe_string_scroll_wheel_string_list_set.c │ │ │ ├── gxe_system_active_language_set.c │ │ │ ├── gxe_system_animation_free.c │ │ │ ├── gxe_system_animation_get.c │ │ │ ├── gxe_system_canvas_refresh.c │ │ │ ├── gxe_system_dirty_mark.c │ │ │ ├── gxe_system_dirty_partial_add.c │ │ │ ├── gxe_system_draw_context_get.c │ │ │ ├── gxe_system_event_fold.c │ │ │ ├── gxe_system_event_send.c │ │ │ ├── gxe_system_focus_claim.c │ │ │ ├── gxe_system_initialize.c │ │ │ ├── gxe_system_language_table_get.c │ │ │ ├── gxe_system_language_table_set.c │ │ │ ├── gxe_system_memory_allocator_set.c │ │ │ ├── gxe_system_pen_configure.c │ │ │ ├── gxe_system_screen_stack_create.c │ │ │ ├── gxe_system_screen_stack_get.c │ │ │ ├── gxe_system_screen_stack_pop.c │ │ │ ├── gxe_system_screen_stack_push.c │ │ │ ├── gxe_system_scroll_appearance_get.c │ │ │ ├── gxe_system_scroll_appearance_set.c │ │ │ ├── gxe_system_start.c │ │ │ ├── gxe_system_string_get.c │ │ │ ├── gxe_system_string_table_get.c │ │ │ ├── gxe_system_string_width_get.c │ │ │ ├── gxe_system_timer_start.c │ │ │ ├── gxe_system_timer_stop.c │ │ │ ├── gxe_system_version_string_get.c │ │ │ ├── gxe_system_widget_find.c │ │ │ ├── gxe_text_button_create.c │ │ │ ├── gxe_text_button_font_set.c │ │ │ ├── gxe_text_button_text_color_set.c │ │ │ ├── gxe_text_button_text_get.c │ │ │ ├── gxe_text_button_text_id_set.c │ │ │ ├── gxe_text_button_text_set.c │ │ │ ├── gxe_text_input_cursor_blink_interval_set.c │ │ │ ├── gxe_text_input_cursor_height_set.c │ │ │ ├── gxe_text_input_cursor_width_set.c │ │ │ ├── gxe_text_scroll_wheel_callback_set.c │ │ │ ├── gxe_text_scroll_wheel_create.c │ │ │ ├── gxe_text_scroll_wheel_font_set.c │ │ │ ├── gxe_text_scroll_wheel_text_color_set.c │ │ │ ├── gxe_tree_view_create.c │ │ │ ├── gxe_tree_view_event_process.c │ │ │ ├── gxe_tree_view_indentation_set.c │ │ │ ├── gxe_tree_view_position.c │ │ │ ├── gxe_tree_view_root_line_color_set.c │ │ │ ├── gxe_tree_view_root_pixelmap_set.c │ │ │ ├── gxe_tree_view_selected_get.c │ │ │ ├── gxe_tree_view_selected_set.c │ │ │ ├── gxe_utility_canvas_to_bmp.c │ │ │ ├── gxe_utility_circle_point_get.c │ │ │ ├── gxe_utility_gradient_create.c │ │ │ ├── gxe_utility_gradient_delete.c │ │ │ ├── gxe_utility_ltoa.c │ │ │ ├── gxe_utility_pixelmap_resize.c │ │ │ ├── gxe_utility_pixelmap_rotate.c │ │ │ ├── gxe_utility_pixelmap_simple_rotate.c │ │ │ ├── gxe_utility_rectangle_center.c │ │ │ ├── gxe_utility_rectangle_center_find.c │ │ │ ├── gxe_utility_rectangle_combine.c │ │ │ ├── gxe_utility_rectangle_compare.c │ │ │ ├── gxe_utility_rectangle_define.c │ │ │ ├── gxe_utility_rectangle_overlap_detect.c │ │ │ ├── gxe_utility_rectangle_point_detect.c │ │ │ ├── gxe_utility_rectangle_resize.c │ │ │ ├── gxe_utility_rectangle_shift.c │ │ │ ├── gxe_utility_string_to_alphamap.c │ │ │ ├── gxe_vertical_list_children_position.c │ │ │ ├── gxe_vertical_list_create.c │ │ │ ├── gxe_vertical_list_event_process.c │ │ │ ├── gxe_vertical_list_page_index_set.c │ │ │ ├── gxe_vertical_list_selected_index_get.c │ │ │ ├── gxe_vertical_list_selected_set.c │ │ │ ├── gxe_vertical_list_selected_widget_get.c │ │ │ ├── gxe_vertical_list_total_rows_set.c │ │ │ ├── gxe_vertical_scrollbar_create.c │ │ │ ├── gxe_widget_allocate.c │ │ │ ├── gxe_widget_attach.c │ │ │ ├── gxe_widget_back_attach.c │ │ │ ├── gxe_widget_back_move.c │ │ │ ├── gxe_widget_block_move.c │ │ │ ├── gxe_widget_border_style_set.c │ │ │ ├── gxe_widget_border_width_get.c │ │ │ ├── gxe_widget_canvas_get.c │ │ │ ├── gxe_widget_child_detect.c │ │ │ ├── gxe_widget_client_get.c │ │ │ ├── gxe_widget_color_get.c │ │ │ ├── gxe_widget_create.c │ │ │ ├── gxe_widget_created_test.c │ │ │ ├── gxe_widget_delete.c │ │ │ ├── gxe_widget_detach.c │ │ │ ├── gxe_widget_draw_set.c │ │ │ ├── gxe_widget_event_generate.c │ │ │ ├── gxe_widget_event_process.c │ │ │ ├── gxe_widget_event_process_set.c │ │ │ ├── gxe_widget_event_to_parent.c │ │ │ ├── gxe_widget_fill_color_set.c │ │ │ ├── gxe_widget_find.c │ │ │ ├── gxe_widget_first_child_get.c │ │ │ ├── gxe_widget_focus_next.c │ │ │ ├── gxe_widget_focus_previous.c │ │ │ ├── gxe_widget_font_get.c │ │ │ ├── gxe_widget_free.c │ │ │ ├── gxe_widget_front_move.c │ │ │ ├── gxe_widget_height_get.c │ │ │ ├── gxe_widget_hide.c │ │ │ ├── gxe_widget_last_child_get.c │ │ │ ├── gxe_widget_next_sibling_get.c │ │ │ ├── gxe_widget_parent_get.c │ │ │ ├── gxe_widget_pixelmap_get.c │ │ │ ├── gxe_widget_previous_sibling_get.c │ │ │ ├── gxe_widget_resize.c │ │ │ ├── gxe_widget_shift.c │ │ │ ├── gxe_widget_show.c │ │ │ ├── gxe_widget_status_add.c │ │ │ ├── gxe_widget_status_get.c │ │ │ ├── gxe_widget_status_remove.c │ │ │ ├── gxe_widget_status_test.c │ │ │ ├── gxe_widget_string_get.c │ │ │ ├── gxe_widget_style_add.c │ │ │ ├── gxe_widget_style_get.c │ │ │ ├── gxe_widget_style_remove.c │ │ │ ├── gxe_widget_style_set.c │ │ │ ├── gxe_widget_text_blend.c │ │ │ ├── gxe_widget_top_visible_child_find.c │ │ │ ├── gxe_widget_type_find.c │ │ │ ├── gxe_widget_width_get.c │ │ │ ├── gxe_window_client_height_get.c │ │ │ ├── gxe_window_client_scroll.c │ │ │ ├── gxe_window_client_width_get.c │ │ │ ├── gxe_window_close.c │ │ │ ├── gxe_window_create.c │ │ │ ├── gxe_window_event_process.c │ │ │ ├── gxe_window_execute.c │ │ │ ├── gxe_window_root_create.c │ │ │ ├── gxe_window_root_delete.c │ │ │ ├── gxe_window_root_event_process.c │ │ │ ├── gxe_window_root_find.c │ │ │ ├── gxe_window_scroll_info_get.c │ │ │ ├── gxe_window_scrollbar_find.c │ │ │ ├── gxe_window_wallpaper_get.c │ │ │ └── gxe_window_wallpaper_set.c │ └── ports │ │ └── inc │ │ └── gx_port.h ├── Inc │ ├── gpio.h │ ├── i2c.h │ ├── main.h │ ├── stm32f4xx_hal_conf.h │ ├── stm32f4xx_it.h │ └── usart.h ├── Src │ ├── gpio.c │ ├── i2c.c │ ├── main.c │ ├── stm32f4xx_hal_msp.c │ ├── stm32f4xx_it.c │ ├── syscalls.c │ ├── sysmem.c │ ├── system_stm32f4xx.c │ └── usart.c ├── Startup │ └── startup_stm32f407zetx.s └── ThreadX │ ├── common │ ├── inc │ │ ├── tx_api.h │ │ ├── tx_block_pool.h │ │ ├── tx_byte_pool.h │ │ ├── tx_event_flags.h │ │ ├── tx_initialize.h │ │ ├── tx_mutex.h │ │ ├── tx_queue.h │ │ ├── tx_semaphore.h │ │ ├── tx_thread.h │ │ ├── tx_timer.h │ │ ├── tx_trace.h │ │ └── tx_user_sample.h │ └── src │ │ ├── tx_block_allocate.c │ │ ├── tx_block_pool_cleanup.c │ │ ├── tx_block_pool_create.c │ │ ├── tx_block_pool_delete.c │ │ ├── tx_block_pool_info_get.c │ │ ├── tx_block_pool_initialize.c │ │ ├── tx_block_pool_performance_info_get.c │ │ ├── tx_block_pool_performance_system_info_get.c │ │ ├── tx_block_pool_prioritize.c │ │ ├── tx_block_release.c │ │ ├── tx_byte_allocate.c │ │ ├── tx_byte_pool_cleanup.c │ │ ├── tx_byte_pool_create.c │ │ ├── tx_byte_pool_delete.c │ │ ├── tx_byte_pool_info_get.c │ │ ├── tx_byte_pool_initialize.c │ │ ├── tx_byte_pool_performance_info_get.c │ │ ├── tx_byte_pool_performance_system_info_get.c │ │ ├── tx_byte_pool_prioritize.c │ │ ├── tx_byte_pool_search.c │ │ ├── tx_byte_release.c │ │ ├── tx_event_flags_cleanup.c │ │ ├── tx_event_flags_create.c │ │ ├── tx_event_flags_delete.c │ │ ├── tx_event_flags_get.c │ │ ├── tx_event_flags_info_get.c │ │ ├── tx_event_flags_initialize.c │ │ ├── tx_event_flags_performance_info_get.c │ │ ├── tx_event_flags_performance_system_info_get.c │ │ ├── tx_event_flags_set.c │ │ ├── tx_event_flags_set_notify.c │ │ ├── tx_initialize_high_level.c │ │ ├── tx_initialize_kernel_enter.c │ │ ├── tx_initialize_kernel_setup.c │ │ ├── tx_misra.c │ │ ├── tx_mutex_cleanup.c │ │ ├── tx_mutex_create.c │ │ ├── tx_mutex_delete.c │ │ ├── tx_mutex_get.c │ │ ├── tx_mutex_info_get.c │ │ ├── tx_mutex_initialize.c │ │ ├── tx_mutex_performance_info_get.c │ │ ├── tx_mutex_performance_system_info_get.c │ │ ├── tx_mutex_prioritize.c │ │ ├── tx_mutex_priority_change.c │ │ ├── tx_mutex_put.c │ │ ├── tx_queue_cleanup.c │ │ ├── tx_queue_create.c │ │ ├── tx_queue_delete.c │ │ ├── tx_queue_flush.c │ │ ├── tx_queue_front_send.c │ │ ├── tx_queue_info_get.c │ │ ├── tx_queue_initialize.c │ │ ├── tx_queue_performance_info_get.c │ │ ├── tx_queue_performance_system_info_get.c │ │ ├── tx_queue_prioritize.c │ │ ├── tx_queue_receive.c │ │ ├── tx_queue_send.c │ │ ├── tx_queue_send_notify.c │ │ ├── tx_semaphore_ceiling_put.c │ │ ├── tx_semaphore_cleanup.c │ │ ├── tx_semaphore_create.c │ │ ├── tx_semaphore_delete.c │ │ ├── tx_semaphore_get.c │ │ ├── tx_semaphore_info_get.c │ │ ├── tx_semaphore_initialize.c │ │ ├── tx_semaphore_performance_info_get.c │ │ ├── tx_semaphore_performance_system_info_get.c │ │ ├── tx_semaphore_prioritize.c │ │ ├── tx_semaphore_put.c │ │ ├── tx_semaphore_put_notify.c │ │ ├── tx_thread_create.c │ │ ├── tx_thread_delete.c │ │ ├── tx_thread_entry_exit_notify.c │ │ ├── tx_thread_identify.c │ │ ├── tx_thread_info_get.c │ │ ├── tx_thread_initialize.c │ │ ├── tx_thread_performance_info_get.c │ │ ├── tx_thread_performance_system_info_get.c │ │ ├── tx_thread_preemption_change.c │ │ ├── tx_thread_priority_change.c │ │ ├── tx_thread_relinquish.c │ │ ├── tx_thread_reset.c │ │ ├── tx_thread_resume.c │ │ ├── tx_thread_shell_entry.c │ │ ├── tx_thread_sleep.c │ │ ├── tx_thread_stack_analyze.c │ │ ├── tx_thread_stack_error_handler.c │ │ ├── tx_thread_stack_error_notify.c │ │ ├── tx_thread_suspend.c │ │ ├── tx_thread_system_preempt_check.c │ │ ├── tx_thread_system_resume.c │ │ ├── tx_thread_system_suspend.c │ │ ├── tx_thread_terminate.c │ │ ├── tx_thread_time_slice.c │ │ ├── tx_thread_time_slice_change.c │ │ ├── tx_thread_timeout.c │ │ ├── tx_thread_wait_abort.c │ │ ├── tx_time_get.c │ │ ├── tx_time_set.c │ │ ├── tx_timer_activate.c │ │ ├── tx_timer_change.c │ │ ├── tx_timer_create.c │ │ ├── tx_timer_deactivate.c │ │ ├── tx_timer_delete.c │ │ ├── tx_timer_expiration_process.c │ │ ├── tx_timer_info_get.c │ │ ├── tx_timer_initialize.c │ │ ├── tx_timer_performance_info_get.c │ │ ├── tx_timer_performance_system_info_get.c │ │ ├── tx_timer_system_activate.c │ │ ├── tx_timer_system_deactivate.c │ │ ├── tx_timer_thread_entry.c │ │ ├── tx_trace_buffer_full_notify.c │ │ ├── tx_trace_disable.c │ │ ├── tx_trace_enable.c │ │ ├── tx_trace_event_filter.c │ │ ├── tx_trace_event_unfilter.c │ │ ├── tx_trace_initialize.c │ │ ├── tx_trace_interrupt_control.c │ │ ├── tx_trace_isr_enter_insert.c │ │ ├── tx_trace_isr_exit_insert.c │ │ ├── tx_trace_object_register.c │ │ ├── tx_trace_object_unregister.c │ │ ├── tx_trace_user_event_insert.c │ │ ├── txe_block_allocate.c │ │ ├── txe_block_pool_create.c │ │ ├── txe_block_pool_delete.c │ │ ├── txe_block_pool_info_get.c │ │ ├── txe_block_pool_prioritize.c │ │ ├── txe_block_release.c │ │ ├── txe_byte_allocate.c │ │ ├── txe_byte_pool_create.c │ │ ├── txe_byte_pool_delete.c │ │ ├── txe_byte_pool_info_get.c │ │ ├── txe_byte_pool_prioritize.c │ │ ├── txe_byte_release.c │ │ ├── txe_event_flags_create.c │ │ ├── txe_event_flags_delete.c │ │ ├── txe_event_flags_get.c │ │ ├── txe_event_flags_info_get.c │ │ ├── txe_event_flags_set.c │ │ ├── txe_event_flags_set_notify.c │ │ ├── txe_mutex_create.c │ │ ├── txe_mutex_delete.c │ │ ├── txe_mutex_get.c │ │ ├── txe_mutex_info_get.c │ │ ├── txe_mutex_prioritize.c │ │ ├── txe_mutex_put.c │ │ ├── txe_queue_create.c │ │ ├── txe_queue_delete.c │ │ ├── txe_queue_flush.c │ │ ├── txe_queue_front_send.c │ │ ├── txe_queue_info_get.c │ │ ├── txe_queue_prioritize.c │ │ ├── txe_queue_receive.c │ │ ├── txe_queue_send.c │ │ ├── txe_queue_send_notify.c │ │ ├── txe_semaphore_ceiling_put.c │ │ ├── txe_semaphore_create.c │ │ ├── txe_semaphore_delete.c │ │ ├── txe_semaphore_get.c │ │ ├── txe_semaphore_info_get.c │ │ ├── txe_semaphore_prioritize.c │ │ ├── txe_semaphore_put.c │ │ ├── txe_semaphore_put_notify.c │ │ ├── txe_thread_create.c │ │ ├── txe_thread_delete.c │ │ ├── txe_thread_entry_exit_notify.c │ │ ├── txe_thread_info_get.c │ │ ├── txe_thread_preemption_change.c │ │ ├── txe_thread_priority_change.c │ │ ├── txe_thread_relinquish.c │ │ ├── txe_thread_reset.c │ │ ├── txe_thread_resume.c │ │ ├── txe_thread_suspend.c │ │ ├── txe_thread_terminate.c │ │ ├── txe_thread_time_slice_change.c │ │ ├── txe_thread_wait_abort.c │ │ ├── txe_timer_activate.c │ │ ├── txe_timer_change.c │ │ ├── txe_timer_create.c │ │ ├── txe_timer_deactivate.c │ │ ├── txe_timer_delete.c │ │ └── txe_timer_info_get.c │ └── ports │ ├── inc │ └── tx_port.h │ └── src │ ├── tx_initialize_low_level_sample.S │ ├── tx_thread_context_restore.S │ ├── tx_thread_context_save.S │ ├── tx_thread_interrupt_control.S │ ├── tx_thread_schedule.S │ ├── tx_thread_stack_build.S │ ├── tx_thread_system_return.S │ └── tx_timer_interrupt.S ├── Drivers ├── CMSIS │ ├── Device │ │ └── ST │ │ │ └── STM32F4xx │ │ │ └── Include │ │ │ ├── stm32f407xx.h │ │ │ ├── stm32f4xx.h │ │ │ └── system_stm32f4xx.h │ └── Include │ │ ├── cmsis_armcc.h │ │ ├── cmsis_armclang.h │ │ ├── cmsis_compiler.h │ │ ├── cmsis_gcc.h │ │ ├── cmsis_iccarm.h │ │ ├── cmsis_version.h │ │ ├── core_armv8mbl.h │ │ ├── core_armv8mml.h │ │ ├── core_cm0.h │ │ ├── core_cm0plus.h │ │ ├── core_cm1.h │ │ ├── core_cm23.h │ │ ├── core_cm3.h │ │ ├── core_cm33.h │ │ ├── core_cm4.h │ │ ├── core_cm7.h │ │ ├── core_sc000.h │ │ ├── core_sc300.h │ │ ├── mpu_armv7.h │ │ ├── mpu_armv8.h │ │ └── tz_context.h └── STM32F4xx_HAL_Driver │ ├── Inc │ ├── Legacy │ │ └── stm32_hal_legacy.h │ ├── stm32f4xx_hal.h │ ├── stm32f4xx_hal_cortex.h │ ├── stm32f4xx_hal_def.h │ ├── stm32f4xx_hal_dma.h │ ├── stm32f4xx_hal_dma_ex.h │ ├── stm32f4xx_hal_exti.h │ ├── stm32f4xx_hal_flash.h │ ├── stm32f4xx_hal_flash_ex.h │ ├── stm32f4xx_hal_flash_ramfunc.h │ ├── stm32f4xx_hal_gpio.h │ ├── stm32f4xx_hal_gpio_ex.h │ ├── stm32f4xx_hal_i2c.h │ ├── stm32f4xx_hal_i2c_ex.h │ ├── stm32f4xx_hal_pwr.h │ ├── stm32f4xx_hal_pwr_ex.h │ ├── stm32f4xx_hal_rcc.h │ ├── stm32f4xx_hal_rcc_ex.h │ ├── stm32f4xx_hal_tim.h │ ├── stm32f4xx_hal_tim_ex.h │ └── stm32f4xx_hal_uart.h │ └── Src │ ├── stm32f4xx_hal.c │ ├── stm32f4xx_hal_cortex.c │ ├── stm32f4xx_hal_dma.c │ ├── stm32f4xx_hal_dma_ex.c │ ├── stm32f4xx_hal_exti.c │ ├── stm32f4xx_hal_flash.c │ ├── stm32f4xx_hal_flash_ex.c │ ├── stm32f4xx_hal_flash_ramfunc.c │ ├── stm32f4xx_hal_gpio.c │ ├── stm32f4xx_hal_i2c.c │ ├── stm32f4xx_hal_i2c_ex.c │ ├── stm32f4xx_hal_pwr.c │ ├── stm32f4xx_hal_pwr_ex.c │ ├── stm32f4xx_hal_rcc.c │ ├── stm32f4xx_hal_rcc_ex.c │ ├── stm32f4xx_hal_tim.c │ ├── stm32f4xx_hal_tim_ex.c │ └── stm32f4xx_hal_uart.c ├── LICENSE ├── README.md ├── STM32F407ZETX_FLASH.ld ├── STM32F407ZETX_RAM.ld ├── STM32F407_Explorer_ThreadX Debug.launch └── STM32F407_Explorer_ThreadX.ioc /.gitignore: -------------------------------------------------------------------------------- 1 | # used for STM32CubeIDE Project 2 | 3 | 4 | makefile 5 | *.d 6 | *.o 7 | *.su 8 | *.elf 9 | *.bin 10 | *.hex 11 | *.mk 12 | *.list 13 | *.map 14 | 15 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | STM32F407_Explorer_ThreadX 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | com.st.stm32cube.ide.mcu.MCUProjectNature 23 | com.st.stm32cube.ide.mcu.MCUCubeProjectNature 24 | org.eclipse.cdt.core.cnature 25 | com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAProjectNature 26 | com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature 27 | com.st.stm32cube.ide.mcu.MCUEndUserDisabledTrustZoneProjectNature 28 | com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature 29 | com.st.stm32cube.ide.mcu.MCURootProjectNature 30 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 31 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 32 | 33 | 34 | -------------------------------------------------------------------------------- /.settings/language.settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Core/GUIX/common/inc/gx_icon.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Icon Management (Icon) */ 19 | /** */ 20 | /**************************************************************************/ 21 | /**************************************************************************/ 22 | 23 | 24 | /**************************************************************************/ 25 | /* */ 26 | /* COMPONENT DEFINITION RELEASE */ 27 | /* */ 28 | /* gx_icon.h PORTABLE C */ 29 | /* 6.0 */ 30 | /* AUTHOR */ 31 | /* */ 32 | /* Kenneth Maxwell, Microsoft Corporation */ 33 | /* */ 34 | /* DESCRIPTION */ 35 | /* */ 36 | /* This file defines the GUIX icon management component, */ 37 | /* including all data types and external references. It is assumed */ 38 | /* that gx_api.h and gx_port.h have already been included. */ 39 | /* */ 40 | /* RELEASE HISTORY */ 41 | /* */ 42 | /* DATE NAME DESCRIPTION */ 43 | /* */ 44 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 45 | /* */ 46 | /**************************************************************************/ 47 | 48 | #ifndef GX_ICON_H 49 | #define GX_ICON_H 50 | 51 | 52 | /* Define button management function prototypes. */ 53 | 54 | VOID _gx_icon_background_draw(GX_ICON *icon); 55 | UINT _gx_icon_create(GX_ICON *icon, GX_CONST GX_CHAR *name, GX_WIDGET *parent, 56 | GX_RESOURCE_ID pixelmap_id, 57 | ULONG style, USHORT icon_id, GX_VALUE x, GX_VALUE y); 58 | VOID _gx_icon_draw(GX_ICON *icon); 59 | UINT _gx_icon_event_process(GX_ICON *icon, GX_EVENT *event_ptr); 60 | 61 | UINT _gx_icon_pixelmap_set(GX_ICON *icon, GX_RESOURCE_ID normal_id, GX_RESOURCE_ID selected_id); 62 | VOID _gx_icon_pixelmap_update(GX_ICON *icon); 63 | 64 | /* Define error checking shells for API services. These are only referenced by the 65 | application. */ 66 | 67 | 68 | UINT _gxe_icon_create(GX_ICON *icon, GX_CONST GX_CHAR *name, GX_WIDGET *parent, GX_RESOURCE_ID pixelmap_id, 69 | ULONG style, USHORT icon_id, GX_VALUE x, GX_VALUE y, UINT icon_control_block_size); 70 | UINT _gxe_icon_event_process(GX_ICON *button, GX_EVENT *event_ptr); 71 | UINT _gxe_icon_pixelmap_set(GX_ICON *icon, GX_RESOURCE_ID normal_id, GX_RESOURCE_ID selected_id); 72 | 73 | #endif 74 | 75 | -------------------------------------------------------------------------------- /Core/GUIX/common/inc/gx_line_chart.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Line Chart (Charting) */ 19 | /** */ 20 | /**************************************************************************/ 21 | /**************************************************************************/ 22 | 23 | 24 | /**************************************************************************/ 25 | /* */ 26 | /* COMPONENT DEFINITION RELEASE */ 27 | /* */ 28 | /* gx_line_chart.h PORTABLE C */ 29 | /* 6.0 */ 30 | /* AUTHOR */ 31 | /* */ 32 | /* Kenneth Maxwell, Microsoft Corporation */ 33 | /* */ 34 | /* DESCRIPTION */ 35 | /* */ 36 | /* This file defines the GUIX line chart component, including all data */ 37 | /* types and external references. It is assumed that gx_api.h and */ 38 | /* gx_port.h have already been included. */ 39 | /* */ 40 | /* RELEASE HISTORY */ 41 | /* */ 42 | /* DATE NAME DESCRIPTION */ 43 | /* */ 44 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 45 | /* */ 46 | /**************************************************************************/ 47 | 48 | #ifndef GX_LINE_CHART_H 49 | #define GX_LINE_CHART_H 50 | 51 | /* APIs defined for line chart widget */ 52 | 53 | VOID _gx_line_chart_axis_draw(GX_LINE_CHART *chart); 54 | UINT _gx_line_chart_create(GX_LINE_CHART *chart, 55 | GX_CONST GX_CHAR *name, 56 | GX_WIDGET *parent, 57 | GX_CONST GX_LINE_CHART_INFO *info, 58 | ULONG style, 59 | USHORT chart_id, 60 | GX_CONST GX_RECTANGLE *size); 61 | VOID _gx_line_chart_data_draw(GX_LINE_CHART *chart); 62 | VOID _gx_line_chart_draw(GX_LINE_CHART *chart); 63 | UINT _gx_line_chart_update(GX_LINE_CHART *chart, INT *data, INT data_count); 64 | UINT _gx_line_chart_y_scale_calculate(GX_LINE_CHART *chart_info, INT *return_val); 65 | 66 | /* Define error checking shells for API services. These are only referenced by the 67 | application. */ 68 | 69 | UINT _gxe_line_chart_create(GX_LINE_CHART *chart, 70 | GX_CONST GX_CHAR *name, 71 | GX_WIDGET *parent, 72 | GX_CONST GX_LINE_CHART_INFO *info, 73 | ULONG style, 74 | USHORT chart_id, 75 | GX_CONST GX_RECTANGLE *size, 76 | UINT control_block_size); 77 | UINT _gxe_line_chart_update(GX_LINE_CHART *chart, INT *data, INT data_count); 78 | UINT _gxe_line_chart_y_scale_calculate(GX_LINE_CHART *chart_info, INT *return_val); 79 | 80 | 81 | #endif 82 | 83 | -------------------------------------------------------------------------------- /Core/GUIX/common/inc/gx_numeric_prompt.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Numeric Prompt Management (Prompt) */ 19 | /** */ 20 | /**************************************************************************/ 21 | /**************************************************************************/ 22 | 23 | 24 | /**************************************************************************/ 25 | /* */ 26 | /* COMPONENT DEFINITION RELEASE */ 27 | /* */ 28 | /* gx_numeric_prompt.h PORTABLE C */ 29 | /* 6.0 */ 30 | /* AUTHOR */ 31 | /* */ 32 | /* Kenneth Maxwell, Microsoft Corporation */ 33 | /* */ 34 | /* DESCRIPTION */ 35 | /* */ 36 | /* This file defines the GUIX numeric prompt management component, */ 37 | /* including all data types and external references. It is assumed */ 38 | /* that gx_api.h and gx_port.h have already been included. */ 39 | /* */ 40 | /* RELEASE HISTORY */ 41 | /* */ 42 | /* DATE NAME DESCRIPTION */ 43 | /* */ 44 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 45 | /* */ 46 | /**************************************************************************/ 47 | 48 | #ifndef GX_NUMERIC_PROMPT_H 49 | #define GX_NUMERIC_PROMPT_H 50 | 51 | 52 | /* Define prompt management function prototypes. */ 53 | 54 | UINT _gx_numeric_prompt_create(GX_NUMERIC_PROMPT *prompt, GX_CONST GX_CHAR *name, GX_WIDGET *parent, 55 | GX_RESOURCE_ID text_id, ULONG style, USHORT prompt_id, GX_CONST GX_RECTANGLE *size); 56 | VOID _gx_numeric_prompt_format(GX_NUMERIC_PROMPT *prompt, INT value); 57 | UINT _gx_numeric_prompt_format_function_set(GX_NUMERIC_PROMPT *prompt, VOID (*format_func)(GX_NUMERIC_PROMPT *, INT)); 58 | UINT _gx_numeric_prompt_value_set(GX_NUMERIC_PROMPT *prompt, INT value); 59 | 60 | /* Define error checking shells for API services. These are only referenced by the 61 | application. */ 62 | 63 | UINT _gxe_numeric_prompt_create(GX_NUMERIC_PROMPT *prompt, GX_CONST GX_CHAR *name, GX_WIDGET *parent, 64 | GX_RESOURCE_ID text_id, ULONG style, USHORT prompt_id, GX_CONST GX_RECTANGLE *size, 65 | UINT control_block_size); 66 | UINT _gxe_numeric_prompt_format_function_set(GX_NUMERIC_PROMPT *prompt, VOID (*format_func)(GX_NUMERIC_PROMPT *, INT)); 67 | UINT _gxe_numeric_prompt_value_set(GX_NUMERIC_PROMPT *prompt, INT value); 68 | #endif 69 | 70 | -------------------------------------------------------------------------------- /Core/GUIX/common/inc/gx_screen_stack.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Screen Stack Management (Screen Stack) */ 19 | /** */ 20 | /**************************************************************************/ 21 | /**************************************************************************/ 22 | 23 | 24 | /**************************************************************************/ 25 | /* */ 26 | /* COMPONENT DEFINITION RELEASE */ 27 | /* */ 28 | /* gx_screen_stack.h PORTABLE C */ 29 | /* 6.0 */ 30 | /* AUTHOR */ 31 | /* */ 32 | /* Kenneth Maxwell, Microsoft Corporation */ 33 | /* */ 34 | /* DESCRIPTION */ 35 | /* */ 36 | /* This file defines the GUIX screen stack component, including all */ 37 | /* data types and external references. It is assumed that gx_api.h */ 38 | /* and gx_port.h have already been included. */ 39 | /* */ 40 | /* RELEASE HISTORY */ 41 | /* */ 42 | /* DATE NAME DESCRIPTION */ 43 | /* */ 44 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 45 | /* */ 46 | /**************************************************************************/ 47 | 48 | #ifndef GX_SCREEN_STACK_H 49 | #define GX_SCREEN_STACK_H 50 | 51 | /* Define screen stack management function prototypes. */ 52 | UINT _gx_screen_stack_create(GX_SCREEN_STACK_CONTROL *control, GX_WIDGET **memory, INT size); 53 | UINT _gx_screen_stack_push(GX_SCREEN_STACK_CONTROL *control, GX_WIDGET *screen, GX_WIDGET *new_screen); 54 | UINT _gx_screen_stack_pop(GX_SCREEN_STACK_CONTROL *control); 55 | UINT _gx_screen_stack_reset(GX_SCREEN_STACK_CONTROL *control); 56 | 57 | /* error checking versions of the screen stack API functions */ 58 | UINT _gxe_screen_stack_create(GX_SCREEN_STACK_CONTROL *control, GX_WIDGET **memory, INT size); 59 | UINT _gxe_screen_stack_push(GX_SCREEN_STACK_CONTROL *control, GX_WIDGET *screen, GX_WIDGET *new_screen); 60 | UINT _gxe_screen_stack_pop(GX_SCREEN_STACK_CONTROL *control); 61 | UINT _gxe_screen_stack_reset(GX_SCREEN_STACK_CONTROL *control); 62 | 63 | #endif 64 | 65 | -------------------------------------------------------------------------------- /Core/GUIX/common/inc/gx_text_input_cursor.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Cursor Management (Cursor) */ 19 | /** */ 20 | /**************************************************************************/ 21 | /**************************************************************************/ 22 | 23 | 24 | /**************************************************************************/ 25 | /* */ 26 | /* COMPONENT DEFINITION RELEASE */ 27 | /* */ 28 | /* gx_text_input_cursor.h PORTABLE C */ 29 | /* 6.0 */ 30 | /* AUTHOR */ 31 | /* */ 32 | /* Kenneth Maxwell, Microsoft Corporation */ 33 | /* */ 34 | /* DESCRIPTION */ 35 | /* */ 36 | /* This file defines the GUIX cursor management component, */ 37 | /* including all data types and external references. It is assumed */ 38 | /* that gx_api.h and gx_port.h have already been included. */ 39 | /* */ 40 | /* RELEASE HISTORY */ 41 | /* */ 42 | /* DATE NAME DESCRIPTION */ 43 | /* */ 44 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 45 | /* */ 46 | /**************************************************************************/ 47 | 48 | #ifndef GX_CURSOR_H 49 | #define GX_CURSOR_H 50 | 51 | 52 | /* Define cursor management function prototypes. */ 53 | 54 | VOID _gx_text_input_cursor_draw(GX_TEXT_INPUT_CURSOR *cursor_input); 55 | UINT _gx_text_input_cursor_dirty_rectangle_get(GX_TEXT_INPUT_CURSOR *cursor_ptr, GX_RECTANGLE *dirty_rect); 56 | UINT _gx_text_input_cursor_width_set(GX_TEXT_INPUT_CURSOR *cursor_input, GX_UBYTE width); 57 | UINT _gx_text_input_cursor_height_set(GX_TEXT_INPUT_CURSOR *cursor_input, GX_UBYTE height); 58 | UINT _gx_text_input_cursor_blink_interval_set(GX_TEXT_INPUT_CURSOR *cursor_input, GX_UBYTE blink_interval); 59 | 60 | 61 | /* Define error checking shells for API services. These are only referenced by the 62 | application. */ 63 | 64 | UINT _gxe_text_input_cursor_width_set(GX_TEXT_INPUT_CURSOR *cursor_input, GX_UBYTE width); 65 | UINT _gxe_text_input_cursor_height_set(GX_TEXT_INPUT_CURSOR *cursor_input, GX_UBYTE height); 66 | UINT _gxe_text_input_cursor_blink_interval_set(GX_TEXT_INPUT_CURSOR *cursor_input, GX_UBYTE blink_interval); 67 | 68 | #endif 69 | 70 | -------------------------------------------------------------------------------- /Core/GUIX/common/inc/gx_user_sample.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** User optional settings */ 19 | /** */ 20 | /**************************************************************************/ 21 | /**************************************************************************/ 22 | /**************************************************************************/ 23 | /* */ 24 | /* APPLICATION INTERFACE DEFINITION RELEASE */ 25 | /* */ 26 | /* gx_user.h PORTABLE C */ 27 | /* 6.0 */ 28 | /* AUTHOR */ 29 | /* */ 30 | /* Kenneth Maxwell, Microsoft Corporation */ 31 | /* */ 32 | /* DESCRIPTION */ 33 | /* */ 34 | /* This file contains optional settings. You can enable and disable */ 35 | /* GUIX features by commenting out or including the definitions below */ 36 | /* to the implementation of high-performance GUIX UI framework. */ 37 | /* */ 38 | /* RELEASE HISTORY */ 39 | /* */ 40 | /* DATE NAME DESCRIPTION */ 41 | /* */ 42 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 43 | /* */ 44 | /**************************************************************************/ 45 | 46 | #ifndef GX_USER_H 47 | #define GX_USER_H 48 | 49 | /* Should GUIX support multiple threads using the GUIX API simultaneously 50 | If your application is organized such that only one thread utilizes the 51 | GUI API services, comment out the definition below to reduce system 52 | overhead. 53 | */ 54 | /* #define GUIX_DISABLE_MULTITHREAD_SUPPORT */ 55 | 56 | /* Defined, GUIX disables UTF8 support. */ 57 | /* #define GX_DISABLE_UTF8_SUPPORT */ 58 | 59 | /* By default GUIX System Timer runs at 20ms. Modify the value below to 60 | change GUIX System Timer value. */ 61 | /* #define GX_SYSTEM_TIMER_MS 20 */ 62 | 63 | /* This can be defined to insert an application specific data 64 | field into the GX_WIDGET control block */ 65 | /* #define GX_WIDGET_USER_DATA */ 66 | #endif 67 | 68 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_context_brush_default.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Context Management (Context) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | #include "gx_context.h" 30 | 31 | 32 | /**************************************************************************/ 33 | /* */ 34 | /* FUNCTION RELEASE */ 35 | /* */ 36 | /* _gx_context_brush_default PORTABLE C */ 37 | /* 6.0 */ 38 | /* AUTHOR */ 39 | /* */ 40 | /* Kenneth Maxwell, Microsoft Corporation */ 41 | /* */ 42 | /* DESCRIPTION */ 43 | /* */ 44 | /* Set the brush of the current display context. */ 45 | /* */ 46 | /* INPUT */ 47 | /* */ 48 | /* context Pointer to context */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* _gx_brush_default Sets the default brush */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* _gx_canvas_drawing_initiate */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | 70 | UINT _gx_context_brush_default(GX_DRAW_CONTEXT *context) 71 | { 72 | GX_BRUSH *brush; 73 | 74 | /* Set the brush. */ 75 | brush = &context -> gx_draw_context_brush; 76 | 77 | _gx_brush_default(brush); 78 | 79 | /* Return successful completion. */ 80 | return(GX_SUCCESS); 81 | } 82 | 83 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_context_brush_set.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Context Management (Context) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | #include "gx_context.h" 30 | 31 | 32 | /**************************************************************************/ 33 | /* */ 34 | /* FUNCTION RELEASE */ 35 | /* */ 36 | /* _gx_context_brush_set PORTABLE C */ 37 | /* 6.0 */ 38 | /* AUTHOR */ 39 | /* */ 40 | /* Kenneth Maxwell, Microsoft Corporation */ 41 | /* */ 42 | /* DESCRIPTION */ 43 | /* */ 44 | /* Set the brush of the current screen context. */ 45 | /* */ 46 | /* INPUT */ 47 | /* */ 48 | /* brush Pointer to brush */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* None */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* Application Code */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_context_brush_set(GX_BRUSH *brush) 70 | { 71 | GX_DRAW_CONTEXT *context = _gx_system_current_draw_context; 72 | 73 | /* Set the brush. */ 74 | context -> gx_draw_context_brush = *brush; 75 | 76 | /* Return successful completion. */ 77 | return(GX_SUCCESS); 78 | } 79 | 80 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_context_brush_style_set.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Context Management (Context) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | #include "gx_context.h" 30 | 31 | 32 | /**************************************************************************/ 33 | /* */ 34 | /* FUNCTION RELEASE */ 35 | /* */ 36 | /* _gx_context_brush_style_set PORTABLE C */ 37 | /* 6.0 */ 38 | /* AUTHOR */ 39 | /* */ 40 | /* Kenneth Maxwell, Microsoft Corporation */ 41 | /* */ 42 | /* DESCRIPTION */ 43 | /* */ 44 | /* Set the brush of the current screen context. */ 45 | /* */ 46 | /* INPUT */ 47 | /* */ 48 | /* style Brush style of current context*/ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* None */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* Application Code */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_context_brush_style_set(UINT style) 70 | { 71 | GX_DRAW_CONTEXT *context = _gx_system_current_draw_context; 72 | 73 | /* Set the brush. */ 74 | context -> gx_draw_context_brush.gx_brush_style = style; 75 | 76 | /* Return successful completion. */ 77 | return(GX_SUCCESS); 78 | } 79 | 80 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_display_driver_16bpp_row_pitch_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Display Management (Display) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_display.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gx_display_driver_565rgb_row_pitch_get PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* Calculate row pitch, in bytes, for given canvas width */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* width canvas width */ 47 | /* */ 48 | /* OUTPUT */ 49 | /* */ 50 | /* USHORT pitch in bytes */ 51 | /* */ 52 | /* CALLS */ 53 | /* */ 54 | /* None */ 55 | /* */ 56 | /* CALLED BY */ 57 | /* */ 58 | /* GUIX Internal Code */ 59 | /* */ 60 | /* RELEASE HISTORY */ 61 | /* */ 62 | /* DATE NAME DESCRIPTION */ 63 | /* */ 64 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 65 | /* */ 66 | /**************************************************************************/ 67 | USHORT _gx_display_driver_16bpp_row_pitch_get(USHORT width) 68 | { 69 | return((USHORT)(width * 2)); 70 | } 71 | 72 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_display_driver_1bpp_row_pitch_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Display Management (Display) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_display.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gx_display_driver_1bpp_row_pitch_get PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* Calculate row pitch, in bytes, for given canvas width */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* width canvas width */ 47 | /* */ 48 | /* OUTPUT */ 49 | /* */ 50 | /* USHORT pitch in bytes */ 51 | /* */ 52 | /* CALLS */ 53 | /* */ 54 | /* None */ 55 | /* */ 56 | /* CALLED BY */ 57 | /* */ 58 | /* GUIX Internal Code */ 59 | /* */ 60 | /* RELEASE HISTORY */ 61 | /* */ 62 | /* DATE NAME DESCRIPTION */ 63 | /* */ 64 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 65 | /* */ 66 | /**************************************************************************/ 67 | USHORT _gx_display_driver_1bpp_row_pitch_get(USHORT width) 68 | { 69 | return((USHORT)((width + 7) >> 3)); 70 | } 71 | 72 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_display_driver_32bpp_row_pitch_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Display Management (Display) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_display.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gx_display_driver_32xrgb_row_pitch_get PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* Calculate row pitch in bytes for canvas of given width */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* width canvas width */ 47 | /* */ 48 | /* OUTPUT */ 49 | /* */ 50 | /* USHORT row pitch in bytes */ 51 | /* */ 52 | /* CALLS */ 53 | /* */ 54 | /* None */ 55 | /* */ 56 | /* CALLED BY */ 57 | /* */ 58 | /* GUIX Internal Code */ 59 | /* */ 60 | /* RELEASE HISTORY */ 61 | /* */ 62 | /* DATE NAME DESCRIPTION */ 63 | /* */ 64 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 65 | /* */ 66 | /**************************************************************************/ 67 | USHORT _gx_display_driver_32bpp_row_pitch_get(USHORT width) 68 | { 69 | return((USHORT)(width * 4)); 70 | } 71 | 72 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_display_driver_4bpp_row_pitch_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Display Management (Display) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_display.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gx_display_driver_4bpp_row_pitch_get PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* Calculate row pitch, in bytes, for given canvas width */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* width canvas width */ 47 | /* */ 48 | /* OUTPUT */ 49 | /* */ 50 | /* USHORT pitch in bytes */ 51 | /* */ 52 | /* CALLS */ 53 | /* */ 54 | /* None */ 55 | /* */ 56 | /* CALLED BY */ 57 | /* */ 58 | /* _gx_display_driver_4bpp_pixel_write */ 59 | /* GUIX Internal Code */ 60 | /* */ 61 | /* RELEASE HISTORY */ 62 | /* */ 63 | /* DATE NAME DESCRIPTION */ 64 | /* */ 65 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 66 | /* */ 67 | /**************************************************************************/ 68 | USHORT _gx_display_driver_4bpp_row_pitch_get(USHORT width) 69 | { 70 | return((USHORT)((width + 1) >> 1)); 71 | } 72 | 73 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_display_driver_8bpp_row_pitch_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Display Management (Display) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_display.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gx_display_driver_8bpp_row_pitch_get PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* Calculate row pitch, in bytes, for given canvas width */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* width canvas width */ 47 | /* */ 48 | /* OUTPUT */ 49 | /* */ 50 | /* USHORT pitch in bytes */ 51 | /* */ 52 | /* CALLS */ 53 | /* */ 54 | /* None */ 55 | /* */ 56 | /* CALLED BY */ 57 | /* */ 58 | /* GUIX Internal Code */ 59 | /* */ 60 | /* RELEASE HISTORY */ 61 | /* */ 62 | /* DATE NAME DESCRIPTION */ 63 | /* */ 64 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 65 | /* */ 66 | /**************************************************************************/ 67 | USHORT _gx_display_driver_8bpp_row_pitch_get(USHORT width) 68 | { 69 | return width * 1; 70 | } 71 | 72 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_display_driver_generic_mouse_cursor_define.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Dispaly Management (Dispaly) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_display.h" 29 | 30 | #if defined(GX_MOUSE_SUPPORT) 31 | /**************************************************************************/ 32 | /* */ 33 | /* FUNCTION RELEASE */ 34 | /* */ 35 | /* _gx_display_driver_generic_mouse_cursor_define PORTABLE C */ 36 | /* 6.0 */ 37 | /* AUTHOR */ 38 | /* */ 39 | /* Kenneth Maxwell, Microsoft Corporation */ 40 | /* */ 41 | /* DESCRIPTION */ 42 | /* */ 43 | /* This service assign mouse cursor info for the current display */ 44 | /* */ 45 | /* INPUT */ 46 | /* */ 47 | /* display Display control block */ 48 | /* canvas Canvas control block */ 49 | /* info Mouse cursor info control */ 50 | /* block */ 51 | /* */ 52 | /* OUTPUT */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* */ 57 | /* CALLED BY */ 58 | /* */ 59 | /* Application Code */ 60 | /* */ 61 | /* RELEASE HISTORY */ 62 | /* */ 63 | /* DATE NAME DESCRIPTION */ 64 | /* */ 65 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 66 | /* */ 67 | /**************************************************************************/ 68 | VOID _gx_display_driver_generic_mouse_define(GX_DISPLAY *display, GX_CANVAS *canvas, GX_MOUSE_CURSOR_INFO *info) 69 | { 70 | display -> gx_display_mouse.gx_mouse_canvas = canvas; 71 | display -> gx_display_mouse.gx_mouse_cursor_info = info; 72 | } 73 | #endif 74 | 75 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_line_chart_draw.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Line Chart Management (Line Chart) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_window.h" 29 | #include "gx_line_chart.h" 30 | 31 | 32 | /**************************************************************************/ 33 | /* */ 34 | /* FUNCTION RELEASE */ 35 | /* */ 36 | /* _gx_line_chart_draw PORTABLE C */ 37 | /* 6.0 */ 38 | /* AUTHOR */ 39 | /* */ 40 | /* Kenneth Maxwell, Microsoft Corporation */ 41 | /* */ 42 | /* DESCRIPTION */ 43 | /* */ 44 | /* This function draws a line chart */ 45 | /* */ 46 | /* INPUT */ 47 | /* */ 48 | /* chart Line chart control block */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* None */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* _gx_window_draw Draw Window */ 57 | /* _gx_line_chart_axis_draw Draw line chart axis */ 58 | /* _gx_line_chart_data_draw Draw data in line chart */ 59 | /* */ 60 | /* CALLED BY */ 61 | /* */ 62 | /* Application Code */ 63 | /* */ 64 | /* RELEASE HISTORY */ 65 | /* */ 66 | /* DATE NAME DESCRIPTION */ 67 | /* */ 68 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 69 | /* */ 70 | /**************************************************************************/ 71 | VOID _gx_line_chart_draw(GX_LINE_CHART *chart) 72 | { 73 | _gx_window_draw((GX_WINDOW *) chart); 74 | _gx_line_chart_axis_draw(chart); 75 | _gx_line_chart_data_draw(chart); 76 | } 77 | 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_radial_slider_info_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Radial Slider Management (Slider) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | #include "gx_radial_slider.h" 30 | 31 | /**************************************************************************/ 32 | /* */ 33 | /* FUNCTION RELEASE */ 34 | /* */ 35 | /* _gx_radial_slider_info_get PORTABLE C */ 36 | /* 6.0 */ 37 | /* AUTHOR */ 38 | /* */ 39 | /* Kenneth Maxwell, Microsoft Corporation */ 40 | /* */ 41 | /* DESCRIPTION */ 42 | /* */ 43 | /* This function retrieves slider infomation. */ 44 | /* */ 45 | /* INPUT */ 46 | /* */ 47 | /* slider Radial slider control block */ 48 | /* info Retrieved radial slider info */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* None */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* Application Code */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_radial_slider_info_get(GX_RADIAL_SLIDER *slider, GX_RADIAL_SLIDER_INFO **info) 70 | { 71 | /* Copy the new info. */ 72 | *info = &slider -> gx_radial_slider_info; 73 | 74 | return(GX_SUCCESS); 75 | } 76 | 77 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_screen_stack_reset.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Screen Stack Management (Screen Stack) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_widget.h" 29 | #include "gx_screen_stack.h" 30 | 31 | /**************************************************************************/ 32 | /* */ 33 | /* FUNCTION RELEASE */ 34 | /* */ 35 | /* _gx_screen_stack_reset PORTABLE C */ 36 | /* 6.0 */ 37 | /* AUTHOR */ 38 | /* */ 39 | /* Kenneth Maxwell, Microsoft Corporation */ 40 | /* */ 41 | /* DESCRIPTION */ 42 | /* */ 43 | /* This function removes all entries from the screen stack, and make */ 44 | /* the current pointer equal to the stack top. */ 45 | /* */ 46 | /* INPUT */ 47 | /* */ 48 | /* control Pointer of stack entry */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* None */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* Application Code */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_screen_stack_reset(GX_SCREEN_STACK_CONTROL *control) 70 | { 71 | control -> gx_screen_stack_control_top = -1; 72 | return(GX_SUCCESS); 73 | } 74 | 75 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_scroll_wheel_selected_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Scroll Wheel Management (Scroll Wheel) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_scroll_wheel.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gx_scroll_wheel_selected_get PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* This function gets the current selected row index of a scroll wheel */ 43 | /* widget. */ 44 | /* */ 45 | /* INPUT */ 46 | /* */ 47 | /* wheel Scroll wheel control block */ 48 | /* row Selected row to be retrieved */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* None */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* Application Code */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_scroll_wheel_selected_get(GX_SCROLL_WHEEL *wheel, INT *row) 70 | { 71 | *row = wheel -> gx_scroll_wheel_selected_row; 72 | 73 | return GX_SUCCESS; 74 | } 75 | 76 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_system_active_language_set.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** System Management (System) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | #include "gx_display.h" 30 | 31 | 32 | /**************************************************************************/ 33 | /* */ 34 | /* FUNCTION RELEASE */ 35 | /* */ 36 | /* _gx_system_active_language_set PORTABLE C */ 37 | /* 6.0 */ 38 | /* AUTHOR */ 39 | /* */ 40 | /* Kenneth Maxwell, Microsoft Corporation */ 41 | /* */ 42 | /* DESCRIPTION */ 43 | /* */ 44 | /* This service sets the active language (deprecated). */ 45 | /* */ 46 | /* INPUT */ 47 | /* */ 48 | /* language Language table id */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* _gx_display_active_language_set */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* Application Code */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_system_active_language_set(GX_UBYTE language) 70 | { 71 | return _gx_display_active_language_set(_gx_system_display_created_list, language); 72 | } 73 | 74 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_system_bidi_text_disable.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** System Management (System) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | 30 | 31 | /**************************************************************************/ 32 | /* */ 33 | /* FUNCTION RELEASE */ 34 | /* */ 35 | /* _gx_system_bidi_text_disable PORTABLE C */ 36 | /* 6.0 */ 37 | /* AUTHOR */ 38 | /* */ 39 | /* Kenneth Maxwell, Microsoft Corporation */ 40 | /* */ 41 | /* DESCRIPTION */ 42 | /* */ 43 | /* This function disables display of bi-directional text. */ 44 | /* */ 45 | /* INPUT */ 46 | /* */ 47 | /* None */ 48 | /* */ 49 | /* OUTPUT */ 50 | /* */ 51 | /* None */ 52 | /* */ 53 | /* CALLS */ 54 | /* */ 55 | /* None */ 56 | /* */ 57 | /* CALLED BY */ 58 | /* */ 59 | /* GUIX Internal Code */ 60 | /* */ 61 | /* RELEASE HISTORY */ 62 | /* */ 63 | /* DATE NAME DESCRIPTION */ 64 | /* */ 65 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 66 | /* */ 67 | /**************************************************************************/ 68 | #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT) 69 | UINT _gx_system_bidi_text_disable(VOID) 70 | { 71 | _gx_system_bidi_text_enabled = GX_FALSE; 72 | 73 | return GX_SUCCESS; 74 | } 75 | #endif 76 | 77 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_system_bidi_text_enable.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** System Management (System) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | 30 | 31 | /**************************************************************************/ 32 | /* */ 33 | /* FUNCTION RELEASE */ 34 | /* */ 35 | /* _gx_system_bidi_text_enable PORTABLE C */ 36 | /* 6.0 */ 37 | /* AUTHOR */ 38 | /* */ 39 | /* Kenneth Maxwell, Microsoft Corporation */ 40 | /* */ 41 | /* DESCRIPTION */ 42 | /* */ 43 | /* This function enables display of bi-directional text. */ 44 | /* */ 45 | /* INPUT */ 46 | /* */ 47 | /* None */ 48 | /* */ 49 | /* OUTPUT */ 50 | /* */ 51 | /* None */ 52 | /* */ 53 | /* CALLS */ 54 | /* */ 55 | /* None */ 56 | /* */ 57 | /* CALLED BY */ 58 | /* */ 59 | /* GUIX Internal Code */ 60 | /* */ 61 | /* RELEASE HISTORY */ 62 | /* */ 63 | /* DATE NAME DESCRIPTION */ 64 | /* */ 65 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 66 | /* */ 67 | /**************************************************************************/ 68 | #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT) 69 | UINT _gx_system_bidi_text_enable(VOID) 70 | { 71 | _gx_system_bidi_text_enabled = GX_TRUE; 72 | 73 | return GX_SUCCESS; 74 | } 75 | #endif 76 | 77 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_system_clipboard_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** System Management (System) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | 30 | 31 | /**************************************************************************/ 32 | /* */ 33 | /* FUNCTION RELEASE */ 34 | /* */ 35 | /* _gx_system_clipboard_get PORTABLE C */ 36 | /* 6.0 */ 37 | /* AUTHOR */ 38 | /* */ 39 | /* Kenneth Maxwell, Microsoft Corporation */ 40 | /* */ 41 | /* DESCRIPTION */ 42 | /* */ 43 | /* This service puts data to clipboard. */ 44 | /* */ 45 | /* INPUT */ 46 | /* */ 47 | /* data Retrieved clipboard data */ 48 | /* data_size Retrieved clipboard data size */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* None */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* GUIX Internal Code */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_system_clipboard_get(VOID **data, UINT *data_size) 70 | { 71 | 72 | *data = _gx_system_clipboard; 73 | *data_size = _gx_system_clipboard_size; 74 | 75 | return(GX_SUCCESS); 76 | } 77 | 78 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_system_pen_speed_init.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** System Management (System) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gx_system_pen_speed_init PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* This service initiates system pen speed. */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* current Current pen position */ 47 | /* */ 48 | /* OUTPUT */ 49 | /* */ 50 | /* None */ 51 | /* */ 52 | /* CALLS */ 53 | /* */ 54 | /* tx_timer_get Get ThreadX timer tick */ 55 | /* */ 56 | /* CALLED BY */ 57 | /* */ 58 | /* _gx_system_event_send Send GUIX system event */ 59 | /* */ 60 | /* RELEASE HISTORY */ 61 | /* */ 62 | /* DATE NAME DESCRIPTION */ 63 | /* */ 64 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 65 | /* */ 66 | /**************************************************************************/ 67 | VOID _gx_system_pen_speed_init(GX_POINT *current) 68 | { 69 | #ifdef GX_THREADX_BINDING 70 | _gx_system_last_clock = tx_time_get(); 71 | #else 72 | _gx_system_last_clock = GX_SYSTEM_TIME_GET; 73 | #endif 74 | _gx_system_last_pen_point = *current; 75 | _gx_system_pen_speed_x = _gx_system_pen_speed_y = 0; 76 | } 77 | 78 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_system_text_render_style_set.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** System Management (System) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | 30 | 31 | /**************************************************************************/ 32 | /* */ 33 | /* FUNCTION RELEASE */ 34 | /* */ 35 | /* _gx_system_text_render_style_set PORTABLE C */ 36 | /* 6.0 */ 37 | /* AUTHOR */ 38 | /* */ 39 | /* Kenneth Maxwell, Microsoft Corporation */ 40 | /* */ 41 | /* DESCRIPTION */ 42 | /* */ 43 | /* This function sets text render styles. */ 44 | /* */ 45 | /* INPUT */ 46 | /* */ 47 | /* None */ 48 | /* */ 49 | /* OUTPUT */ 50 | /* */ 51 | /* None */ 52 | /* */ 53 | /* CALLS */ 54 | /* */ 55 | /* None */ 56 | /* */ 57 | /* CALLED BY */ 58 | /* */ 59 | /* Application Code */ 60 | /* GUIX Internal Code */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | #if defined(GX_THAI_GLYPH_SHAPING_SUPPORT) 70 | UINT _gx_system_text_render_style_set(GX_UBYTE style) 71 | { 72 | _gx_system_text_render_style = style; 73 | 74 | return GX_SUCCESS; 75 | } 76 | #endif 77 | 78 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_widget_draw_set.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Widget Management (Widget) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_widget.h" 29 | 30 | 31 | /**************************************************************************/ 32 | /* */ 33 | /* FUNCTION RELEASE */ 34 | /* */ 35 | /* _gx_widget_draw_set PORTABLE C */ 36 | /* 6.0 */ 37 | /* AUTHOR */ 38 | /* */ 39 | /* Kenneth Maxwell, Microsoft Corporation */ 40 | /* */ 41 | /* DESCRIPTION */ 42 | /* */ 43 | /* This function overrides the default drawing function of the widget. */ 44 | /* */ 45 | /* INPUT */ 46 | /* */ 47 | /* widget Widget control block */ 48 | /* draw_func pointer to drawing function */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* None */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* application */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_widget_draw_set(GX_WIDGET *widget, VOID (*draw_func)(GX_WIDGET *)) 70 | { 71 | 72 | /* Update event processing function pointer */ 73 | widget -> gx_widget_draw_function = draw_func; 74 | 75 | return(GX_SUCCESS); 76 | } 77 | 78 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_widget_first_child_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Widget Management (Widget) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_widget.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gx_widget_first_child_get PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* This function returns the first child of the parent. */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* parent Pointer to parent widget */ 47 | /* child_return Pointer to destination for */ 48 | /* found widget */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* None */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* application */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_widget_first_child_get(GX_WIDGET *parent, GX_WIDGET **child_return) 70 | { 71 | *child_return = parent -> gx_widget_first_child; 72 | return GX_SUCCESS; 73 | } 74 | 75 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_widget_free.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Widget Management (Widget) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | #include "gx_widget.h" 30 | #include "gx_utility.h" 31 | 32 | 33 | /**************************************************************************/ 34 | /* */ 35 | /* FUNCTION RELEASE */ 36 | /* */ 37 | /* _gx_widget_free PORTABLE C */ 38 | /* 6.0 */ 39 | /* AUTHOR */ 40 | /* */ 41 | /* Kenneth Maxwell, Microsoft Corporation */ 42 | /* */ 43 | /* DESCRIPTION */ 44 | /* */ 45 | /* This function release the memory associated with a wiget control */ 46 | /* block. */ 47 | /* */ 48 | /* INPUT */ 49 | /* */ 50 | /* widget Widget control block */ 51 | /* */ 52 | /* OUTPUT */ 53 | /* */ 54 | /* status Completion status */ 55 | /* */ 56 | /* CALLS */ 57 | /* */ 58 | /* _gx_system_memory_free */ 59 | /* */ 60 | /* CALLED BY */ 61 | /* */ 62 | /* Application Code */ 63 | /* GUIX Internal Code */ 64 | /* */ 65 | /* RELEASE HISTORY */ 66 | /* */ 67 | /* DATE NAME DESCRIPTION */ 68 | /* */ 69 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 70 | /* */ 71 | /**************************************************************************/ 72 | UINT _gx_widget_free(GX_WIDGET *widget) 73 | { 74 | _gx_system_memory_free(widget); 75 | 76 | return GX_SUCCESS; 77 | } 78 | 79 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_widget_last_child_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Widget Management (Widget) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_widget.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gx_widget_last_child_get PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* This function returns the last child of the parent. */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* parent Pointer to parent widget */ 47 | /* child_return Pointer to destination for */ 48 | /* found widget */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* None */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* application */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_widget_last_child_get(GX_WIDGET *parent, GX_WIDGET **child_return) 70 | { 71 | *child_return = parent -> gx_widget_last_child; 72 | return GX_SUCCESS; 73 | } 74 | 75 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_widget_next_sibling_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Widget Management (Widget) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_widget.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gx_widget_next_sibling_get PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* This function returns the next sibling of the current widget. */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* current Pointer to current widget */ 47 | /* sibling_return Pointer to destination for */ 48 | /* found widget */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* None */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* application */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_widget_next_sibling_get(GX_WIDGET *current, GX_WIDGET **sibling_return) 70 | { 71 | *sibling_return = current -> gx_widget_next; 72 | return GX_SUCCESS; 73 | } 74 | 75 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_widget_parent_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Widget Management (Widget) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_widget.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gx_widget_parent_get PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* This function returns the parent of the current widget. */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* current Pointer to current widget */ 47 | /* parent_return Pointer to destination for */ 48 | /* found widget */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* None */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* application */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_widget_parent_get(GX_WIDGET *current, GX_WIDGET **parent_return) 70 | { 71 | *parent_return = current -> gx_widget_parent; 72 | return GX_SUCCESS; 73 | } 74 | 75 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gx_widget_previous_sibling_get.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Widget Management (Widget) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_widget.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gx_widget_previous_sibling_get PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* This function returns the previous sibling of the current widget. */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* current Pointer to current widget */ 47 | /* sibling_return Pointer to destination for */ 48 | /* found widget */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* None */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* application */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gx_widget_previous_sibling_get(GX_WIDGET *current, GX_WIDGET **sibling_return) 70 | { 71 | *sibling_return = current -> gx_widget_previous; 72 | return GX_SUCCESS; 73 | } 74 | 75 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gxe_system_event_fold.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** System Management (System) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gxe_system_event_fold PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* This function checks for errors in system event send call. */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* event Pointer to event */ 47 | /* */ 48 | /* OUTPUT */ 49 | /* */ 50 | /* status Completion status */ 51 | /* */ 52 | /* CALLS */ 53 | /* */ 54 | /* _gx_system_event_fold Actual system event fold call */ 55 | /* */ 56 | /* CALLED BY */ 57 | /* */ 58 | /* GUIX Application */ 59 | /* */ 60 | /* RELEASE HISTORY */ 61 | /* */ 62 | /* DATE NAME DESCRIPTION */ 63 | /* */ 64 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 65 | /* */ 66 | /**************************************************************************/ 67 | UINT _gxe_system_event_fold(GX_EVENT *event_ptr) 68 | { 69 | UINT status = GX_SUCCESS; 70 | 71 | /* Check for invalid pointer. */ 72 | if (event_ptr == GX_NULL) 73 | { 74 | return(GX_PTR_ERROR); 75 | } 76 | 77 | /* Call actual system event send. */ 78 | status = _gx_system_event_fold(event_ptr); 79 | 80 | /* Return status. */ 81 | return(status); 82 | } 83 | 84 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gxe_system_event_send.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** System Management (System) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | 30 | /**************************************************************************/ 31 | /* */ 32 | /* FUNCTION RELEASE */ 33 | /* */ 34 | /* _gxe_system_event_send PORTABLE C */ 35 | /* 6.0 */ 36 | /* AUTHOR */ 37 | /* */ 38 | /* Kenneth Maxwell, Microsoft Corporation */ 39 | /* */ 40 | /* DESCRIPTION */ 41 | /* */ 42 | /* This function checks for errors in system event send call. */ 43 | /* */ 44 | /* INPUT */ 45 | /* */ 46 | /* event Pointer to event */ 47 | /* */ 48 | /* OUTPUT */ 49 | /* */ 50 | /* status Completion status */ 51 | /* */ 52 | /* CALLS */ 53 | /* */ 54 | /* _gx_system_event_send Actual system event send call */ 55 | /* */ 56 | /* CALLED BY */ 57 | /* */ 58 | /* GUIX Application */ 59 | /* */ 60 | /* RELEASE HISTORY */ 61 | /* */ 62 | /* DATE NAME DESCRIPTION */ 63 | /* */ 64 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 65 | /* */ 66 | /**************************************************************************/ 67 | UINT _gxe_system_event_send(GX_EVENT *event_ptr) 68 | { 69 | UINT status = GX_SUCCESS; 70 | 71 | /* Check for invalid pointer. */ 72 | if (event_ptr == GX_NULL) 73 | { 74 | return(GX_PTR_ERROR); 75 | } 76 | 77 | /* Call actual system event send. */ 78 | status = _gx_system_event_send(event_ptr); 79 | 80 | /* Return status. */ 81 | return(status); 82 | } 83 | 84 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gxe_system_start.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** System Management (System) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | /* Include necessary system files. */ 25 | 26 | #include "gx_api.h" 27 | #include "gx_system.h" 28 | 29 | /* Bring in externs for caller checking code. */ 30 | GX_CALLER_CHECKING_EXTERNS 31 | 32 | /**************************************************************************/ 33 | /* */ 34 | /* FUNCTION RELEASE */ 35 | /* */ 36 | /* _gxe_system_start PORTABLE C */ 37 | /* 6.0 */ 38 | /* AUTHOR */ 39 | /* */ 40 | /* Kenneth Maxwell, Microsoft Corporation */ 41 | /* */ 42 | /* DESCRIPTION */ 43 | /* */ 44 | /* This function checks for errors in system start call. */ 45 | /* */ 46 | /* INPUT */ 47 | /* */ 48 | /* None */ 49 | /* */ 50 | /* OUTPUT */ 51 | /* */ 52 | /* status Completion status */ 53 | /* */ 54 | /* CALLS */ 55 | /* */ 56 | /* _gx_system_start Actual system start call */ 57 | /* */ 58 | /* CALLED BY */ 59 | /* */ 60 | /* Application Code */ 61 | /* */ 62 | /* RELEASE HISTORY */ 63 | /* */ 64 | /* DATE NAME DESCRIPTION */ 65 | /* */ 66 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 67 | /* */ 68 | /**************************************************************************/ 69 | UINT _gxe_system_start(VOID) 70 | { 71 | UINT status; 72 | 73 | /* Check for invalid caller. */ 74 | GX_INIT_AND_THREADS_CALLER_CHECKING 75 | 76 | /* Call actual system start. */ 77 | status = _gx_system_start(); 78 | 79 | /* Return status. */ 80 | return(status); 81 | } 82 | 83 | -------------------------------------------------------------------------------- /Core/GUIX/common/src/gxe_widget_free.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************/ 2 | /* */ 3 | /* Copyright (c) Microsoft Corporation. All rights reserved. */ 4 | /* */ 5 | /* This software is licensed under the Microsoft Software License */ 6 | /* Terms for Microsoft Azure RTOS. Full text of the license can be */ 7 | /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ 8 | /* and in the root directory of this software. */ 9 | /* */ 10 | /**************************************************************************/ 11 | 12 | 13 | /**************************************************************************/ 14 | /**************************************************************************/ 15 | /** */ 16 | /** GUIX Component */ 17 | /** */ 18 | /** Widget Management (Widget) */ 19 | /** */ 20 | /**************************************************************************/ 21 | 22 | #define GX_SOURCE_CODE 23 | 24 | 25 | /* Include necessary system files. */ 26 | 27 | #include "gx_api.h" 28 | #include "gx_system.h" 29 | #include "gx_widget.h" 30 | #include "gx_utility.h" 31 | 32 | 33 | /**************************************************************************/ 34 | /* */ 35 | /* FUNCTION RELEASE */ 36 | /* */ 37 | /* _gxe_widget_free PORTABLE C */ 38 | /* 6.0 */ 39 | /* AUTHOR */ 40 | /* */ 41 | /* Kenneth Maxwell, Microsoft Corporation */ 42 | /* */ 43 | /* DESCRIPTION */ 44 | /* */ 45 | /* This function checks for errors in widget free call. */ 46 | /* */ 47 | /* INPUT */ 48 | /* */ 49 | /* widget Widget control block */ 50 | /* */ 51 | /* OUTPUT */ 52 | /* */ 53 | /* status Completion status */ 54 | /* */ 55 | /* CALLS */ 56 | /* */ 57 | /* _gx_widget_free Actual widget free call */ 58 | /* */ 59 | /* CALLED BY */ 60 | /* */ 61 | /* Application Code */ 62 | /* */ 63 | /* RELEASE HISTORY */ 64 | /* */ 65 | /* DATE NAME DESCRIPTION */ 66 | /* */ 67 | /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */ 68 | /* */ 69 | /**************************************************************************/ 70 | UINT _gxe_widget_free(GX_WIDGET *widget) 71 | { 72 | if (!widget) 73 | { 74 | return GX_PTR_ERROR; 75 | } 76 | if (_gx_system_memory_free == GX_NULL) 77 | { 78 | return GX_SYSTEM_MEMORY_ERROR; 79 | } 80 | return _gx_widget_free(widget); 81 | } 82 | 83 | -------------------------------------------------------------------------------- /Core/Inc/gpio.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * File Name : gpio.h 4 | * Description : This file contains all the functions prototypes for 5 | * the gpio 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2020 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /* Define to prevent recursive inclusion -------------------------------------*/ 21 | #ifndef __gpio_H 22 | #define __gpio_H 23 | #ifdef __cplusplus 24 | extern "C" { 25 | #endif 26 | 27 | /* Includes ------------------------------------------------------------------*/ 28 | #include "main.h" 29 | 30 | /* USER CODE BEGIN Includes */ 31 | 32 | /* USER CODE END Includes */ 33 | 34 | /* USER CODE BEGIN Private defines */ 35 | 36 | /* USER CODE END Private defines */ 37 | 38 | void MX_GPIO_Init(void); 39 | 40 | /* USER CODE BEGIN Prototypes */ 41 | 42 | /* USER CODE END Prototypes */ 43 | 44 | #ifdef __cplusplus 45 | } 46 | #endif 47 | #endif /*__ pinoutConfig_H */ 48 | 49 | /** 50 | * @} 51 | */ 52 | 53 | /** 54 | * @} 55 | */ 56 | 57 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 58 | -------------------------------------------------------------------------------- /Core/Inc/i2c.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * File Name : I2C.h 4 | * Description : This file provides code for the configuration 5 | * of the I2C instances. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2020 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | /* Define to prevent recursive inclusion -------------------------------------*/ 20 | #ifndef __i2c_H 21 | #define __i2c_H 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | /* Includes ------------------------------------------------------------------*/ 27 | #include "main.h" 28 | 29 | /* USER CODE BEGIN Includes */ 30 | 31 | /* USER CODE END Includes */ 32 | 33 | extern I2C_HandleTypeDef hi2c1; 34 | 35 | /* USER CODE BEGIN Private defines */ 36 | 37 | /* USER CODE END Private defines */ 38 | 39 | void MX_I2C1_Init(void); 40 | 41 | /* USER CODE BEGIN Prototypes */ 42 | 43 | /* USER CODE END Prototypes */ 44 | 45 | #ifdef __cplusplus 46 | } 47 | #endif 48 | #endif /*__ i2c_H */ 49 | 50 | /** 51 | * @} 52 | */ 53 | 54 | /** 55 | * @} 56 | */ 57 | 58 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 59 | -------------------------------------------------------------------------------- /Core/Inc/main.h: -------------------------------------------------------------------------------- 1 | /* USER CODE BEGIN Header */ 2 | /** 3 | ****************************************************************************** 4 | * @file : main.h 5 | * @brief : Header for main.c file. 6 | * This file contains the common defines of the application. 7 | ****************************************************************************** 8 | * @attention 9 | * 10 | *

© Copyright (c) 2020 STMicroelectronics. 11 | * All rights reserved.

12 | * 13 | * This software component is licensed by ST under BSD 3-Clause license, 14 | * the "License"; You may not use this file except in compliance with the 15 | * License. You may obtain a copy of the License at: 16 | * opensource.org/licenses/BSD-3-Clause 17 | * 18 | ****************************************************************************** 19 | */ 20 | /* USER CODE END Header */ 21 | 22 | /* Define to prevent recursive inclusion -------------------------------------*/ 23 | #ifndef __MAIN_H 24 | #define __MAIN_H 25 | 26 | #ifdef __cplusplus 27 | extern "C" { 28 | #endif 29 | 30 | /* Includes ------------------------------------------------------------------*/ 31 | #include "stm32f4xx_hal.h" 32 | #include "stm32f4xx_hal.h" 33 | 34 | /* Private includes ----------------------------------------------------------*/ 35 | /* USER CODE BEGIN Includes */ 36 | 37 | /* USER CODE END Includes */ 38 | 39 | /* Exported types ------------------------------------------------------------*/ 40 | /* USER CODE BEGIN ET */ 41 | 42 | /* USER CODE END ET */ 43 | 44 | /* Exported constants --------------------------------------------------------*/ 45 | /* USER CODE BEGIN EC */ 46 | 47 | /* USER CODE END EC */ 48 | 49 | /* Exported macro ------------------------------------------------------------*/ 50 | /* USER CODE BEGIN EM */ 51 | 52 | /* USER CODE END EM */ 53 | 54 | /* Exported functions prototypes ---------------------------------------------*/ 55 | void Error_Handler(void); 56 | 57 | /* USER CODE BEGIN EFP */ 58 | 59 | /* USER CODE END EFP */ 60 | 61 | /* Private defines -----------------------------------------------------------*/ 62 | #define KEY_LEFT_Pin GPIO_PIN_2 63 | #define KEY_LEFT_GPIO_Port GPIOE 64 | #define KEY_DOWN_Pin GPIO_PIN_3 65 | #define KEY_DOWN_GPIO_Port GPIOE 66 | #define KEY_RIGHT_Pin GPIO_PIN_4 67 | #define KEY_RIGHT_GPIO_Port GPIOE 68 | #define BEEP_Pin GPIO_PIN_8 69 | #define BEEP_GPIO_Port GPIOF 70 | #define LED_RED_Pin GPIO_PIN_9 71 | #define LED_RED_GPIO_Port GPIOF 72 | #define LED_GREEN_Pin GPIO_PIN_10 73 | #define LED_GREEN_GPIO_Port GPIOF 74 | /* USER CODE BEGIN Private defines */ 75 | 76 | /* USER CODE END Private defines */ 77 | 78 | #ifdef __cplusplus 79 | } 80 | #endif 81 | 82 | #endif /* __MAIN_H */ 83 | 84 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 85 | -------------------------------------------------------------------------------- /Core/Inc/stm32f4xx_it.h: -------------------------------------------------------------------------------- 1 | /* USER CODE BEGIN Header */ 2 | /** 3 | ****************************************************************************** 4 | * @file stm32f4xx_it.h 5 | * @brief This file contains the headers of the interrupt handlers. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2020 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | /* USER CODE END Header */ 20 | 21 | /* Define to prevent recursive inclusion -------------------------------------*/ 22 | #ifndef __STM32F4xx_IT_H 23 | #define __STM32F4xx_IT_H 24 | 25 | #ifdef __cplusplus 26 | extern "C" { 27 | #endif 28 | 29 | /* Private includes ----------------------------------------------------------*/ 30 | /* USER CODE BEGIN Includes */ 31 | 32 | /* USER CODE END Includes */ 33 | 34 | /* Exported types ------------------------------------------------------------*/ 35 | /* USER CODE BEGIN ET */ 36 | 37 | /* USER CODE END ET */ 38 | 39 | /* Exported constants --------------------------------------------------------*/ 40 | /* USER CODE BEGIN EC */ 41 | 42 | /* USER CODE END EC */ 43 | 44 | /* Exported macro ------------------------------------------------------------*/ 45 | /* USER CODE BEGIN EM */ 46 | 47 | /* USER CODE END EM */ 48 | 49 | /* Exported functions prototypes ---------------------------------------------*/ 50 | void NMI_Handler(void); 51 | void HardFault_Handler(void); 52 | void MemManage_Handler(void); 53 | void BusFault_Handler(void); 54 | void UsageFault_Handler(void); 55 | void SVC_Handler(void); 56 | void DebugMon_Handler(void); 57 | void PendSV_Handler(void); 58 | void SysTick_Handler(void); 59 | void USART1_IRQHandler(void); 60 | /* USER CODE BEGIN EFP */ 61 | 62 | /* USER CODE END EFP */ 63 | 64 | #ifdef __cplusplus 65 | } 66 | #endif 67 | 68 | #endif /* __STM32F4xx_IT_H */ 69 | 70 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 71 | -------------------------------------------------------------------------------- /Core/Inc/usart.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * File Name : USART.h 4 | * Description : This file provides code for the configuration 5 | * of the USART instances. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2020 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | /* Define to prevent recursive inclusion -------------------------------------*/ 20 | #ifndef __usart_H 21 | #define __usart_H 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif 25 | 26 | /* Includes ------------------------------------------------------------------*/ 27 | #include "main.h" 28 | 29 | /* USER CODE BEGIN Includes */ 30 | 31 | /* USER CODE END Includes */ 32 | 33 | extern UART_HandleTypeDef huart1; 34 | 35 | /* USER CODE BEGIN Private defines */ 36 | 37 | /* USER CODE END Private defines */ 38 | 39 | void MX_USART1_UART_Init(void); 40 | 41 | /* USER CODE BEGIN Prototypes */ 42 | 43 | /* USER CODE END Prototypes */ 44 | 45 | #ifdef __cplusplus 46 | } 47 | #endif 48 | #endif /*__ usart_H */ 49 | 50 | /** 51 | * @} 52 | */ 53 | 54 | /** 55 | * @} 56 | */ 57 | 58 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 59 | -------------------------------------------------------------------------------- /Core/Src/gpio.c: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * File Name : gpio.c 4 | * Description : This file provides code for the configuration 5 | * of all used GPIO pins. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2020 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /* Includes ------------------------------------------------------------------*/ 21 | #include "gpio.h" 22 | /* USER CODE BEGIN 0 */ 23 | 24 | /* USER CODE END 0 */ 25 | 26 | /*----------------------------------------------------------------------------*/ 27 | /* Configure GPIO */ 28 | /*----------------------------------------------------------------------------*/ 29 | /* USER CODE BEGIN 1 */ 30 | 31 | /* USER CODE END 1 */ 32 | 33 | /** Configure pins as 34 | * Analog 35 | * Input 36 | * Output 37 | * EVENT_OUT 38 | * EXTI 39 | */ 40 | void MX_GPIO_Init(void) 41 | { 42 | 43 | GPIO_InitTypeDef GPIO_InitStruct = {0}; 44 | 45 | /* GPIO Ports Clock Enable */ 46 | __HAL_RCC_GPIOE_CLK_ENABLE(); 47 | __HAL_RCC_GPIOF_CLK_ENABLE(); 48 | __HAL_RCC_GPIOA_CLK_ENABLE(); 49 | __HAL_RCC_GPIOB_CLK_ENABLE(); 50 | 51 | /*Configure GPIO pin Output Level */ 52 | HAL_GPIO_WritePin(GPIOF, BEEP_Pin|LED_RED_Pin|LED_GREEN_Pin, GPIO_PIN_RESET); 53 | 54 | /*Configure GPIO pins : PEPin PEPin PEPin */ 55 | GPIO_InitStruct.Pin = KEY_LEFT_Pin|KEY_DOWN_Pin|KEY_RIGHT_Pin; 56 | GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 57 | GPIO_InitStruct.Pull = GPIO_PULLUP; 58 | HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); 59 | 60 | /*Configure GPIO pins : PFPin PFPin PFPin */ 61 | GPIO_InitStruct.Pin = BEEP_Pin|LED_RED_Pin|LED_GREEN_Pin; 62 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 63 | GPIO_InitStruct.Pull = GPIO_NOPULL; 64 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 65 | HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); 66 | 67 | } 68 | 69 | /* USER CODE BEGIN 2 */ 70 | 71 | /* USER CODE END 2 */ 72 | 73 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 74 | -------------------------------------------------------------------------------- /Core/Src/i2c.c: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * File Name : I2C.c 4 | * Description : This file provides code for the configuration 5 | * of the I2C instances. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2020 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /* Includes ------------------------------------------------------------------*/ 21 | #include "i2c.h" 22 | 23 | /* USER CODE BEGIN 0 */ 24 | 25 | /* USER CODE END 0 */ 26 | 27 | I2C_HandleTypeDef hi2c1; 28 | 29 | /* I2C1 init function */ 30 | void MX_I2C1_Init(void) 31 | { 32 | 33 | hi2c1.Instance = I2C1; 34 | hi2c1.Init.ClockSpeed = 100000; 35 | hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; 36 | hi2c1.Init.OwnAddress1 = 32; 37 | hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; 38 | hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; 39 | hi2c1.Init.OwnAddress2 = 0; 40 | hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; 41 | hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; 42 | if (HAL_I2C_Init(&hi2c1) != HAL_OK) 43 | { 44 | Error_Handler(); 45 | } 46 | 47 | } 48 | 49 | void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle) 50 | { 51 | 52 | GPIO_InitTypeDef GPIO_InitStruct = {0}; 53 | if(i2cHandle->Instance==I2C1) 54 | { 55 | /* USER CODE BEGIN I2C1_MspInit 0 */ 56 | 57 | /* USER CODE END I2C1_MspInit 0 */ 58 | 59 | __HAL_RCC_GPIOB_CLK_ENABLE(); 60 | /**I2C1 GPIO Configuration 61 | PB6 ------> I2C1_SCL 62 | PB7 ------> I2C1_SDA 63 | */ 64 | GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; 65 | GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; 66 | GPIO_InitStruct.Pull = GPIO_PULLUP; 67 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 68 | GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; 69 | HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 70 | 71 | /* I2C1 clock enable */ 72 | __HAL_RCC_I2C1_CLK_ENABLE(); 73 | /* USER CODE BEGIN I2C1_MspInit 1 */ 74 | 75 | /* USER CODE END I2C1_MspInit 1 */ 76 | } 77 | } 78 | 79 | void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle) 80 | { 81 | 82 | if(i2cHandle->Instance==I2C1) 83 | { 84 | /* USER CODE BEGIN I2C1_MspDeInit 0 */ 85 | 86 | /* USER CODE END I2C1_MspDeInit 0 */ 87 | /* Peripheral clock disable */ 88 | __HAL_RCC_I2C1_CLK_DISABLE(); 89 | 90 | /**I2C1 GPIO Configuration 91 | PB6 ------> I2C1_SCL 92 | PB7 ------> I2C1_SDA 93 | */ 94 | HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7); 95 | 96 | /* USER CODE BEGIN I2C1_MspDeInit 1 */ 97 | 98 | /* USER CODE END I2C1_MspDeInit 1 */ 99 | } 100 | } 101 | 102 | /* USER CODE BEGIN 1 */ 103 | 104 | /* USER CODE END 1 */ 105 | 106 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 107 | -------------------------------------------------------------------------------- /Core/Src/stm32f4xx_hal_msp.c: -------------------------------------------------------------------------------- 1 | /* USER CODE BEGIN Header */ 2 | /** 3 | ****************************************************************************** 4 | * File Name : stm32f4xx_hal_msp.c 5 | * Description : This file provides code for the MSP Initialization 6 | * and de-Initialization codes. 7 | ****************************************************************************** 8 | * @attention 9 | * 10 | *

© Copyright (c) 2020 STMicroelectronics. 11 | * All rights reserved.

12 | * 13 | * This software component is licensed by ST under BSD 3-Clause license, 14 | * the "License"; You may not use this file except in compliance with the 15 | * License. You may obtain a copy of the License at: 16 | * opensource.org/licenses/BSD-3-Clause 17 | * 18 | ****************************************************************************** 19 | */ 20 | /* USER CODE END Header */ 21 | 22 | /* Includes ------------------------------------------------------------------*/ 23 | #include "main.h" 24 | /* USER CODE BEGIN Includes */ 25 | 26 | /* USER CODE END Includes */ 27 | 28 | /* Private typedef -----------------------------------------------------------*/ 29 | /* USER CODE BEGIN TD */ 30 | 31 | /* USER CODE END TD */ 32 | 33 | /* Private define ------------------------------------------------------------*/ 34 | /* USER CODE BEGIN Define */ 35 | 36 | /* USER CODE END Define */ 37 | 38 | /* Private macro -------------------------------------------------------------*/ 39 | /* USER CODE BEGIN Macro */ 40 | 41 | /* USER CODE END Macro */ 42 | 43 | /* Private variables ---------------------------------------------------------*/ 44 | /* USER CODE BEGIN PV */ 45 | 46 | /* USER CODE END PV */ 47 | 48 | /* Private function prototypes -----------------------------------------------*/ 49 | /* USER CODE BEGIN PFP */ 50 | 51 | /* USER CODE END PFP */ 52 | 53 | /* External functions --------------------------------------------------------*/ 54 | /* USER CODE BEGIN ExternalFunctions */ 55 | 56 | /* USER CODE END ExternalFunctions */ 57 | 58 | /* USER CODE BEGIN 0 */ 59 | 60 | /* USER CODE END 0 */ 61 | /** 62 | * Initializes the Global MSP. 63 | */ 64 | void HAL_MspInit(void) 65 | { 66 | /* USER CODE BEGIN MspInit 0 */ 67 | 68 | /* USER CODE END MspInit 0 */ 69 | 70 | __HAL_RCC_SYSCFG_CLK_ENABLE(); 71 | __HAL_RCC_PWR_CLK_ENABLE(); 72 | 73 | /* System interrupt init*/ 74 | 75 | /* USER CODE BEGIN MspInit 1 */ 76 | 77 | /* USER CODE END MspInit 1 */ 78 | } 79 | 80 | /* USER CODE BEGIN 1 */ 81 | 82 | /* USER CODE END 1 */ 83 | 84 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 85 | -------------------------------------------------------------------------------- /Core/Src/syscalls.c: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file syscalls.c 4 | * @author Auto-generated by STM32CubeIDE 5 | * @brief STM32CubeIDE Minimal System calls file 6 | * 7 | * For more information about which c-functions 8 | * need which of these lowlevel functions 9 | * please consult the Newlib libc-manual 10 | ****************************************************************************** 11 | * @attention 12 | * 13 | *

© Copyright (c) 2020 STMicroelectronics. 14 | * All rights reserved.

15 | * 16 | * This software component is licensed by ST under BSD 3-Clause license, 17 | * the "License"; You may not use this file except in compliance with the 18 | * License. You may obtain a copy of the License at: 19 | * opensource.org/licenses/BSD-3-Clause 20 | * 21 | ****************************************************************************** 22 | */ 23 | 24 | /* Includes */ 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | 34 | 35 | /* Variables */ 36 | //#undef errno 37 | extern int errno; 38 | extern int __io_putchar(int ch) __attribute__((weak)); 39 | extern int __io_getchar(void) __attribute__((weak)); 40 | 41 | register char * stack_ptr asm("sp"); 42 | 43 | char *__env[1] = { 0 }; 44 | char **environ = __env; 45 | 46 | 47 | /* Functions */ 48 | void initialise_monitor_handles() 49 | { 50 | } 51 | 52 | int _getpid(void) 53 | { 54 | return 1; 55 | } 56 | 57 | int _kill(int pid, int sig) 58 | { 59 | errno = EINVAL; 60 | return -1; 61 | } 62 | 63 | void _exit (int status) 64 | { 65 | _kill(status, -1); 66 | while (1) {} /* Make sure we hang here */ 67 | } 68 | 69 | __attribute__((weak)) int _read(int file, char *ptr, int len) 70 | { 71 | int DataIdx; 72 | 73 | for (DataIdx = 0; DataIdx < len; DataIdx++) 74 | { 75 | *ptr++ = __io_getchar(); 76 | } 77 | 78 | return len; 79 | } 80 | 81 | __attribute__((weak)) int _write(int file, char *ptr, int len) 82 | { 83 | int DataIdx; 84 | 85 | for (DataIdx = 0; DataIdx < len; DataIdx++) 86 | { 87 | __io_putchar(*ptr++); 88 | } 89 | return len; 90 | } 91 | 92 | int _close(int file) 93 | { 94 | return -1; 95 | } 96 | 97 | 98 | int _fstat(int file, struct stat *st) 99 | { 100 | st->st_mode = S_IFCHR; 101 | return 0; 102 | } 103 | 104 | int _isatty(int file) 105 | { 106 | return 1; 107 | } 108 | 109 | int _lseek(int file, int ptr, int dir) 110 | { 111 | return 0; 112 | } 113 | 114 | int _open(char *path, int flags, ...) 115 | { 116 | /* Pretend like we always fail */ 117 | return -1; 118 | } 119 | 120 | int _wait(int *status) 121 | { 122 | errno = ECHILD; 123 | return -1; 124 | } 125 | 126 | int _unlink(char *name) 127 | { 128 | errno = ENOENT; 129 | return -1; 130 | } 131 | 132 | int _times(struct tms *buf) 133 | { 134 | return -1; 135 | } 136 | 137 | int _stat(char *file, struct stat *st) 138 | { 139 | st->st_mode = S_IFCHR; 140 | return 0; 141 | } 142 | 143 | int _link(char *old, char *new) 144 | { 145 | errno = EMLINK; 146 | return -1; 147 | } 148 | 149 | int _fork(void) 150 | { 151 | errno = EAGAIN; 152 | return -1; 153 | } 154 | 155 | int _execve(char *name, char **argv, char **env) 156 | { 157 | errno = ENOMEM; 158 | return -1; 159 | } 160 | -------------------------------------------------------------------------------- /Core/Src/sysmem.c: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file sysmem.c 4 | * @author Auto-generated by STM32CubeIDE 5 | * @brief STM32CubeIDE Minimal System Memory calls file 6 | * 7 | * For more information about which c-functions 8 | * need which of these lowlevel functions 9 | * please consult the Newlib libc-manual 10 | ****************************************************************************** 11 | * @attention 12 | * 13 | *

© Copyright (c) 2020 STMicroelectronics. 14 | * All rights reserved.

15 | * 16 | * This software component is licensed by ST under BSD 3-Clause license, 17 | * the "License"; You may not use this file except in compliance with the 18 | * License. You may obtain a copy of the License at: 19 | * opensource.org/licenses/BSD-3-Clause 20 | * 21 | ****************************************************************************** 22 | */ 23 | 24 | /* Includes */ 25 | #include 26 | #include 27 | 28 | /* Variables */ 29 | extern int errno; 30 | register char * stack_ptr asm("sp"); 31 | 32 | /* Functions */ 33 | 34 | /** 35 | _sbrk 36 | Increase program data space. Malloc and related functions depend on this 37 | **/ 38 | caddr_t _sbrk(int incr) 39 | { 40 | extern char end asm("end"); 41 | static char *heap_end; 42 | char *prev_heap_end; 43 | 44 | if (heap_end == 0) 45 | heap_end = &end; 46 | 47 | prev_heap_end = heap_end; 48 | if (heap_end + incr > stack_ptr) 49 | { 50 | errno = ENOMEM; 51 | return (caddr_t) -1; 52 | } 53 | 54 | heap_end += incr; 55 | 56 | return (caddr_t) prev_heap_end; 57 | } 58 | 59 | -------------------------------------------------------------------------------- /Core/Src/usart.c: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * File Name : USART.c 4 | * Description : This file provides code for the configuration 5 | * of the USART instances. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2020 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /* Includes ------------------------------------------------------------------*/ 21 | #include "usart.h" 22 | 23 | /* USER CODE BEGIN 0 */ 24 | 25 | /* USER CODE END 0 */ 26 | 27 | UART_HandleTypeDef huart1; 28 | 29 | /* USART1 init function */ 30 | 31 | void MX_USART1_UART_Init(void) 32 | { 33 | 34 | huart1.Instance = USART1; 35 | huart1.Init.BaudRate = 115200; 36 | huart1.Init.WordLength = UART_WORDLENGTH_8B; 37 | huart1.Init.StopBits = UART_STOPBITS_1; 38 | huart1.Init.Parity = UART_PARITY_NONE; 39 | huart1.Init.Mode = UART_MODE_TX_RX; 40 | huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; 41 | huart1.Init.OverSampling = UART_OVERSAMPLING_16; 42 | if (HAL_UART_Init(&huart1) != HAL_OK) 43 | { 44 | Error_Handler(); 45 | } 46 | 47 | } 48 | 49 | void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) 50 | { 51 | 52 | GPIO_InitTypeDef GPIO_InitStruct = {0}; 53 | if(uartHandle->Instance==USART1) 54 | { 55 | /* USER CODE BEGIN USART1_MspInit 0 */ 56 | 57 | /* USER CODE END USART1_MspInit 0 */ 58 | /* USART1 clock enable */ 59 | __HAL_RCC_USART1_CLK_ENABLE(); 60 | 61 | __HAL_RCC_GPIOA_CLK_ENABLE(); 62 | /**USART1 GPIO Configuration 63 | PA9 ------> USART1_TX 64 | PA10 ------> USART1_RX 65 | */ 66 | GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; 67 | GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 68 | GPIO_InitStruct.Pull = GPIO_NOPULL; 69 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 70 | GPIO_InitStruct.Alternate = GPIO_AF7_USART1; 71 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 72 | 73 | /* USART1 interrupt Init */ 74 | HAL_NVIC_SetPriority(USART1_IRQn, 0, 0); 75 | HAL_NVIC_EnableIRQ(USART1_IRQn); 76 | /* USER CODE BEGIN USART1_MspInit 1 */ 77 | 78 | /* USER CODE END USART1_MspInit 1 */ 79 | } 80 | } 81 | 82 | void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) 83 | { 84 | 85 | if(uartHandle->Instance==USART1) 86 | { 87 | /* USER CODE BEGIN USART1_MspDeInit 0 */ 88 | 89 | /* USER CODE END USART1_MspDeInit 0 */ 90 | /* Peripheral clock disable */ 91 | __HAL_RCC_USART1_CLK_DISABLE(); 92 | 93 | /**USART1 GPIO Configuration 94 | PA9 ------> USART1_TX 95 | PA10 ------> USART1_RX 96 | */ 97 | HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); 98 | 99 | /* USART1 interrupt Deinit */ 100 | HAL_NVIC_DisableIRQ(USART1_IRQn); 101 | /* USER CODE BEGIN USART1_MspDeInit 1 */ 102 | 103 | /* USER CODE END USART1_MspDeInit 1 */ 104 | } 105 | } 106 | 107 | /* USER CODE BEGIN 1 */ 108 | 109 | /* USER CODE END 1 */ 110 | 111 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 112 | -------------------------------------------------------------------------------- /Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuew/STM32F407_Explorer_ThreadX/3990aaae4aa5444dc5a494c063f137995f6ed1fe/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h -------------------------------------------------------------------------------- /Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file system_stm32f4xx.h 4 | * @author MCD Application Team 5 | * @brief CMSIS Cortex-M4 Device System Source File for STM32F4xx devices. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© COPYRIGHT(c) 2017 STMicroelectronics

10 | * 11 | * Redistribution and use in source and binary forms, with or without modification, 12 | * are permitted provided that the following conditions are met: 13 | * 1. Redistributions of source code must retain the above copyright notice, 14 | * this list of conditions and the following disclaimer. 15 | * 2. Redistributions in binary form must reproduce the above copyright notice, 16 | * this list of conditions and the following disclaimer in the documentation 17 | * and/or other materials provided with the distribution. 18 | * 3. Neither the name of STMicroelectronics nor the names of its contributors 19 | * may be used to endorse or promote products derived from this software 20 | * without specific prior written permission. 21 | * 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | * 33 | ****************************************************************************** 34 | */ 35 | 36 | /** @addtogroup CMSIS 37 | * @{ 38 | */ 39 | 40 | /** @addtogroup stm32f4xx_system 41 | * @{ 42 | */ 43 | 44 | /** 45 | * @brief Define to prevent recursive inclusion 46 | */ 47 | #ifndef __SYSTEM_STM32F4XX_H 48 | #define __SYSTEM_STM32F4XX_H 49 | 50 | #ifdef __cplusplus 51 | extern "C" { 52 | #endif 53 | 54 | /** @addtogroup STM32F4xx_System_Includes 55 | * @{ 56 | */ 57 | 58 | /** 59 | * @} 60 | */ 61 | 62 | 63 | /** @addtogroup STM32F4xx_System_Exported_types 64 | * @{ 65 | */ 66 | /* This variable is updated in three ways: 67 | 1) by calling CMSIS function SystemCoreClockUpdate() 68 | 2) by calling HAL API function HAL_RCC_GetSysClockFreq() 69 | 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency 70 | Note: If you use this function to configure the system clock; then there 71 | is no need to call the 2 first functions listed above, since SystemCoreClock 72 | variable is updated automatically. 73 | */ 74 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ 75 | 76 | extern const uint8_t AHBPrescTable[16]; /*!< AHB prescalers table values */ 77 | extern const uint8_t APBPrescTable[8]; /*!< APB prescalers table values */ 78 | 79 | /** 80 | * @} 81 | */ 82 | 83 | /** @addtogroup STM32F4xx_System_Exported_Constants 84 | * @{ 85 | */ 86 | 87 | /** 88 | * @} 89 | */ 90 | 91 | /** @addtogroup STM32F4xx_System_Exported_Macros 92 | * @{ 93 | */ 94 | 95 | /** 96 | * @} 97 | */ 98 | 99 | /** @addtogroup STM32F4xx_System_Exported_Functions 100 | * @{ 101 | */ 102 | 103 | extern void SystemInit(void); 104 | extern void SystemCoreClockUpdate(void); 105 | /** 106 | * @} 107 | */ 108 | 109 | #ifdef __cplusplus 110 | } 111 | #endif 112 | 113 | #endif /*__SYSTEM_STM32F4XX_H */ 114 | 115 | /** 116 | * @} 117 | */ 118 | 119 | /** 120 | * @} 121 | */ 122 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 123 | -------------------------------------------------------------------------------- /Drivers/CMSIS/Include/cmsis_version.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | * @file cmsis_version.h 3 | * @brief CMSIS Core(M) Version definitions 4 | * @version V5.0.2 5 | * @date 19. April 2017 6 | ******************************************************************************/ 7 | /* 8 | * Copyright (c) 2009-2017 ARM Limited. All rights reserved. 9 | * 10 | * SPDX-License-Identifier: Apache-2.0 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the License); you may 13 | * not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT 20 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | #if defined ( __ICCARM__ ) 26 | #pragma system_include /* treat file as system include file for MISRA check */ 27 | #elif defined (__clang__) 28 | #pragma clang system_header /* treat file as system include file */ 29 | #endif 30 | 31 | #ifndef __CMSIS_VERSION_H 32 | #define __CMSIS_VERSION_H 33 | 34 | /* CMSIS Version definitions */ 35 | #define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */ 36 | #define __CM_CMSIS_VERSION_SUB ( 1U) /*!< [15:0] CMSIS Core(M) sub version */ 37 | #define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \ 38 | __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */ 39 | #endif 40 | -------------------------------------------------------------------------------- /Drivers/CMSIS/Include/tz_context.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * @file tz_context.h 3 | * @brief Context Management for Armv8-M TrustZone 4 | * @version V1.0.1 5 | * @date 10. January 2018 6 | ******************************************************************************/ 7 | /* 8 | * Copyright (c) 2017-2018 Arm Limited. All rights reserved. 9 | * 10 | * SPDX-License-Identifier: Apache-2.0 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the License); you may 13 | * not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT 20 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | #if defined ( __ICCARM__ ) 26 | #pragma system_include /* treat file as system include file for MISRA check */ 27 | #elif defined (__clang__) 28 | #pragma clang system_header /* treat file as system include file */ 29 | #endif 30 | 31 | #ifndef TZ_CONTEXT_H 32 | #define TZ_CONTEXT_H 33 | 34 | #include 35 | 36 | #ifndef TZ_MODULEID_T 37 | #define TZ_MODULEID_T 38 | /// \details Data type that identifies secure software modules called by a process. 39 | typedef uint32_t TZ_ModuleId_t; 40 | #endif 41 | 42 | /// \details TZ Memory ID identifies an allocated memory slot. 43 | typedef uint32_t TZ_MemoryId_t; 44 | 45 | /// Initialize secure context memory system 46 | /// \return execution status (1: success, 0: error) 47 | uint32_t TZ_InitContextSystem_S (void); 48 | 49 | /// Allocate context memory for calling secure software modules in TrustZone 50 | /// \param[in] module identifies software modules called from non-secure mode 51 | /// \return value != 0 id TrustZone memory slot identifier 52 | /// \return value 0 no memory available or internal error 53 | TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module); 54 | 55 | /// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S 56 | /// \param[in] id TrustZone memory slot identifier 57 | /// \return execution status (1: success, 0: error) 58 | uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id); 59 | 60 | /// Load secure context (called on RTOS thread context switch) 61 | /// \param[in] id TrustZone memory slot identifier 62 | /// \return execution status (1: success, 0: error) 63 | uint32_t TZ_LoadContext_S (TZ_MemoryId_t id); 64 | 65 | /// Store secure context (called on RTOS thread context switch) 66 | /// \param[in] id TrustZone memory slot identifier 67 | /// \return execution status (1: success, 0: error) 68 | uint32_t TZ_StoreContext_S (TZ_MemoryId_t id); 69 | 70 | #endif // TZ_CONTEXT_H 71 | -------------------------------------------------------------------------------- /Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32f4xx_hal_dma_ex.h 4 | * @author MCD Application Team 5 | * @brief Header file of DMA HAL extension module. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2017 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /* Define to prevent recursive inclusion -------------------------------------*/ 21 | #ifndef __STM32F4xx_HAL_DMA_EX_H 22 | #define __STM32F4xx_HAL_DMA_EX_H 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | 28 | /* Includes ------------------------------------------------------------------*/ 29 | #include "stm32f4xx_hal_def.h" 30 | 31 | /** @addtogroup STM32F4xx_HAL_Driver 32 | * @{ 33 | */ 34 | 35 | /** @addtogroup DMAEx 36 | * @{ 37 | */ 38 | 39 | /* Exported types ------------------------------------------------------------*/ 40 | /** @defgroup DMAEx_Exported_Types DMAEx Exported Types 41 | * @brief DMAEx Exported types 42 | * @{ 43 | */ 44 | 45 | /** 46 | * @brief HAL DMA Memory definition 47 | */ 48 | typedef enum 49 | { 50 | MEMORY0 = 0x00U, /*!< Memory 0 */ 51 | MEMORY1 = 0x01U /*!< Memory 1 */ 52 | }HAL_DMA_MemoryTypeDef; 53 | 54 | /** 55 | * @} 56 | */ 57 | 58 | /* Exported functions --------------------------------------------------------*/ 59 | /** @defgroup DMAEx_Exported_Functions DMAEx Exported Functions 60 | * @brief DMAEx Exported functions 61 | * @{ 62 | */ 63 | 64 | /** @defgroup DMAEx_Exported_Functions_Group1 Extended features functions 65 | * @brief Extended features functions 66 | * @{ 67 | */ 68 | 69 | /* IO operation functions *******************************************************/ 70 | HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength); 71 | HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength); 72 | HAL_StatusTypeDef HAL_DMAEx_ChangeMemory(DMA_HandleTypeDef *hdma, uint32_t Address, HAL_DMA_MemoryTypeDef memory); 73 | 74 | /** 75 | * @} 76 | */ 77 | /** 78 | * @} 79 | */ 80 | 81 | /* Private functions ---------------------------------------------------------*/ 82 | /** @defgroup DMAEx_Private_Functions DMAEx Private Functions 83 | * @brief DMAEx Private functions 84 | * @{ 85 | */ 86 | /** 87 | * @} 88 | */ 89 | 90 | /** 91 | * @} 92 | */ 93 | 94 | /** 95 | * @} 96 | */ 97 | 98 | #ifdef __cplusplus 99 | } 100 | #endif 101 | 102 | #endif /*__STM32F4xx_HAL_DMA_EX_H*/ 103 | 104 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 105 | -------------------------------------------------------------------------------- /Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32f4xx_hal_flash_ramfunc.h 4 | * @author MCD Application Team 5 | * @brief Header file of FLASH RAMFUNC driver. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2017 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /* Define to prevent recursive inclusion -------------------------------------*/ 21 | #ifndef __STM32F4xx_FLASH_RAMFUNC_H 22 | #define __STM32F4xx_FLASH_RAMFUNC_H 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F411xE) || defined(STM32F446xx) || defined(STM32F412Zx) ||\ 28 | defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) 29 | 30 | /* Includes ------------------------------------------------------------------*/ 31 | #include "stm32f4xx_hal_def.h" 32 | 33 | /** @addtogroup STM32F4xx_HAL_Driver 34 | * @{ 35 | */ 36 | 37 | /** @addtogroup FLASH_RAMFUNC 38 | * @{ 39 | */ 40 | 41 | /* Exported types ------------------------------------------------------------*/ 42 | /* Exported macro ------------------------------------------------------------*/ 43 | /* Exported functions --------------------------------------------------------*/ 44 | /** @addtogroup FLASH_RAMFUNC_Exported_Functions 45 | * @{ 46 | */ 47 | 48 | /** @addtogroup FLASH_RAMFUNC_Exported_Functions_Group1 49 | * @{ 50 | */ 51 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_StopFlashInterfaceClk(void); 52 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_StartFlashInterfaceClk(void); 53 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_EnableFlashSleepMode(void); 54 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_DisableFlashSleepMode(void); 55 | /** 56 | * @} 57 | */ 58 | 59 | /** 60 | * @} 61 | */ 62 | 63 | /** 64 | * @} 65 | */ 66 | 67 | /** 68 | * @} 69 | */ 70 | 71 | #endif /* STM32F410xx || STM32F411xE || STM32F446xx || STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */ 72 | #ifdef __cplusplus 73 | } 74 | #endif 75 | 76 | 77 | #endif /* __STM32F4xx_FLASH_RAMFUNC_H */ 78 | 79 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 80 | -------------------------------------------------------------------------------- /Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32f4xx_hal_i2c_ex.h 4 | * @author MCD Application Team 5 | * @brief Header file of I2C HAL Extension module. 6 | ****************************************************************************** 7 | * @attention 8 | * 9 | *

© Copyright (c) 2016 STMicroelectronics. 10 | * All rights reserved.

11 | * 12 | * This software component is licensed by ST under BSD 3-Clause license, 13 | * the "License"; You may not use this file except in compliance with the 14 | * License. You may obtain a copy of the License at: 15 | * opensource.org/licenses/BSD-3-Clause 16 | * 17 | ****************************************************************************** 18 | */ 19 | 20 | /* Define to prevent recursive inclusion -------------------------------------*/ 21 | #ifndef __STM32F4xx_HAL_I2C_EX_H 22 | #define __STM32F4xx_HAL_I2C_EX_H 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | 28 | #if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF) 29 | /* Includes ------------------------------------------------------------------*/ 30 | #include "stm32f4xx_hal_def.h" 31 | 32 | /** @addtogroup STM32F4xx_HAL_Driver 33 | * @{ 34 | */ 35 | 36 | /** @addtogroup I2CEx 37 | * @{ 38 | */ 39 | 40 | /* Exported types ------------------------------------------------------------*/ 41 | /* Exported constants --------------------------------------------------------*/ 42 | /** @defgroup I2CEx_Exported_Constants I2C Exported Constants 43 | * @{ 44 | */ 45 | 46 | /** @defgroup I2CEx_Analog_Filter I2C Analog Filter 47 | * @{ 48 | */ 49 | #define I2C_ANALOGFILTER_ENABLE 0x00000000U 50 | #define I2C_ANALOGFILTER_DISABLE I2C_FLTR_ANOFF 51 | /** 52 | * @} 53 | */ 54 | 55 | /** 56 | * @} 57 | */ 58 | 59 | /* Exported macro ------------------------------------------------------------*/ 60 | /* Exported functions --------------------------------------------------------*/ 61 | /** @addtogroup I2CEx_Exported_Functions 62 | * @{ 63 | */ 64 | 65 | /** @addtogroup I2CEx_Exported_Functions_Group1 66 | * @{ 67 | */ 68 | /* Peripheral Control functions ************************************************/ 69 | HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter); 70 | HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter); 71 | /** 72 | * @} 73 | */ 74 | 75 | /** 76 | * @} 77 | */ 78 | /* Private types -------------------------------------------------------------*/ 79 | /* Private variables ---------------------------------------------------------*/ 80 | /* Private constants ---------------------------------------------------------*/ 81 | /** @defgroup I2CEx_Private_Constants I2C Private Constants 82 | * @{ 83 | */ 84 | 85 | /** 86 | * @} 87 | */ 88 | 89 | /* Private macros ------------------------------------------------------------*/ 90 | /** @defgroup I2CEx_Private_Macros I2C Private Macros 91 | * @{ 92 | */ 93 | #define IS_I2C_ANALOG_FILTER(FILTER) (((FILTER) == I2C_ANALOGFILTER_ENABLE) || \ 94 | ((FILTER) == I2C_ANALOGFILTER_DISABLE)) 95 | #define IS_I2C_DIGITAL_FILTER(FILTER) ((FILTER) <= 0x0000000FU) 96 | /** 97 | * @} 98 | */ 99 | 100 | /** 101 | * @} 102 | */ 103 | 104 | /** 105 | * @} 106 | */ 107 | 108 | #endif 109 | 110 | #ifdef __cplusplus 111 | } 112 | #endif 113 | 114 | #endif /* __STM32F4xx_HAL_I2C_EX_H */ 115 | 116 | 117 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 118 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Yuewu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # STM32F407_Explorer_ThreadX 2 | 在 STM32CubeIDE 中针对 STM32F407 移植 ThreadX 3 | 4 | ### 前言 5 | 6 | 在 Microsoft 开源ThreadX后,网上有人在Keil MDK、IAR上移植成功过,但既然有ST官方提供的开发工具,何必使用盗版破解软件。 7 | 8 | 工程文件在 [STM32F407_Explorer_ThreadX](https://github.com/wangyuew/STM32F407_Explorer_ThreadX.git) 9 | 10 | 参照网上现有资料,移植过程并不复杂,通过提交历史记录关键修改。 11 | 12 | 13 | 14 | ### 背景 15 | 16 | 2019年4月18日,Microsoft 收购了 Express Logic,后者开发了用于物联网和边缘计算的实时操作系统 ThreadX 全家桶,并于2020年5月17日开源。 17 | 18 | 相较于 FreeRTOS 等国内使用较多的 RTOS 而言,除了后发(FreeRTOS 早期即开源,在 2017 年被亚马逊收购并修改为 MIT授权)的劣势,ThreadX 具有2方面的优势: 19 | 20 | 1. 拥有丰富的多行业认证。FreeRTOS 的改进版(由第三方重写) SafeRTOS 才提供部分行业认证。 21 | 2. 拥有丰富的中间件,如网络、文件系统、GUI、USB等,集成时能提供一致的体验。如果使用 FreeRTOS,需手动集成FatFs、LwIP等第三方中间件。 22 | 23 | 24 | 25 | ### 开发环境 26 | 27 | * STM32CubeIDE v1.3.1 28 | * STM32F4 Cube v1.25.0 29 | * ThreadX v6.0 30 | 31 | 32 | 33 | ### 移植时的注意事项 34 | 35 | 1. STM32F407为**cortex-m4**内核,所以使用`ports/cortex_m4`目录中的移植文件。 36 | 2. Project配置中增加ThreadX头文件路径。`Project Properties --> C/C++ Build --> Settings --> Tools Settings --> MCU GCC Compiler --> Include paths`。 37 | 3. 注释掉STM32CubeIDE默认代码中的`PendSV_Handler()`和`SysTick_Handler()`,避免重复定义。为避免重新生成代码时注释被优化,将`#if 0`放置在`DebugMon_Handler()`的用户段0,将`#endif`放置在`SysTick_Handler()`的用户段1。 38 | 4. 在 `STM32F407ZETX_FLASH.ld` 中的 `._user_heap_stack` 段定义 `__RAM_segment_used_end__`,其表示未使用RAM空间的起始地址,用于做动态分配。 39 | 5. 在 `startup_stm32f407zetx.`s 中定义全局变量 `_vectors`,其在 `tx_initialize_low_level_sample.S` 中被调用。 40 | 6. 删除 `tx_vector_table_sample.S`。该示例启动文件与默认启动文件 `startup_stm32f407zetx.s` 功能重复。 41 | 7. 修改时钟频率。 42 | 43 | 44 | 45 | ### 参考资料 46 | 47 | [The Top 10 Pitfalls of Embedded Open Source Software](https://rtos.com/wp-content/uploads/2018/01/EL_Pitfalls_of_Open_Source_Software.pdf) 48 | 49 | [首发从搭建环境开始,教你如何在小熊派上跑起来ThreadX操作系统!](https://www.codenong.com/cs106388532/) 50 | 51 | [小熊派带你初探最近叱咤风云的ThreadX全家桶](https://www.21ic.com/article/766878.html) 52 | 53 | [ThreadX操作系统在MDK中的移植方法](https://blog.csdn.net/Mculover666/article/details/106607238) 54 | 55 | [基于STM32H7的ThreadX内核GCC版,MDK和IAR个版本都整理完毕](http://www.armbbs.cn/forum.php?mod=viewthread&tid=98089) 56 | 57 | [ThreadX内核移植中__RAM_segment_used_end__的作用](http://www.armbbs.cn/forum.php?mod=viewthread&tid=98114&fromuid=58) --------------------------------------------------------------------------------