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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- H0 P, T. T. W6 v. `/ J#include <linux/init.h>
- i! O, t- a/ U#include <linux/module.h>/ w& Z- h' J# N3 z
#include <linux/kernel.h>$ a) J4 Q& P4 Y% a0 ]) m7 b: |$ t' x
#include <linux/types.h>
1 Z; J" t2 B% h" ?#include <linux/gpio.h>
& Y, I5 j# p( H6 V# x#include <linux/leds.h>
7 ?1 n9 f! S7 q; _2 Z9 X; ?#include <linux/platform_device.h>
; z+ Z9 D. \( k8 h$ @- O# x: _* a# {8 _
#include <asm/mach-types.h>
- r+ h* P1 ~" N' h' p- h' }#include <asm/mach/arch.h>! I/ f# l7 {3 H3 o5 W6 D: N
#include <mach/da8xx.h>" p+ j5 E/ X: O" c) L
#include <mach/mux.h>
$ D  `7 W. j) A2 S% @/ c
' v4 C* h- `4 ?3 g. t; o#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. L5 M3 f) l, e" J  `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- q) Z# p8 t' o6 z  Y3 D  Q$ V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% M2 s6 K  O" w# x$ V, q5 R#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 V1 O2 S9 c" X& p% e8 |/ p
, M1 j. O4 ~* o  Y7 k/* assign the tl som board LED-GPIOs*/3 t& c+ d, r$ ^1 [
static const short da850_evm_tl_user_led_pins[] = {
, m( G0 V+ h3 }0 j9 j        /* These pins are definition at <mach/mux.h> file *// y; `. ]( X( ]
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. L' e, S: \  \& ~! F7 u- h1 ^
        -1
3 F/ ^3 C3 E2 x% d7 h- N};
. F. S% n1 k; h7 x% w$ G
/ L. H/ C# d+ j. @' G) sstatic struct gpio_led da850_evm_tl_leds[] = {
0 U9 U/ C6 h0 d& o& V) _2 I% b        {5 Z- B5 p8 }! L  z7 X! q/ o
                .active_low = 0,+ Z! Q/ W  f* G- B
                .gpio = DA850_USER_LED0,7 D& F, @% P3 c2 O9 O
                .name = "user_led0",) F) `' ~. M3 I3 S, [2 n* v  {; {8 G
                .default_trigger = "default-on",
" D5 z4 l. W( O! w( n+ U% V        },  `4 A  S" p  Y) N2 k) o
        {
) D' w. s' ^) b+ x# h                .active_low = 0,' _; t! b9 M. M1 H) Y7 @, G  j
                .gpio = DA850_USER_LED1,* f( s+ P! ^' _& f9 z8 s/ n
                .name = "user_led1",
- f! |, |4 R5 s! m4 u- t4 J8 D8 B                .default_trigger = "default-on",
  \& K& p. Q5 P! c% X' b        },
$ e* C2 F0 _- i        {
8 Q% ^- D, C# x) U4 Z5 T& E                .active_low = 0,7 m" j% E: c% a( U5 H
                .gpio = DA850_USER_LED2,
7 [% q/ B5 l0 X0 p  U( j, i/ A( ^                .name = "user_led2",8 z6 r7 z) H" e' G' W. t0 @3 ]
                .default_trigger = "default-on",
- A' v, O- C  i2 C9 t        },
/ g+ @' ?. Z/ p: c( S) q! r% W        {1 N2 |$ K/ y. c2 w7 {6 Y
                .active_low = 0,
$ G$ B+ q5 Y4 o" ~7 ?! i9 e                .gpio = DA850_USER_LED3,
( k7 M7 H) `- a+ O5 E                .name = "user_led3"," z! v% ^6 M$ f% Y3 \& c6 ~
                .default_trigger = "default-on",$ y; g. x' O9 I2 U
        },
8 I6 R$ T3 _* Y};
% y/ [/ q7 S2 l) w- s: p% U! y" F+ ~- L+ Y- k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 L6 Q' |4 i+ ]& a% a, e" @
        .leds = da850_evm_tl_leds,/ E+ a8 `+ l" D8 b7 a
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ ?/ a- ^% B) R$ d6 z  ^! X( P};
: ?( o8 Q) Y" V5 L* w" K! z# K0 g5 u1 @1 K, m8 o4 @9 R- w3 a
static void led_dev_release(struct device *dev)
% {" I, n$ w) R- m1 N{  M1 @8 x) N* O: J, {: N+ U
};
0 @: Z0 k9 S# Y5 E7 x# Y) T8 _  g* _" e" R
static struct platform_device da850_evm_tl_leds_device = {
. L, Y6 V2 [. d& ?. ]5 Q        .name                = "leds-gpio",
* s7 _8 @: ~5 e; N        .id                = 1,! U6 Y* u8 q3 g, b
        .dev = {
2 R) y; r# M6 q; H: E$ z$ E* J                .platform_data = &da850_evm_tl_leds_pdata,4 n7 G# r3 b8 O$ c
                .release = led_dev_release,
" n7 W2 q; }/ c2 f- g; B        }
( |* j1 I! c4 h6 C};
, Z- I6 |2 R% y9 @/ f0 |" T# G2 b* Y
static int __init led_platform_init(void)
7 t+ H  g+ K- D# m9 E8 s! \" W{
  B5 \* u6 V! E! m5 M        int ret;
8 Y" X$ \( k6 A6 O+ @#if 00 \+ }9 x7 W) u* ]# F- S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 T) q  F  n2 m! ~3 k4 Y7 h5 N        if (ret)
( @7 c, x6 W$ V2 q3 P9 Q- `$ i                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 d- d# A6 v% w2 S7 _; [
                                "%d\n", ret);9 I- w! W# M' O
#endif
$ q( E- ]* L7 Y( N7 @3 O        ret = platform_device_register(&da850_evm_tl_leds_device);2 v) i; b! B& E2 v7 m' w3 e
        if (ret)  W' q& m8 Z7 {3 h' w( y: G
                pr_warning("Could not register som GPIO expander LEDS");
0 ], G; D4 V6 G' f' t4 v. d: l! P        else
( _% Q# K5 s9 A+ t                printk(KERN_INFO "LED register sucessful!\n");
2 W; [  F9 C- Z3 a3 C1 i: r9 s
3 ]8 V# Z$ K0 u9 U4 ~        return ret;
+ M( H  K3 g0 v& X. D# ^' o}
2 f& T$ w5 n! t7 n# k2 k: }0 q  f' j, {- Q1 [- R) k' ^4 y  e, O! L
static void __exit led_platform_exit(void)
* V1 S0 W0 \! p9 w2 R+ u{
( o8 n% x! j! T- j0 A6 L5 M5 U9 \        platform_device_unregister(&da850_evm_tl_leds_device);
- Z0 ?5 V/ d) a, p% v
0 h8 u: G# ?# q- }' y        printk(KERN_INFO "LED unregister!\n");
" H2 X8 h& _% e' u" `) s2 z}
$ B/ Y  C  U, o# d" \, o2 k/ m( e, [; x2 h4 e1 H
module_init(led_platform_init);+ ?- Y3 q4 R- j2 x& o
module_exit(led_platform_exit);) s& r# R' a8 b

4 z5 d# m- |- c" l8 e7 VMODULE_DESCRIPTION("Led platform driver");8 U# }1 M4 ?% k8 e
MODULE_AUTHOR("Tronlong");+ M: }! f1 E$ G
MODULE_LICENSE("GPL");
* y6 h# O+ X0 Q7 B7 g5 Q" D% d+ y- z$ y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 16:06 , Processed in 0.038206 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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