linux之mmi對led燈的控制 高通系列

2021-08-20 08:22:19 字數 2493 閱讀 1521

mmi_module_t mmi_module_info_sym = ;

mmi_module_info_sym

module_methods

module_init

pthread_mutex_init(&g_mutex, null); //初始化互斥

ret = hal_init();

devices = (struct devices *) malloc(sizeof(struct devices)); //分配裝置的記憶體

ret = hw_get_module(lights_hardware_module_id, (hw_module_t const **) &hw_module); //拉去light module

devices->lights[light_index_backlight] = get_device(hw_module, light_id_backlight); //分配light 的型別

devices->lights[light_index_keyboard] = get_device(hw_module, light_id_keyboard);

devices->lights[light_index_buttons] = get_device(hw_module, light_id_buttons);

devices->lights[light_index_battery] = get_device(hw_module, light_id_battery);

devices->lights[light_index_notifications] = get_device(hw_module, light_id_notifications);

devices->lights[light_index_attention] = get_device(hw_module, light_id_attention);

devices->lights[light_index_bluetooth] = get_device(hw_module, light_id_bluetooth);

devices->lights[light_index_wifi] = get_device(hw_module, light_id_wifi);

err = module->methods->open(module, name, &device); //開啟裝置

return (light_device_t *) device; //成功開啟裝置,返回指標

module_deinit

module_run

ret = module_run_mmi(module, params);  //建立了乙個runtest的任務

pthread_mutex_lock(&g_mutex);  //互斥的鎖定

ret = init(params); //初始化引數

light_delay = atoi(params["delay"].c_str()); //獲取延時的時間

params["type"].c_str() light_device = light_index_notifications; //解析指令的型別

params["color"].c_str() led_color = led_color_red;

//解析控制燈的顏色

ret = pthread_create((pthread_t *) & module->run_pid, null, run_test, (void *) module); //建立亮燈的任務

signal(sigusr1, signal_handler); //獲取訊號量,但不知道訊號量從**獲取的

enable((const mmi_module_t *) mod, true);

usleep(1000 * light_delay);

enable((const mmi_module_t *) mod, false);

usleep(1000 * light_delay);

pthread_join(module->run_pid, null); //把建立的任務加入任務聯中

pthread_mutex_unlock(&g_mutex); //解除互斥

ret = module_run_pcba(module, params); //單個指令的控制

ret = init(params); //獲取解析引數

light_delay = atoi(params["delay"].c_str());

params["type"].c_str() light_device = light_index_notifications;

params["color"].c_str() led_color = led_color_red;

enable(module, true); //開啟燈

module_stop

kill_thread(module->run_pid); //結束建立的任務

deinit(module);

enable(mod, false);

linux之點亮led燈出現的無效運算元 問題

linux中點亮led燈時出現無效運算元的錯誤,源 如下 include include include include include include include include include include include include include include volatile ...

2440裸機學習之 LED燈的控制

s3c2440有130個i o口,gpa,gpb.gpj通過設定暫存器來確定其功能。gpxcon暫存器 選擇引腳的功能,gpbcon gpjcon每兩位控制一根引腳 00表示輸入,01表示輸出,10表示特殊功能,11保留不用。gpacon特殊,每一位控制一根引腳,共23根,某位為0時,為輸出引腳,當...

jz2440 LED 裝置樹之點亮LED燈

簡介 裝置驅動程式中,匯流排驅動模型和裝置樹的差別在於平台裝置的構建不同,在傳統平台裝置驅動程式寫在c檔案中,使用裝置樹時,平台裝置之前不存在,在dts檔案中構造節點,節點裡面含有資源,裝置樹詳細的內容我會在以後的部落格中詳細介紹。cpu jz2440 u boot u boot 1.1.6 ker...