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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 u% V2 L0 F2 l#include <linux/init.h>
7 U4 L: [2 J7 P2 U) L9 B8 r#include <linux/module.h>
8 G# J4 Y- Y3 G" V#include <linux/kernel.h>
3 L5 R. ?( G, V#include <linux/types.h>
+ U7 O, m4 a0 z3 G0 |#include <linux/gpio.h>
( n, D# B. {0 k4 u. W  X/ r% ^0 \#include <linux/leds.h>: {" c4 `2 p3 t  l
#include <linux/platform_device.h>+ _8 f; u9 G2 X! k- u
/ v. [8 ~7 \, |% _: D2 X3 C
#include <asm/mach-types.h>1 W6 Z; A% X: {7 e+ o6 \1 f
#include <asm/mach/arch.h>6 y: J6 a) @0 F) E, G
#include <mach/da8xx.h>. o; W5 Q0 C3 M4 B
#include <mach/mux.h>
# F5 J, C) j+ O
" r! x1 o* S  J#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 G6 U6 R# M: I" q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 x( l% I! t. d: W  y. I
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 u# O; Y% ^' c2 n" |* L" T# W1 |$ ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  j/ Y8 w( Z, g
; B1 Z; D* v3 j( y/* assign the tl som board LED-GPIOs*/9 `# g& ^/ W! l  x
static const short da850_evm_tl_user_led_pins[] = {
, T1 @1 x% D* f4 S+ y. z0 u9 q        /* These pins are definition at <mach/mux.h> file */
% E- h- U. ~8 G" b0 U/ l3 Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 m6 B( k: J; ?" R        -12 e5 e2 y( G. h. J% B' _
};. |* x! i: v; ]9 ]! p
# f" x6 j% O: }) Q& `; m4 f
static struct gpio_led da850_evm_tl_leds[] = {2 _% V0 d- k4 E# D! X
        {
' C* ~. B" w" k; P1 I) \2 w7 B% _                .active_low = 0,
' @' i+ x# a0 L  P                .gpio = DA850_USER_LED0,) `/ l& J: @. k0 K# y  _/ g; u
                .name = "user_led0",8 R" J8 X+ w  h3 `
                .default_trigger = "default-on",
4 a0 l/ L% j, p2 k        }," n  G* i1 i6 ]
        {
. h% b, `) D, r+ s2 u5 Q                .active_low = 0,! O+ |( e) L! T- ]
                .gpio = DA850_USER_LED1,
7 K7 E, P# H5 A1 h$ O7 m& r                .name = "user_led1",
7 w- p% N: \  r* @/ S; _+ A                .default_trigger = "default-on",
: K/ d( W& g7 d& i7 Z        },0 s. [2 d3 b, R) e2 ?* b
        {( N1 J* p* e" u/ C
                .active_low = 0,
& i; {: o* f) [: a" q                .gpio = DA850_USER_LED2,
5 l' R# j" I1 [4 v                .name = "user_led2",
  B6 Y- x' i, o  |0 E                .default_trigger = "default-on",
. C! N9 J# y' q1 M% i3 J4 S        },
0 V) s. V0 g( \8 [        {
& t8 ^2 y0 U  h" ^9 j) V: {3 _/ T( }                .active_low = 0,7 K0 z$ U6 z1 L' @
                .gpio = DA850_USER_LED3,
; r- O! v! E- Y7 P3 z3 i! l                .name = "user_led3"," f: y) a: q& Q4 @, H* d
                .default_trigger = "default-on",
2 E5 F, N" c+ t        },
7 n2 S' d. U$ h};
. C1 |$ O# q& T; e( I  ^& ~" I+ ]& ^0 {
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. V# V7 z+ r& n# w" f: p1 b
        .leds = da850_evm_tl_leds,
' P6 d9 S  ~0 ]. d1 B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* x6 E4 b$ Q2 n! a  v" T};
: S) B2 i+ n, {3 {
! {* Y8 I9 Y  v, lstatic void led_dev_release(struct device *dev)
' Q1 d3 v- Y& U% Y+ U& ?3 B+ [{+ R3 y; g! S( l3 P. v
};  b1 L: U, s  L
5 B2 J+ g  r* I& a8 o% r# ^* E
static struct platform_device da850_evm_tl_leds_device = {
+ ?6 B+ c! R( {7 g        .name                = "leds-gpio",
( Y8 O4 F8 f0 T1 W0 J3 r; u1 k9 r1 Q2 b        .id                = 1,8 ~" _. k* P* o! s1 M7 L
        .dev = {
1 l6 g$ k' w. L                .platform_data = &da850_evm_tl_leds_pdata,) H3 P$ B" G$ P; X/ p
                .release = led_dev_release,
( Y3 Z: A( U5 C  u, T. Z. ^        }
1 F6 h- l* Y+ j& D$ q) V9 c};3 A- Q$ Q4 u/ V7 s$ Q& l

# N' P: l/ l5 R* Pstatic int __init led_platform_init(void)' }5 g' I: k! K7 L; G5 q4 F
{
" U' F! d; @, U9 M2 `: }        int ret;
# V# P, M- |. J8 ^2 \#if 0
. T( o, m* L* u/ ^4 p/ t        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 f  g5 ?! w+ n6 o* A2 j* r        if (ret)7 y, ]/ b- y1 I1 q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- t4 Q1 ~4 A3 A, ^& S. \5 S3 c
                                "%d\n", ret);2 `. b) i6 i( K2 q
#endif/ a& {5 `. ]6 @9 l$ @
        ret = platform_device_register(&da850_evm_tl_leds_device);! ~0 D& f) ^* O/ R9 D' {  z
        if (ret)0 [( w7 o/ J# W
                pr_warning("Could not register som GPIO expander LEDS");6 D+ u7 ]4 t" L1 ], h$ z
        else
& K7 X9 N% H  d' h  p                printk(KERN_INFO "LED register sucessful!\n");
9 \$ p  W: h' n0 v1 a
* P2 [$ l6 W8 ?& k        return ret;  l$ G' p! K$ A2 j$ p( P# ]. w
}' a" L2 m" L4 ?  b

) M" `% a& F0 B4 c# q* ?static void __exit led_platform_exit(void): e! ^6 s/ G& [7 J5 r
{
* G: ~  }9 v0 j9 U+ M( }6 ^        platform_device_unregister(&da850_evm_tl_leds_device);& N  k5 q- ]2 M8 ]' w
) S1 W8 a9 D: p
        printk(KERN_INFO "LED unregister!\n");
0 x7 p" u2 L/ q: ~. P9 S}: V7 V+ S0 }/ m9 O
) k5 F' M* X* |- _8 d3 k
module_init(led_platform_init);
6 ]9 H: e! V% H+ Qmodule_exit(led_platform_exit);, l8 d0 ^# B2 U/ |" P7 Q
2 p' W" z2 \+ p9 y7 a: h# `% L" \2 S- n
MODULE_DESCRIPTION("Led platform driver");9 v9 B" ^# _$ E5 R7 Y& S
MODULE_AUTHOR("Tronlong");
2 ]  J: P' Y7 y! R4 XMODULE_LICENSE("GPL");
: M( L% C6 t8 Q2 K2 \6 F$ m% a6 Z) {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-7 14:13 , Processed in 0.036923 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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