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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 r7 u" a/ z1 ^; j* s; C2 x- p#include <linux/init.h># W+ j, j5 f  K' L  G8 K
#include <linux/module.h>1 d( \1 V, |; ]5 V
#include <linux/kernel.h>
* c0 T8 z% g, Y+ C$ v, y#include <linux/types.h>
& R  c0 C) U, p- {1 \! q; c#include <linux/gpio.h>
" a/ U3 G( A! t# G% v  C; [#include <linux/leds.h>9 w& s. V8 R2 \7 c) y) U' s* d; d# ?
#include <linux/platform_device.h>
- j2 y/ d8 J0 W9 `/ R7 f) t3 J1 _$ w! g- f
#include <asm/mach-types.h>
& {9 Q5 W6 J9 |5 p3 z( ]4 e7 S#include <asm/mach/arch.h>( O  X  u+ q, d( p" i' Z6 R
#include <mach/da8xx.h>
% T5 p3 h+ z& m; D3 h+ d#include <mach/mux.h>/ w) P9 Q/ M- E- b* b4 M3 t
# ?7 X% d' G  X( A# x8 Q9 Z6 c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# Z7 ^& e0 _4 G  M, Z' L: `/ Q# `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' ?! V, n* r  M( E, b
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): u/ z" h/ [" x- e& ?
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" s7 N6 q% A9 @, k3 w

  E& ^  c7 b7 S& ~6 z* f/* assign the tl som board LED-GPIOs*/% o7 A6 R# L0 v* _* _
static const short da850_evm_tl_user_led_pins[] = {' A. p  M# b0 W. A
        /* These pins are definition at <mach/mux.h> file */, }1 u9 T9 k+ ]7 X
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! [- r& G% T4 y; A+ E; V        -1
8 d# H9 u" A% r7 T5 F9 L" q};
2 q+ M6 x  z4 h% v# _! P: U9 r* A3 m8 d" y, v
static struct gpio_led da850_evm_tl_leds[] = {
8 v! b& R7 G+ m( D1 a        {; \$ x# x/ j7 t; E6 l
                .active_low = 0,+ ^# q6 i9 o0 v3 ]. P
                .gpio = DA850_USER_LED0,
+ ]9 Q$ \. v. A% r" N# E                .name = "user_led0",
0 r+ T( l7 i# e' V8 J$ ?                .default_trigger = "default-on",
1 l! C( o) D4 S; ^9 w( y9 \. S        },
& |( H  w6 E; P( Q) J        {
5 g# o5 N% Y9 E5 ^# e8 _8 L5 p                .active_low = 0,
) v1 I. O1 e8 h5 r  v8 U: T                .gpio = DA850_USER_LED1,
, N2 x' q" K) s& U1 @: ]) e                .name = "user_led1",
: g- {  j" c2 E4 J2 n9 d2 O9 L                .default_trigger = "default-on",. E2 j8 K6 P1 F* o
        },
" ?, Q! }( B0 \* H3 ^# E5 k) E' \- G8 O        {2 t# ]$ s+ `' C) _$ |
                .active_low = 0,
0 a6 b" C* d, j                .gpio = DA850_USER_LED2,
4 g7 H6 g" Z# a) v% N                .name = "user_led2",
4 ]: w; b- u  T, ]( g0 q                .default_trigger = "default-on",  X; c& U( `+ C4 o- ]9 t; X
        },- q  ^$ M! V+ N
        {
' P. \3 f$ F5 J7 O. ^1 x/ I' c                .active_low = 0,4 e4 P' B* M0 a( K+ U
                .gpio = DA850_USER_LED3,
7 t" }' E4 }4 D- a                .name = "user_led3",
8 M0 n! F7 _( A' t6 ^                .default_trigger = "default-on",
7 Q! s# [& w& |8 d6 m        },
6 p6 e- {) n6 W3 z9 g};5 `2 D( q- _) a+ b7 F1 O

; ~1 a+ ]! c% w) `4 t* lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ S1 {/ }; R& {2 x7 f
        .leds = da850_evm_tl_leds,
- X( a. c- u1 ^4 \0 W$ |        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 c, m! ?, `2 x) i; X1 B
};
0 v1 {- Y, k" L' y% ]
, Y- j8 d/ N0 kstatic void led_dev_release(struct device *dev)  ]7 n! q, x6 A% B
{
, @" E5 t! B: Y};" T+ v- n7 R* }
2 p4 F3 e, Q; G1 Y3 N" [
static struct platform_device da850_evm_tl_leds_device = {
8 t% z$ ]: Z- g        .name                = "leds-gpio",' Z$ E- z2 b' g
        .id                = 1,
  ^# P  H! i4 H; w0 x5 ~4 u1 f8 B0 j        .dev = {1 I3 X& Y5 G: I% C
                .platform_data = &da850_evm_tl_leds_pdata,
8 S' g9 U7 M5 q' g                .release = led_dev_release,
/ i9 `# O$ |5 Y/ l        }
# _3 `3 c9 P# p/ c  |};
7 a( K: g/ H8 x# O! A: r" M# l" d4 a5 p; A% y0 K3 i+ }
static int __init led_platform_init(void)
- d7 L, I( E  Y! O) H" \{2 }. {( T* k8 S' e: D' e
        int ret;' {7 }3 _/ X7 K2 n
#if 0; @- _6 ^7 n! z8 ?. V/ y1 s9 a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% \5 s8 @" }& e4 ]        if (ret)
% `8 t+ H. z; a; X) [3 W3 c) y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 o$ Q: X2 A3 y. Q( O7 n  S" \! Y                                "%d\n", ret);, D1 W  k- Y/ i# W5 ?! s
#endif, i% ?% Q% A* r% s- G
        ret = platform_device_register(&da850_evm_tl_leds_device);$ a" e- f$ t% S; s) }+ {
        if (ret)- h! A: C1 q- Q) Q4 K5 s
                pr_warning("Could not register som GPIO expander LEDS");9 a8 }  j& h. p) [; M
        else* n5 {+ g1 A( X1 u$ i
                printk(KERN_INFO "LED register sucessful!\n");4 T1 P" q6 M' p4 j5 m- q; w% k# T

- ?3 s  n5 Q% Z# S9 ~5 N        return ret;
6 _' T2 G' M+ J) W}% w2 A4 C) F2 q- u% n9 V6 c* N

+ |8 |- n) q4 `static void __exit led_platform_exit(void)
: q, a% H$ n3 F9 K: J, a- v{7 {4 ?/ t- o, `; |% v! w
        platform_device_unregister(&da850_evm_tl_leds_device);
. I0 l/ c2 {4 B0 x' ]' ~( c
% P$ f% I8 [+ q0 D7 @+ k6 }/ D! `        printk(KERN_INFO "LED unregister!\n");
) E9 I% B9 C0 P5 }# c}1 L) _0 K6 L) o* c

; ^& P. r$ T8 X; K" u7 W  o% qmodule_init(led_platform_init);
. E' V7 {# N* Z- Kmodule_exit(led_platform_exit);
2 _( N# h. \, _% Y
3 v$ S/ A/ l, T. Q1 ^- v% s! m- F/ jMODULE_DESCRIPTION("Led platform driver");
& G5 y. Y2 o* I. v' |  l% ^MODULE_AUTHOR("Tronlong");$ y( ]6 J+ z9 G$ R/ \6 }- t7 H
MODULE_LICENSE("GPL");- M/ G2 D0 W( |9 ^# T
- A2 C3 v8 |4 T5 R3 d8 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-4 21:46 , Processed in 0.040221 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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