程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( L, v: L( D& ^3 ~9 Q2 a  y* M6 @
#include <linux/init.h>
  l! r2 b- a* [# j#include <linux/module.h>
$ C* p) C8 q- D+ X& V1 u6 y#include <linux/kernel.h>
" Z9 j' |! X& [/ c( }; N/ ^  W) T#include <linux/types.h>3 `" }4 o, P1 T) c6 }. @! ~
#include <linux/gpio.h>+ L* Z; I+ T5 F. p. [
#include <linux/leds.h>2 |( X; J2 |) e. ?1 d+ }
#include <linux/platform_device.h>
/ m0 n+ \7 A6 f1 `* T. m
6 J  w6 @9 e  B$ V$ |7 e#include <asm/mach-types.h>
# M) k; Z0 l7 `  g#include <asm/mach/arch.h>/ |3 e/ c' T. J4 n/ Y# @( d! R5 @
#include <mach/da8xx.h>2 r# v8 Z9 F( i& `/ S# o& R
#include <mach/mux.h>; @* E# T$ F& _) M# C) i7 }
0 Q$ c$ T; D" X2 w: I
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) u. g' q' h2 r* z/ x) K4 R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- ]4 E' W* l# w4 t9 D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ ?1 P6 f8 f2 ?2 T( N8 T2 G#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 v, k, t" A2 z! o% F

% W' q& o7 f6 ]: u3 ^/* assign the tl som board LED-GPIOs*/7 m5 `9 J4 S$ `: P+ w, x! O! {
static const short da850_evm_tl_user_led_pins[] = {
9 s1 A4 z9 ~- t- ?- z! b        /* These pins are definition at <mach/mux.h> file */* c: I- P: ?9 B' V
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! I' ]3 k% o2 X1 Q& d) p( l& y        -1
  L( e: f- |. d+ G};0 p- Y; v3 N+ {  r4 l
2 ?9 Z/ q8 \' ]- ^+ w. Z% ]
static struct gpio_led da850_evm_tl_leds[] = {
, I% g" i2 x$ ~, f6 K        {
- k3 g! V0 h) f' Z  B. x$ \$ T                .active_low = 0,
0 W( h& h* K. N5 e- u$ L- O                .gpio = DA850_USER_LED0,2 |- Q+ O& s3 y1 ~# L/ B/ i
                .name = "user_led0",0 E$ ~  U$ C4 b
                .default_trigger = "default-on",4 J4 R' n; N% ]; J: {, W; C4 e% ^
        },$ h0 X  v9 e( S; [) A4 _
        {
) b0 s8 ?4 c3 D6 y5 V) Q                .active_low = 0,
$ Q% [* s. ]) J% P                .gpio = DA850_USER_LED1,
0 t. D: O  i! K0 o3 {                .name = "user_led1",
) x6 C0 Y" j2 }                .default_trigger = "default-on",
) e; e$ z( v* \) R4 Y        },
( W5 N* G' @; J7 G        {7 Z6 `, ^4 s9 _) I7 d; @
                .active_low = 0,
$ e2 I' u% I5 t; X! v/ \. Y. w4 X                .gpio = DA850_USER_LED2,
0 ~8 z1 f, q9 X9 T% D8 v. G                .name = "user_led2"," T9 H' P# n/ m/ N5 W, Z! R
                .default_trigger = "default-on",
1 p# E- X3 y' h        },; g# h. t# P) X
        {
5 k( v( f: H! g0 D0 j% W                .active_low = 0,. h2 v1 S1 B* y# o3 r
                .gpio = DA850_USER_LED3,
- _- ]9 V! E  r8 O( {% @" {                .name = "user_led3",% r7 W. y& i8 I
                .default_trigger = "default-on",& r& p. S# o9 ?' b" q4 ?; T- C1 c
        },
2 C% ?0 b6 |; A! A* D, W};
5 u! x3 C4 f, G, n- W3 L  L' p" N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: Q6 W  {7 }; c/ S        .leds = da850_evm_tl_leds,+ t6 X% R0 M3 R" B# A# {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 v$ J% U  E+ t: l4 L! ~};4 ?/ _$ \5 a$ i
3 G4 R) p/ c& o. L7 ^; Y
static void led_dev_release(struct device *dev)! u& u: }/ i) D2 t6 \7 l
{
  }( Q, R! O! b( r};, x) o4 m9 w7 ~: F" o% v
1 g" G7 y" a1 D. o2 m4 Y
static struct platform_device da850_evm_tl_leds_device = {
1 x7 u# [+ ?$ w4 z; @        .name                = "leds-gpio",
1 @% j% U1 p2 x4 E  d) X        .id                = 1,
$ f$ ^" ]! o, n9 m0 G3 i        .dev = {+ K4 O. i# @" x; Q
                .platform_data = &da850_evm_tl_leds_pdata,
+ ~  z4 [' e4 l7 O7 m$ n' D                .release = led_dev_release,
6 O$ n& d. P. _! S, g8 _2 T/ r        }% X/ k3 b/ q1 Z' y3 m. P
};$ G& c5 b% |3 r3 n
5 d! O, p. |+ q8 W# V# {
static int __init led_platform_init(void)
1 r* x, J( S: A: u! y0 q6 i3 D3 T{
& s. w- T  e' A7 h" K! K        int ret;: c* C- {8 D, I, |( z8 T( p
#if 0
  v" d# s: @" v$ z2 D4 t' r; T        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 x2 y  d2 h. D
        if (ret)
, T' G5 v  k, N# M, f1 E& L; G                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". B3 h! {! G; ^4 d' s8 A
                                "%d\n", ret);, |! J) C$ ^3 l2 s
#endif1 j9 j6 t2 A% J  ~; D. Y
        ret = platform_device_register(&da850_evm_tl_leds_device);
" d6 K: E- L& |2 U        if (ret)
" o2 y% U. A/ s1 T7 j  D% E                pr_warning("Could not register som GPIO expander LEDS");
" N2 Z% G7 \8 E5 M9 b        else1 B' j; J1 X2 v; Z! J) ?/ g7 z
                printk(KERN_INFO "LED register sucessful!\n");
( N, `. h& c8 v) p& _) Q! V0 C8 d/ |" r% S0 h. F
        return ret;  ~8 L1 V, U0 y/ {- K9 P  h
}
5 g: s( b5 n3 E% \* g) p0 ]  K7 W' p+ W8 S, \" V% p" c
static void __exit led_platform_exit(void)
% g1 r* ]9 `0 b' s7 Z! ]9 h; |{
: O6 e7 W" k- ?4 P        platform_device_unregister(&da850_evm_tl_leds_device);
5 ?3 }3 K& C: ]) A3 m
( L, |; e, t0 b5 M/ `; {1 d. M, v        printk(KERN_INFO "LED unregister!\n");
6 K/ ?! N2 R/ k" ^}& X! f, @4 e: d" _
) u. c2 x& X# ]2 f; \/ c( k( M
module_init(led_platform_init);! h# S8 X# w  D8 K9 A2 A
module_exit(led_platform_exit);
5 }. Q6 d4 J, V9 y' ?4 x
* t7 h& _) U: k2 d" D, _* fMODULE_DESCRIPTION("Led platform driver");: j0 I0 c+ }7 D
MODULE_AUTHOR("Tronlong");
1 K8 A2 d3 H8 a+ R  Q* sMODULE_LICENSE("GPL");" N9 I/ h* H/ o4 p

( K3 ?: k( S6 j, |+ t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-16 14:10 , Processed in 0.038302 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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