首先安裝下面2個(gè)KEIL PACK包。一個(gè)ARM2D,一個(gè)perf_counter。
其次以一個(gè)帶LCD的可以正常繪圖的例程為基礎(chǔ),開(kāi)始添加ARM2D。
如下圖添加ARM2D。
如下圖添加perf_counter。
再就是CMSIS包,需要添加DSP庫(kù)。
添加pack完成后的樣子。
下一步配置ARM2D的arm2d_cfg.h和disp lcd的
下面lcd驅(qū)動(dòng)函數(shù)實(shí)現(xiàn)下圖的繪圖函數(shù)。
用戶應(yīng)用文件添加相關(guān)頭文件。
然后主函數(shù)添加初始化。
用戶文件添加時(shí)間測(cè)量函數(shù)
/*============================ IMPLEMENTATION ================================*/
static int64_t s_lTimestap;
__OVERRIDE_WEAK
void arm_2d_helper_perf_counter_start(void)
{
s_lTimestap = get_system_ticks();
}
__OVERRIDE_WEAK
int32_t arm_2d_helper_perf_counter_stop(void)
{
return (int32_t)(get_system_ticks() - s_lTimestap);
}
#include "stdio.h"
#include "fsl_device_registers.h"
#include "fsl_debug_console.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "board.h"
#include "peripherals.h"
#include "fsl_power.h"
#include "lcd_driver.h"
#include "arm_2d.h"
#include "arm_2d_helper.h"
#include "perf_counter.h"
#include "arm_2d_disp_adapter_0.h"
/*******************************************************************************
* Definitions
******************************************************************************/
//static const uint8_t c_bmpClockFace[];
/*******************************************************************************
* Prototypes
******************************************************************************/
void SysTick_Handler(void)
{
}
int fputc(int ch,FILE *f)
{
return ch;
}
/*============================ IMPLEMENTATION ================================*/
static int64_t s_lTimestap;
__OVERRIDE_WEAK
void arm_2d_helper_perf_counter_start(void)
{
s_lTimestap = get_system_ticks();
}
__OVERRIDE_WEAK
int32_t arm_2d_helper_perf_counter_stop(void)
{
return (int32_t)(get_system_ticks() - s_lTimestap);
}
/*!
* @brief Main function
*/
int main(void)
{
char ch;
/* Init board hardware. */
/* set BOD VBAT level to 1.65V */
POWER_SetBodVbatLevel(kPOWER_BodVbatLevel1650mv, kPOWER_BodHystLevel50mv, false);
/* attach main clock divide to FLEXCOMM0 (debug console) */
CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);
BOARD_InitBootPins();
BOARD_InitBootClocks();
BOARD_InitBootPeripherals();
BOARD_InitDebugConsole();
SysTick_Config(SystemCoreClock/1000);
init_cycle_counter(true); //初始化 perf_counter
lcd_init(); //LCD初始化
PRINTF("hello world.rn");
// Disp0_DrawBitmap(0,0,200,190,c_bmpClockFace); //測(cè)試LCD繪圖函數(shù)。
arm_irq_safe {
arm_2d_init(); // 初始化 arm-2d
}
// 初始化 Display Adapter 0
disp_adapter0_init();
while (1)
{
disp_adapter0_task();
// ch = GETCHAR();
// PUTCHAR(ch);
}
}
編譯,下載
下載 后的效果