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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: t. v, B8 e" ^! j1 ^#include <linux/init.h>
: {) _$ h4 X3 z8 J/ _#include <linux/module.h>  z% u. h: y6 D
#include <linux/kernel.h>
1 M6 @& `8 j9 J8 \#include <linux/types.h>, U) u) [$ e2 n3 G. {
#include <linux/gpio.h>
( J! i: V, s" E' Q8 h) F' z5 Z#include <linux/leds.h>
/ v5 f+ {9 C5 y( i#include <linux/platform_device.h># [% r5 P2 i* I2 r
: n2 m8 I6 @1 \) b9 X9 I
#include <asm/mach-types.h>" g/ Q6 A9 c6 h8 b$ L% j' M! r- Q
#include <asm/mach/arch.h>  K, C# j% k4 A
#include <mach/da8xx.h>
( p# N) `! F5 c5 @#include <mach/mux.h>
% B( q; g% J: T* P& [
% J* H4 b& J) V2 n+ A# A9 ~#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), O! W0 ?9 c1 x$ U# S$ K+ k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 Y, Q3 g  _4 n3 `( B  V+ g#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 ?6 B9 `! S  p. X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): i& T' |. |2 C9 n0 d4 |7 K

! d% C! x9 ]  s- _8 n  a/* assign the tl som board LED-GPIOs*/
8 ~7 m4 [4 W/ }/ V9 ~9 B- ostatic const short da850_evm_tl_user_led_pins[] = {
: L; J4 ]" N+ [4 e* [* g5 V        /* These pins are definition at <mach/mux.h> file */8 V& H. D4 H, G) w- |# N
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% F  ^. N8 [/ U+ h( T% l" f0 B9 w        -1
9 N" Q7 G7 C1 k' M- M% {};  T" Y% x# c7 f' n: e5 f: b5 T

5 l1 |) S. T9 N& C# G) G: p; }! mstatic struct gpio_led da850_evm_tl_leds[] = {
$ B# d7 q* W  Q4 v2 }2 n        {1 M3 u: y; u) D3 L
                .active_low = 0,
0 R5 X7 p8 D. k                .gpio = DA850_USER_LED0,
# Z8 l; ^8 i6 ]5 l( L% t+ ?                .name = "user_led0",
8 \, N1 u7 u* T$ h                .default_trigger = "default-on",
( ^# Q; U0 K7 j: e& W/ i        },; M8 x( Q9 t* w+ L9 F
        {/ @3 s8 x& ]* P: f
                .active_low = 0,
5 V1 }2 Y4 `5 U" @7 i" j- P                .gpio = DA850_USER_LED1,
. n1 o2 r* G7 a9 {; x# x                .name = "user_led1",9 j# |) E; J% i9 }! d
                .default_trigger = "default-on",
+ J- u6 ]* j# v2 p        },9 C2 j% X$ `" L# |# S" R
        {& _; Y- i; x/ N, ]# T' f* j. ?( T: o9 D
                .active_low = 0,
2 Y6 i9 ?; X# w5 S) t                .gpio = DA850_USER_LED2," J# C0 I$ f3 e2 H
                .name = "user_led2",
+ g$ w6 M, G9 w2 b' V' t                .default_trigger = "default-on",
7 S6 e5 G  d; T4 |3 Z( `2 r        },: @& J3 V4 P; k
        {) Q9 ~2 P2 h; x$ `" C2 B: d& `
                .active_low = 0,. i# m0 J  {# ~- c. h
                .gpio = DA850_USER_LED3,
9 E, D* D! G# |1 V4 o: e& p" v1 O                .name = "user_led3",+ ^, A8 q8 Y- c) b' {1 ?  R; z
                .default_trigger = "default-on",
  k" L" X2 N$ r        },
! U; Y( m; j9 A0 |) U4 k( U};) }) y$ [! i* f" H% k3 G5 L6 Q" t
8 W( X! A+ m" \4 d* L+ O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" {. c3 ?: D, b9 T8 B) L+ H+ p6 b
        .leds = da850_evm_tl_leds,  A) ~# M2 z2 v5 ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  K2 y, t" |/ {3 o};# ^: H" ^. w4 r; H& Y+ G
, h, V8 e5 a  F3 x0 v
static void led_dev_release(struct device *dev)
9 t* C. O2 K  U* C: v3 a- A& e{
! {) _3 T6 ~3 q  l5 u  |};# f% z8 r  ?4 d0 `3 |' s7 H0 u0 E
! m  Z" L( F6 X# I
static struct platform_device da850_evm_tl_leds_device = {
% |- ~& \4 H" b        .name                = "leds-gpio",
8 e9 C: i( P5 L1 R/ O        .id                = 1,
6 q% Y- R( |: n# W# y5 z) m        .dev = {# a* L1 t5 W" y: b
                .platform_data = &da850_evm_tl_leds_pdata,% l4 {$ K8 y2 F3 d% j  k+ k
                .release = led_dev_release,6 c3 C2 a! i' c+ q( Z3 P9 ?
        }7 Y  ?' E  d! a2 c  G8 R7 a6 d; {
};
" p4 H( F$ ~  x# @# @: x9 ~% ^$ M1 }, A, h1 }" r
static int __init led_platform_init(void)
& C! y! g  R' z$ C" z9 F{
" v. j2 |- J- G+ y: }& p% h        int ret;9 n- o# a$ r+ B1 {! o& ^! q
#if 0* f3 L; P; K1 k" C$ X& v
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 X3 P( a# ]. G: A        if (ret)
$ Z( c4 Y+ R' z- V+ S8 i6 k& n                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* N5 k4 \) f1 e- \8 f. d7 ]                                "%d\n", ret);
- ~: y5 A0 [9 u4 E- J- V#endif! {- D4 k! L# P) A$ D1 i. Y( B/ ?+ q
        ret = platform_device_register(&da850_evm_tl_leds_device);
6 ~( H' {. O/ h        if (ret)
, }. [& Q# @1 t8 E: p  ^" w& T                pr_warning("Could not register som GPIO expander LEDS");9 R9 @$ J6 t- M% d1 U8 i, d
        else3 F4 @( n  I0 Q  I4 ]
                printk(KERN_INFO "LED register sucessful!\n");
! ^# J; Y" c$ J0 W7 g; n& m
  H; j4 s* m, V9 Y: E1 y        return ret;9 i5 D# P) `0 T' D$ r
}
; a6 t* F; p1 z  E, R
0 }! w+ q. j: ^static void __exit led_platform_exit(void)
, M& ~& o/ A& j6 L  S# b{* J; Q* L" V: s3 u+ {- X
        platform_device_unregister(&da850_evm_tl_leds_device);
; ^. H! |# o+ t7 b: R% v. q( p( O$ i
        printk(KERN_INFO "LED unregister!\n");% l: X( p/ C$ R# {$ K# t- z
}$ ]+ T! F3 b2 {7 B, S2 k- h
! ]( N  Y: u/ y1 ~$ ?5 W7 y) c7 e. j
module_init(led_platform_init);
' S& t; Q# k! {7 x: n3 b; `4 h8 Jmodule_exit(led_platform_exit);
- J( I" H) U/ m: \* N1 }' @) L1 s0 f  t1 q2 O
MODULE_DESCRIPTION("Led platform driver");
: a$ X# M2 X; H& rMODULE_AUTHOR("Tronlong");
# b% w7 \/ r1 @/ L1 M0 }% UMODULE_LICENSE("GPL");# n; x7 T; a' C* \$ b2 e% |
0 v, _0 X7 }. G& O5 S5 z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 00:21 , Processed in 0.039395 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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