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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: b  N( L: k* v# P3 {2 g( a#include <linux/init.h>
8 p1 c+ V6 z8 U6 T; I#include <linux/module.h>. e! a( w& q* M; s0 i* G
#include <linux/kernel.h>: Y2 h; H+ N) K# O
#include <linux/types.h>/ `+ l8 Q* C% S" i
#include <linux/gpio.h>
. S1 @) T/ {5 k) [2 ^6 v#include <linux/leds.h>+ E: \+ K6 [  r
#include <linux/platform_device.h>1 i' l. I( T* j0 G5 n% r
# T+ \2 k+ h3 z2 U" H( P" ^+ s
#include <asm/mach-types.h>3 ~" u! f% a# m/ `+ I2 N- ^# q
#include <asm/mach/arch.h>$ W8 a0 Z' j2 V7 F/ h6 ^9 K
#include <mach/da8xx.h>8 ?% F) Z  G, o2 J. Z; w$ J3 _
#include <mach/mux.h>9 S+ a2 G& T( c5 D( N
( @* s' L/ Z2 y6 j8 G. r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ ?. o' n# r+ u$ h, l5 p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 @6 y! t6 g" d  e- s. U5 K  q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 C" k8 O0 v8 r5 o5 i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), e; H' K2 D0 m2 E, e5 M
/ W! u' b5 L' k; f/ ^- W( U, ?1 C
/* assign the tl som board LED-GPIOs*/
' b8 f1 i  a- m+ ostatic const short da850_evm_tl_user_led_pins[] = {& J3 Z7 g* T& U
        /* These pins are definition at <mach/mux.h> file */
2 R0 s- F" P2 C6 v( Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ P- y7 K4 |- m        -1
8 g' I. z0 x' h};
) n6 i- r/ {' P& a: A9 S
! @+ X( r8 N8 ^1 ^" b7 \static struct gpio_led da850_evm_tl_leds[] = {
4 N% A2 |) d$ A$ t, q+ C        {
& x: p& J* w. P4 m                .active_low = 0,6 S# K! {+ G- ?/ D
                .gpio = DA850_USER_LED0,
% n: Q: J* n  [5 @( Y6 a                .name = "user_led0",
+ E7 r! @8 T0 P! R% ~: j$ D                .default_trigger = "default-on",2 O0 m- Y' O9 e3 C; e/ F
        },/ a6 l  \3 c! B6 O( a
        {
/ h2 m, {0 |' H! u; Y2 P; u4 D; Q2 \                .active_low = 0,
$ \" y$ }7 u1 ~4 q4 H- W                .gpio = DA850_USER_LED1,
% B0 \8 M# H, I0 K. B* N- ~, p8 V                .name = "user_led1",: N. s0 z* o5 m5 ]$ e
                .default_trigger = "default-on",
% H7 Y+ q1 Y7 u        },8 P6 t: k+ S. {3 e
        {
- T# u! n0 b- N! |                .active_low = 0,
/ Z: {3 ^7 u$ E6 y& N5 [7 k1 W                .gpio = DA850_USER_LED2,
  s+ ^$ e7 N. M) S# P                .name = "user_led2",
$ E. l* }, r/ a                .default_trigger = "default-on",
; C* D" C8 H; ^! F1 k4 r# V) `        },
8 X2 ]9 E  \* I2 o1 x/ H        {
& n, F  H& l0 m. x                .active_low = 0,. s2 V) p5 W* k$ `  g
                .gpio = DA850_USER_LED3,
' `! z3 `, t' s9 S" h                .name = "user_led3",$ A& Y2 j/ A3 t6 @
                .default_trigger = "default-on",
+ W; `( Z- U4 S3 J        },
: K6 ]1 [% t% n% T$ D, g4 Z};$ x8 }8 E) L3 F9 m$ Q+ y& R

/ ~0 r2 d1 Y7 `9 istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" [/ }& h  G! ~* J        .leds = da850_evm_tl_leds,% G1 j2 R$ q* O& M* P7 `
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 O  V# ~3 {. d* d5 v8 \) P};
8 Z: j6 D" I* i5 G1 b4 L
7 ?* F1 \3 i+ xstatic void led_dev_release(struct device *dev)
5 [5 ^3 Y. {" i% g  Y; s8 ?{0 A: j+ F4 N- }" b2 I$ }6 R* P
};
8 d0 I5 u# h  o, u( w6 S
+ y8 \( A* g& W5 d  r# d/ C8 Ustatic struct platform_device da850_evm_tl_leds_device = {
& _: ]; b: L4 j0 h7 G' z        .name                = "leds-gpio",* Z. a; s& J# }8 B: s. p: s
        .id                = 1,( X% U6 Y% i) |, |. }/ E" r1 \7 b
        .dev = {
1 {0 k8 s/ E& [1 p0 o4 N# T                .platform_data = &da850_evm_tl_leds_pdata,  ]# w& O& d0 p; ?
                .release = led_dev_release,# z7 R. {/ t! X  V/ }
        }
: y# A& ~9 y* O1 ~};
; J& R& d0 j5 Y4 h4 B1 ?( b
2 a$ n* G7 Y1 `static int __init led_platform_init(void)6 [  b$ K% P0 p$ r: m
{5 P+ \0 l! U& N9 B0 n: Y
        int ret;* N  F; V( p9 m1 m2 R7 t8 j
#if 0+ T5 H; Z+ b" J* ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 M' T- L( K* s6 Z& ~$ H% D: P        if (ret)
: W1 L3 ]/ _) ]+ Z! K                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 L5 @+ ]# q3 w3 c
                                "%d\n", ret);
6 I# b5 H1 H; k/ H) j0 [#endif
% V+ {2 c- ^! U+ B        ret = platform_device_register(&da850_evm_tl_leds_device);
+ h" W7 X) ~1 L! `9 c5 v        if (ret)
; n4 ]4 l3 c& g- j+ w                pr_warning("Could not register som GPIO expander LEDS");/ P8 k+ K  e" t" M- q  E; W
        else
, }# p$ f4 \! Y8 k1 A6 [                printk(KERN_INFO "LED register sucessful!\n");
/ W" C$ }( k% ^. J* C9 S6 E. r) j- D6 k* H8 ?; I. t! c9 m& M% ]
        return ret;! v7 B: L; \& y5 p
}
7 S- I  `+ A4 g
! F' z0 o+ O& p4 w/ b! R7 t6 w1 sstatic void __exit led_platform_exit(void)
& u, E9 G% N6 A% A& @{/ `  Z% s) [% K) p2 b
        platform_device_unregister(&da850_evm_tl_leds_device);4 B- _, e! K- z2 J1 ?

1 i# k' W4 C+ ^' v' M" \3 ]9 g        printk(KERN_INFO "LED unregister!\n");) ^1 {8 k3 e# l' {) U7 [- Y
}
$ K; ]$ G0 p8 I: h6 j, u. j- }9 A0 L+ _9 r$ n% X; q9 e% F
module_init(led_platform_init);6 U8 c! {6 T: s  P
module_exit(led_platform_exit);% Z7 L! ^# y9 x$ V
; o, b1 h6 _# L  D
MODULE_DESCRIPTION("Led platform driver");, G1 U  ^8 q9 F8 M, d
MODULE_AUTHOR("Tronlong");9 h) z( E1 J8 {" O0 N
MODULE_LICENSE("GPL");
  w9 _9 z! j5 l" k- ^8 u9 \4 G
4 P( ^9 A; ?! `$ `- |  X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-23 13:58 , Processed in 0.039939 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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