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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ c1 [8 U! R  @& ^' v1 p, X#include <linux/init.h>
. N7 \8 M2 ~$ Z" y  p+ h/ T#include <linux/module.h>
: \" z7 P& G) C) e4 W& [#include <linux/kernel.h>
, K* f4 f! x$ z#include <linux/types.h>; X1 X/ d( D; `! X
#include <linux/gpio.h>! K- |: h' w! E# W
#include <linux/leds.h>9 a* J2 T) i: y. {
#include <linux/platform_device.h>
7 T0 A% x8 J: ]' V* c/ R9 J  n$ n" U4 g
#include <asm/mach-types.h>$ O/ E4 o! g& F
#include <asm/mach/arch.h>
  J$ P* g( ~5 o) S#include <mach/da8xx.h>
  l0 N2 d) H9 P% T0 w#include <mach/mux.h>
% K2 q! f9 ?5 `, M' O; N1 s
0 y( {' Y# \& d" C& F* F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 W! Y4 h9 P  A, X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 _/ t$ W3 T! {/ W* g/ H#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 Y; e% |9 _- A) B#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). h$ o' ]2 C: N) r

1 K' ^! X" Z! P5 t0 f5 X& F/* assign the tl som board LED-GPIOs*/
; E' Z$ _/ G9 s+ Z- c8 P8 `static const short da850_evm_tl_user_led_pins[] = {( r$ K) f1 j3 _! W' E0 V6 X% E* n
        /* These pins are definition at <mach/mux.h> file */* Y" u" W' a2 k. O& C; q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- a: e$ |% `3 X        -1. a) |7 d6 I$ u; j. n
};( B. L9 e6 c/ g7 @( c) P
$ u+ v/ U) v/ v& }! w( x2 V
static struct gpio_led da850_evm_tl_leds[] = {
7 q! ?( p. }$ a4 c( W- @        {
8 s# ]: |! d, {7 a3 e0 i                .active_low = 0,3 a6 r0 j6 a4 V8 [  [8 [
                .gpio = DA850_USER_LED0,2 l9 @' c' V6 V0 [& @" Y6 ~- P( h
                .name = "user_led0"," [5 X# I1 I" [) P, c. \( T0 G
                .default_trigger = "default-on",% N2 Q9 a2 z  d2 Z& e. u& h
        },
* T; R( V# }  E4 T        {
2 t5 A' ?8 ?* S                .active_low = 0,& B* q# S# K7 T8 W
                .gpio = DA850_USER_LED1,
, X+ B/ \7 S. Q+ C                .name = "user_led1",
9 F* o: m. j" K# I9 b6 H3 l6 G/ R                .default_trigger = "default-on",
  ~2 m# Q4 B, T5 `% I        },
6 t. o, n- p! ~# C' [5 w        {, f( N' ^# t6 b  d) G- c$ @
                .active_low = 0,
4 s, i6 P5 V& s0 B& `7 M! `# k! ?                .gpio = DA850_USER_LED2,
; B4 f* K* N7 H0 G7 `8 x+ ?                .name = "user_led2",& n5 u5 B7 R, u) y. S# b
                .default_trigger = "default-on",
; e4 q4 s7 L) j7 o2 ?; a, C        },
% l5 Q# `' Z; c- B+ s7 b        {1 z. q2 n4 y$ ?: M5 O
                .active_low = 0,5 o# Z3 z3 N& G4 a- ]
                .gpio = DA850_USER_LED3,
$ z* Z7 f# r, `) I0 ^                .name = "user_led3",
0 b( G0 l/ ^9 r: _$ ]                .default_trigger = "default-on",& P1 h& T  b( i
        },7 s, ~) ]4 |# y8 \; I. N, {; L* r
};
$ q# {" {/ c+ I+ d9 @  |
6 Q; B. I+ m8 S7 t8 \' Y: O8 L8 H7 @0 Ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ K9 Y: U+ O& D+ f2 H
        .leds = da850_evm_tl_leds,/ {5 j# o. {8 t4 ]1 D
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 B8 h% _3 Q8 a1 }, \4 u  @
};
* R/ g8 D! E! h1 j' y5 c
! ]" n% O8 ~5 r7 istatic void led_dev_release(struct device *dev)
! W! ?' i$ I% H" _{
9 b) Y/ m/ b7 \( T& L3 x};
/ b, Y. \+ [* S, \. a8 m: s# ~, o! Z2 d1 C7 b9 x2 r
static struct platform_device da850_evm_tl_leds_device = {. ^2 K; l6 i8 w6 T( G5 B
        .name                = "leds-gpio",+ W, ^, G% |4 \
        .id                = 1,
: X) m) S( P+ R! |" X, f: z        .dev = {" q: \* C, u( m1 u# @" n( D9 k& x" d
                .platform_data = &da850_evm_tl_leds_pdata,6 s4 K/ ?1 y, Z; x+ ^9 u
                .release = led_dev_release,' ^; ^4 X; O& l1 L1 X8 X
        }
' r9 B) b0 C- U4 t};/ [7 I* U5 c+ X# W, m
, j* p! |5 }7 R4 H  S, M" Z; k
static int __init led_platform_init(void)" X5 X) X7 }. d+ S. E( P, f- d
{
8 Z% g  x$ ?8 {! o/ ]        int ret;6 v9 B8 `* r+ K1 o$ s: q1 f" ~* r, H
#if 0
: i; K$ C$ h7 V) [' |+ J$ a/ `. |6 Q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 s4 P9 Z: W7 g% o$ r
        if (ret)
9 b, k6 [5 J! E2 ^+ Q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 u3 m2 e. \7 K) a, R. T
                                "%d\n", ret);2 s# p  f4 {5 N( X
#endif
( P1 ?. ]& h0 D! d6 ^        ret = platform_device_register(&da850_evm_tl_leds_device);# z+ Q$ U0 `5 Y' y
        if (ret)
% f  b& Z; e0 @) h; l9 `                pr_warning("Could not register som GPIO expander LEDS");
8 E6 t6 }* i& ]# E        else# L" ?5 Q1 k1 \, B3 Q/ H) K
                printk(KERN_INFO "LED register sucessful!\n");
2 O# {( K2 ^( t& A6 W% y8 i# c. D) [+ r: p
        return ret;
8 m: Q) J; I& N) r/ y% B}
1 P4 P" @$ |! J. d
) B( `7 M1 C8 A! O1 |# Astatic void __exit led_platform_exit(void)
9 p+ M( L3 ~) Q- w% f{* o( M3 r7 g8 q5 h
        platform_device_unregister(&da850_evm_tl_leds_device);/ c7 G* `3 ]: `! L' a# E

1 k- {; R. B% D$ ?# h        printk(KERN_INFO "LED unregister!\n");5 ]) e1 e% X. P& T# V4 R. z, N
}- |  Q7 q3 {# j% W/ h9 z
( a4 n, d% s) h% j+ Q  v
module_init(led_platform_init);
* d; k, _; W% j  D. |module_exit(led_platform_exit);) o+ U- Z( P: [$ e5 i1 W- ]
# e9 ^, T  w  ]2 H! U
MODULE_DESCRIPTION("Led platform driver");
/ m% r+ V0 e' t7 Z+ e" G' yMODULE_AUTHOR("Tronlong");
% f6 y  s, i3 w  oMODULE_LICENSE("GPL");& G: Q5 q! B7 r2 j* W  z( S1 T

+ V$ X" J$ i9 L2 G7 x% @2 l5 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-16 01:17 , Processed in 0.040715 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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