程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9075|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 \) F5 e9 @+ c5 h#include <linux/init.h>
$ b- b! M/ e* L. I#include <linux/module.h>
& [" n$ Z8 O  _& p4 o# x/ T3 h#include <linux/kernel.h>- @0 \: h) z  f
#include <linux/types.h>
$ H7 n/ C: k: _/ b, m& A#include <linux/gpio.h>/ ?7 g! {# u( Y3 z# A/ i  w" f( |* |
#include <linux/leds.h>
5 e- q" Y5 d- c, z7 E. g#include <linux/platform_device.h>
( U3 d* k$ j+ O: q, N7 n2 [
4 m  k$ \( h% O#include <asm/mach-types.h>
! p4 G6 z' Q$ K' n( i9 X' V#include <asm/mach/arch.h>
. U! M9 v: F4 ]* P#include <mach/da8xx.h>
4 }3 G: e, H. @1 l#include <mach/mux.h>, ?1 T' \9 T7 d4 y

% a) y+ D4 F8 q. Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 y# e4 L: f1 w. h# `# x
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" F4 M# J: T  A; w& L$ x1 \#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 ]$ D# I. r2 Q1 P
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  O. N' S+ u4 F+ H) x7 X/ @
7 X7 d/ p0 i+ l, v0 |& ^/* assign the tl som board LED-GPIOs*/
9 x6 J( u* x# mstatic const short da850_evm_tl_user_led_pins[] = {
) H# {/ u" M! W" I1 c        /* These pins are definition at <mach/mux.h> file */
. B# K) i2 k. }3 P: B3 I# Y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- p  G7 W+ Y; s8 D        -10 W1 g. U/ ^! `7 r4 `2 n0 A
};1 j  h# Z% @9 b7 y4 B) @

7 V6 U! {. f6 S4 mstatic struct gpio_led da850_evm_tl_leds[] = {1 U4 c! q7 H- j: A  t2 E7 ?
        {
) t. ~  O# _, U3 u                .active_low = 0,
/ G8 z7 _3 G* N, j, W                .gpio = DA850_USER_LED0," E/ @( O3 C  v/ `* v
                .name = "user_led0",
0 e, C! y& d9 I( M                .default_trigger = "default-on",
6 {3 _5 z$ B& y. X$ L        },4 {7 y+ p# ~2 d! K: V
        {% _% B7 ], L0 `0 {/ a- [% H
                .active_low = 0,
1 b' [: N! f4 P                .gpio = DA850_USER_LED1,
4 E* x8 k5 t# Q3 m1 i                .name = "user_led1",
. D! @! S2 i3 [' q/ O0 E                .default_trigger = "default-on",) u1 `% [* q  u6 [( k& t6 T
        },
+ H& ]. l8 z4 \( F        {: G8 r3 V4 ~7 E* c  o! v7 L
                .active_low = 0,
: ?- Z. E0 |2 N: f                .gpio = DA850_USER_LED2,
# i( k7 q3 Q1 j3 _/ M& m                .name = "user_led2",: J3 D! Z6 A% x$ O
                .default_trigger = "default-on",
& e! s) L/ m' |) K9 V        },2 `% I& ?7 }- U+ [: h* i- a& g9 d
        {
) g+ p$ ~8 s5 K" F5 R9 C/ i                .active_low = 0,
6 A! Y" @$ a$ A% }0 D; ~                .gpio = DA850_USER_LED3,# j5 m. s0 t( ]1 C
                .name = "user_led3",
) i* m* j4 E: G# m" h                .default_trigger = "default-on",' F1 p# T  V" X
        },
* k: }3 I5 l+ F};$ ?: r% F- ~* J
" z/ X. \  _# E# k- E/ ~# D8 ?
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ b0 m) @, j5 U( _+ }0 U$ ?: _1 ~4 ^        .leds = da850_evm_tl_leds,
9 U* `, Z" n; g2 k        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% y" g: j& u1 G- Y8 B+ }7 w% v
};0 m8 Y+ J5 ^6 j$ y; g0 f3 G

! C3 \+ `. j3 Y1 {& Mstatic void led_dev_release(struct device *dev)
. M2 ]# v: |5 h, A* V{$ G4 e) V& [5 c: C
};
/ q% v; r$ `" g3 D; L( X8 Q) E: |3 r: v$ `4 e5 I9 Y& L& |
static struct platform_device da850_evm_tl_leds_device = {8 E. {: l0 H. N- @4 q
        .name                = "leds-gpio",- X0 R% R+ S- V/ e, b& }* z4 W
        .id                = 1,: E; j  ?  u" a' H6 e
        .dev = {
& V  g. M5 g1 n# i4 D* V                .platform_data = &da850_evm_tl_leds_pdata,8 r5 M3 ~; Y) D2 o, a
                .release = led_dev_release,' A* U! O5 s7 a8 L6 c" h& E6 g/ a
        }
% F* y7 _" |5 O};  `: O8 k: K. l" @' |
! i$ E3 }5 R, P1 G" J8 `5 ~0 y5 p( {3 d
static int __init led_platform_init(void)  V+ ^- I% k- i. t* i# Z4 }# g5 v
{) v2 w( @9 P$ q* T; n9 k9 K
        int ret;
* g7 M5 l* o# F6 T- S( L$ l2 i% p#if 0: ?9 Z% q9 b4 A; O8 B; l4 ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! J# s6 T1 C& T! a/ g
        if (ret)
; d3 c/ @/ n2 V                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 \  s1 K; S( L' P2 x4 B                                "%d\n", ret);
4 b: T7 u/ J  h( j. C! x) Y#endif
; I' p- i6 u* {' E  p0 V9 {        ret = platform_device_register(&da850_evm_tl_leds_device);
/ @* F9 `' v4 b        if (ret)
! |! U: }) A$ o5 u2 e( H2 X                pr_warning("Could not register som GPIO expander LEDS");
% l8 U- {0 p0 v/ ?/ g, W        else
5 r2 x$ k1 p: S4 ]) p! O6 j                printk(KERN_INFO "LED register sucessful!\n");# G3 z0 L5 _" T: W, K
9 r' ?) L! \) V' k( Z
        return ret;
! E% i  m2 k3 L- Q) Q& d}! k9 k* |8 @. y/ r* ?' A1 T$ k9 S# s

; n# X2 _+ n  _8 d2 ^static void __exit led_platform_exit(void)4 M! m" w# R% U. z
{
4 N9 k3 B. g- E, T4 @6 a6 S1 g        platform_device_unregister(&da850_evm_tl_leds_device);' H% C. x" P) l
/ `/ N5 t' \2 t- J. |7 D7 g) S
        printk(KERN_INFO "LED unregister!\n");" Q+ r; ]* E! ~5 Z& j: ^9 Q9 R$ `
}
2 E/ ^, |. {' @) b9 P$ ~
0 ?5 \8 a/ y+ k2 l3 k2 u; ~4 Amodule_init(led_platform_init);7 v( W6 U# i% l9 q* V6 b! X
module_exit(led_platform_exit);% b3 E0 f4 m, y  d2 t, _! E: j- j$ g
. F9 [  Q) ~: [- Z3 @9 R" q
MODULE_DESCRIPTION("Led platform driver");
; o3 W% V1 ]) G; lMODULE_AUTHOR("Tronlong");
2 D& X! O# e2 }2 G5 n4 ^MODULE_LICENSE("GPL");# S9 ^" d' h/ M$ K- n- f6 z

' e: O: z9 F: R$ |* T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-2-9 12:25 , Processed in 0.042857 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表