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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( l1 m  q9 e, z8 p( W: s#include <linux/init.h>
. w0 j5 [5 s' |% d1 b8 E#include <linux/module.h>
- U7 ~/ d7 M0 ?#include <linux/kernel.h>
, O, P( P, ]& w0 _" U" ?#include <linux/types.h>
' A0 M; I9 c/ P* a5 b3 g#include <linux/gpio.h>" K- Z! }2 ^* s, C1 b
#include <linux/leds.h>
5 n/ J# w6 E4 m* b# k+ E  G( i#include <linux/platform_device.h>7 z( S& Z/ {7 N2 u3 N
) U( L: L7 V# {! e* r
#include <asm/mach-types.h>
, ]9 p: }) `" h+ S7 z#include <asm/mach/arch.h>
) l  w0 m( x8 V4 \9 N7 f- y4 V7 h#include <mach/da8xx.h>
1 E7 ]" E: j( ^& q#include <mach/mux.h>
- w" J  G5 B7 C/ c$ O
) M+ s. Z, I9 y0 J2 ?#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! `2 P6 c; ~7 C1 k, \) K#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* U1 J3 o' q3 G# h+ u0 Z' n#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* x( y7 G- M5 g5 x) L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' c4 S# i% f6 w4 B! y. N# }- a' |! J% q! i$ ^
/* assign the tl som board LED-GPIOs*/
$ ~" g$ c' G, Q5 ostatic const short da850_evm_tl_user_led_pins[] = {5 r5 J# f  _& n: M# R
        /* These pins are definition at <mach/mux.h> file */, S( q- [$ j3 Y' q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% R7 Z, L8 ~. |4 @
        -1; N6 N4 f! ^& K# u* N
};9 @: X- o3 k/ B$ T* N

) B7 @: }0 q/ A8 T1 N- B! ^static struct gpio_led da850_evm_tl_leds[] = {
, R* q! D- N7 f        {- e" B1 y8 u0 {; B% x5 Y
                .active_low = 0,/ f- c, b1 j$ {& i4 b+ `, W
                .gpio = DA850_USER_LED0,: B6 O. f0 k1 p$ r5 n
                .name = "user_led0",
0 Y2 f) P' y. U6 K% b                .default_trigger = "default-on",4 j1 @" X- t8 f3 ]. C, C6 R
        },* @/ e: H- E+ z$ b; _
        {
5 f  L: B( D; O! l                .active_low = 0,
5 A. ]+ z+ u4 ~                .gpio = DA850_USER_LED1,6 |1 m9 B1 G/ R/ q. B+ U/ m9 C
                .name = "user_led1",
& h: K6 R: H# W8 x8 k& Y9 a                .default_trigger = "default-on",
' L% L, ?0 e8 R        },
2 O- V0 D  `4 N! b/ `  {        {
) `9 ]4 M5 o( U2 H; i7 Q. h                .active_low = 0,
% m. L; _! |: ^# J; V                .gpio = DA850_USER_LED2,
8 V$ r' ~+ I5 [) @( c! S                .name = "user_led2",/ g  r; Y$ {2 r- @
                .default_trigger = "default-on",( e% ?" Q" k1 p
        },6 A) `/ s" a& v% {$ f3 F
        {
* }4 n# d3 U4 \4 y$ E                .active_low = 0,2 o1 j/ q- q8 G: i8 Q
                .gpio = DA850_USER_LED3,7 F* f4 _: L2 i0 \" j1 j! q3 J
                .name = "user_led3",/ y6 X0 N! Z) z+ c  _
                .default_trigger = "default-on",
3 T& D( r/ \3 R, L# u  e        },
8 w5 _9 q9 _# E6 {' t" v};7 e% H3 Y: v- z
% F' v+ G$ m1 u$ L2 }4 B& e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 _( t. \  ?0 ~, v8 ]' G0 {% C        .leds = da850_evm_tl_leds,8 m7 n( ?. ]4 w! K( G
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 C" m2 n' a: h0 p& W7 {};( h9 C$ |8 F0 B# _/ D

* s8 C& h: D# c5 C" S# @static void led_dev_release(struct device *dev)4 {! l9 r1 {9 }5 A7 ?8 s
{
: e/ O5 U5 ]# x+ k7 u};
2 Q, B$ F  x0 W- [5 I7 L
9 Z% |" n* E  Z: |static struct platform_device da850_evm_tl_leds_device = {; {/ `- \2 J! y6 @
        .name                = "leds-gpio",
1 ~* b5 O1 A$ h1 u- B- B& k  Z        .id                = 1,
* t0 P" f1 o! U, M' N* E        .dev = {
& [: j" s4 X* N+ i7 O0 I' l                .platform_data = &da850_evm_tl_leds_pdata,
$ d/ L! p5 _) f% _- n+ l) t* j                .release = led_dev_release,
( w1 n! s& w+ N5 \) u4 N        }/ ?/ |* Q4 \5 V8 R/ E) l
};3 P. h) N7 o: Q8 y5 D4 p
) \/ V3 s# g6 h  V6 [$ W
static int __init led_platform_init(void)
) r/ ?! q1 ?1 x; T7 Q! a; ^4 K! P{! D4 R4 D! F0 q! v
        int ret;
  k/ q8 w, a/ ^9 [#if 06 I( \, C" g8 F+ m5 b
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) h6 x, D4 n( r% G0 d% l" A" H
        if (ret)
8 y; b+ y, S% k; l3 j$ Q3 Z/ s' ?                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; P* K6 @" w4 b' \                                "%d\n", ret);
& V6 [" y8 m9 j" t) G0 h#endif
! u3 D5 M# N* @) s' I4 J5 s! t6 `        ret = platform_device_register(&da850_evm_tl_leds_device);/ ?& f3 d3 l. V$ O3 t5 O# K  v
        if (ret)
  I- E& O" d9 c& m! @7 F; b2 `                pr_warning("Could not register som GPIO expander LEDS");1 Z! W% n# C' F! B
        else& g' L& x3 s5 ]' o2 b
                printk(KERN_INFO "LED register sucessful!\n");
2 I* T4 t% ]& n$ e6 w/ V' J# I! e& i2 n$ g; K" ]
        return ret;
; d$ x# C, B% N3 Z}* B* M  z/ k) b/ x

; a7 @3 e& J5 n3 Q0 q: @static void __exit led_platform_exit(void). }$ B! ~3 F8 s% @6 v
{  [3 i& ~" d+ v1 I4 c
        platform_device_unregister(&da850_evm_tl_leds_device);
" \$ t/ t( W5 |+ O; E3 F2 Q* g  `( x
        printk(KERN_INFO "LED unregister!\n");
- b9 J/ ]% g% _3 o- [}0 m. G2 O/ T" e1 f  o0 e# H: d

$ Q: u9 N  H" O6 y! Bmodule_init(led_platform_init);1 \$ Z9 h# n) t9 b. o
module_exit(led_platform_exit);
) d9 B: z  ]5 z- y/ N' g9 V: H* E7 ^  r0 y' I
MODULE_DESCRIPTION("Led platform driver");
6 Q% F$ X4 ~0 K+ OMODULE_AUTHOR("Tronlong");
. H1 c) Z/ K4 e% T2 k7 RMODULE_LICENSE("GPL");: r6 Z' J! f4 @& H/ \: W( P1 h
$ X9 S% O! w1 p# B' f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 23:00 , Processed in 0.038678 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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