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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( d% @0 A3 V2 L6 J#include <linux/init.h>- W  C: i+ y/ p; D" J5 x
#include <linux/module.h>
; I4 T* ?7 L+ A4 q2 D) a#include <linux/kernel.h>
% Q! x- J5 M% i1 w" t; \5 K#include <linux/types.h>8 v) f0 Z4 E4 X3 R2 q- o
#include <linux/gpio.h>4 Q9 I( z" X, ~& t! m, `
#include <linux/leds.h>
# [6 |7 k) h8 I. ~) H8 ?6 k( L7 n#include <linux/platform_device.h>- `1 ^5 f# v* O& C# J: h0 T- j
* K9 z; W% L" Z0 N
#include <asm/mach-types.h>
* c5 E" ^- w* e#include <asm/mach/arch.h>2 n5 d1 ~% b7 y2 D* ]4 G
#include <mach/da8xx.h>" D! [  X3 Z8 I  K9 X' w; \9 b; J0 R
#include <mach/mux.h>
2 x; [! N5 l- h* {3 J8 |) ~, e1 R7 T5 G- M6 u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& g# v! ]5 u, q/ M) A) @; K$ [, r4 \
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 i8 E+ k! ~# U; B
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 j9 w6 t5 n6 x9 H1 u. E% ^
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 k* H5 i  \+ [  D
$ ~: L+ d# O0 S5 F  F# @7 E9 R/* assign the tl som board LED-GPIOs*/
5 r  e5 B* `- B; P% U2 S5 x1 ]static const short da850_evm_tl_user_led_pins[] = {
1 B0 Q3 S% X$ [8 s$ s' d; t3 z) L        /* These pins are definition at <mach/mux.h> file */
* `' Y8 ?, I# a  Q( I+ D  L: o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# ?+ O. _5 y" ]) {3 H        -1
/ Z% k( I0 Q; m$ k};
9 v0 |8 i$ p1 u* d, W) A7 D' k, F9 I" B6 j  a% e5 H
static struct gpio_led da850_evm_tl_leds[] = {7 c! j+ g5 E" T# L! q0 n
        {
% T. f' l  U6 w7 P7 U4 d" s% A4 k                .active_low = 0,) r- Y+ o6 l+ o0 I
                .gpio = DA850_USER_LED0,' u; F1 X- j) J
                .name = "user_led0",. b: w& C& X! y8 X
                .default_trigger = "default-on",
) I, K7 c3 e; E  h1 }7 F        },  v( k+ f4 o* t$ M
        {6 R: u8 k+ `4 q; p7 e! i
                .active_low = 0,
2 e$ x. R. z; g; l, y3 h                .gpio = DA850_USER_LED1,9 t) a; L( ~+ G' I# x" e
                .name = "user_led1",/ {% M3 D- C3 z0 I; h
                .default_trigger = "default-on",2 s( b8 h; q5 n7 {
        },# q4 h! M6 h+ i" e, M% _
        {
% Y- R- @# l: w. M" \' R# E                .active_low = 0,5 m& @, |! U9 C9 A+ H
                .gpio = DA850_USER_LED2,6 f8 ?( }# W  Z- B
                .name = "user_led2",0 q; j$ a( K& C& r0 w! B
                .default_trigger = "default-on",
- ^4 i+ u- Q% _1 @% {8 V  W        },
$ i* u2 J( j, C" R        {& |4 h8 e" t" ?  ]6 I
                .active_low = 0,
) a8 n3 G/ h( r1 L# n( d/ b' U                .gpio = DA850_USER_LED3,2 I( r& p; T, `
                .name = "user_led3",
9 i1 w- y; a' S. V% t6 O                .default_trigger = "default-on",
# A* u- y% j( N7 U5 c) l) }        },
# W) ?5 ?% {4 F% s8 q1 q4 D* B};
8 E0 p! `* X0 |* m: x: S$ b" E( \2 J. n2 Q- \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% w. O6 A1 q, G; B        .leds = da850_evm_tl_leds,& ~6 N. d+ {# W
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! U* a4 S4 g( s/ \. ?# w
};; L6 E5 ?/ s* |- S* X
1 W. B. |- k1 Q; X; a
static void led_dev_release(struct device *dev)
& \1 C; P& J+ v) z3 R9 }{
8 P( x! K# W4 x7 q};' t, R1 m+ z4 N* ^* R
. Z' j+ h' M+ @; Y7 N, y1 v
static struct platform_device da850_evm_tl_leds_device = {# A$ C% C# n3 k1 }+ d
        .name                = "leds-gpio",
) Y! u6 W+ v- o) f' s        .id                = 1,# Q& E! G9 M: r
        .dev = {9 s! Y$ K) n: N9 L
                .platform_data = &da850_evm_tl_leds_pdata,
' u, m! y3 Y9 N                .release = led_dev_release,5 C% B9 L+ Y" W
        }
7 O" Q9 e1 Z6 I  W) [* `% _# E/ |};; C1 }' \7 r9 ~2 l8 b' }

, P! G# G8 R0 P' Astatic int __init led_platform_init(void)0 E* z( ?& p2 G9 L( h5 h  ?
{1 ~) G; l( Q  g* y
        int ret;+ E( v/ e6 z3 U" \& J# L8 V- d
#if 0
/ b- x. Y. W- w& u% d        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 I  R/ z  K# Q+ O  ^4 J5 G        if (ret)
  u( D, I9 ]0 H- ]/ ?! t/ B                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") I" @7 K7 |; V: g
                                "%d\n", ret);
" K$ p8 m% ~2 |! R" V#endif$ Y! `; c3 p. [& u2 j
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 C0 T( d# e& B' g& S        if (ret)
7 b1 M- ]- D2 f8 d                pr_warning("Could not register som GPIO expander LEDS");
, f* e- J4 u8 j7 d5 h1 w: a% j        else
, V! g9 ^& A$ a1 e9 C3 i                printk(KERN_INFO "LED register sucessful!\n");* V6 [2 R5 P, }( _; g

: i) a( c  [1 d  J" h        return ret;
  B6 `4 Z/ `/ Q+ M}5 y+ d2 s( r2 f# |, F: @, |' a& y

! Y1 K7 }0 r, v% ~2 J! t) O, q/ L, ^static void __exit led_platform_exit(void)
* G5 p% ^  ~) y; F$ h. ^# t{+ a+ ]' z0 f& c. u" G
        platform_device_unregister(&da850_evm_tl_leds_device);( U$ N' E+ R, {' u3 E

* f7 e! e4 ^7 X0 m        printk(KERN_INFO "LED unregister!\n");( Y$ S3 \9 i+ w9 C) n; o; I
}6 Q3 r% x& T6 U$ }$ [% ?* Z
9 D& A8 V' a4 ^' v+ A$ Z: J! `0 }" D
module_init(led_platform_init);
$ e$ _& j4 P. z/ k% V" M7 J% Wmodule_exit(led_platform_exit);4 D! i0 q$ Y5 B
% b( S- t: ^8 s7 G" z& {5 V; v
MODULE_DESCRIPTION("Led platform driver");
/ I) f& P( e/ j% {4 T) r, ~MODULE_AUTHOR("Tronlong");
& U: R7 @% B  U7 C' n( T, hMODULE_LICENSE("GPL");- T) }# _+ m* v* u9 G

4 H% v8 v9 U1 D; N! t3 Q: J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 14:43 , Processed in 0.039688 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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