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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 F2 L0 D% t, n" Y/ z# `! m3 I- K#include <linux/init.h>
8 F  |- ^, E: P/ H0 K" @#include <linux/module.h>
& G5 j( z- o: a, m1 V3 w#include <linux/kernel.h>. e, I* v+ g  J- r* P! Z+ g* q; @
#include <linux/types.h>. V- G, N- F# ?6 b% b% {
#include <linux/gpio.h>
) H- b+ r. }, m#include <linux/leds.h>
. B! E& W; H6 Z; Z) H8 h- ?#include <linux/platform_device.h>
8 t9 v5 h! e0 _8 k- M( H4 Q9 ^$ _3 @; ^- f1 A
#include <asm/mach-types.h>
; ^& v& z9 M8 L#include <asm/mach/arch.h># H! Q+ d) p3 ^, E( [4 i6 z
#include <mach/da8xx.h>
# ?; }4 D- W) e: l#include <mach/mux.h>3 ^. f3 h7 X. _1 i/ V
' F- p, m3 a& i: _: j$ L4 s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& i2 w5 V! C# a2 K% i- Y# R" t
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  G& A# R3 a0 V1 g/ V! `" V# e. x9 D#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# g$ t* x( j& y7 Y; l
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 @# k0 W: f& q  ?% t+ C, P0 D/ F+ P' S0 \- L
/* assign the tl som board LED-GPIOs*/
. D, m! K/ `: F* o8 f- sstatic const short da850_evm_tl_user_led_pins[] = {
1 m# V! l- k+ T7 d6 H) N3 r6 L        /* These pins are definition at <mach/mux.h> file */- q& l1 D& }; f* A- J' E
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 j% G! Y2 F9 V0 `
        -1
" ~0 h0 {2 b' k6 m! s1 I};
" C$ S4 x; L( r& O
- @% T0 f2 U, N  @  x" A! wstatic struct gpio_led da850_evm_tl_leds[] = {
6 i) ?9 I% P: J* m4 n# G" F        {
: B# G( N( q3 Y! D* {( ~                .active_low = 0,6 W% T$ @2 g* S
                .gpio = DA850_USER_LED0,
- u0 j/ D! Y" i' k# o6 ~4 f( u. K                .name = "user_led0",. q2 Y8 R5 M9 }! z% S8 P
                .default_trigger = "default-on",8 O6 {1 h' O7 u
        },& Z$ h& A* ?; ^& p* W! {' j  v/ A0 u
        {7 a# L/ d% N8 p6 l3 @0 f9 q0 i5 r
                .active_low = 0,$ V6 X2 [0 R0 ]- S* C' k( h) H
                .gpio = DA850_USER_LED1,. T4 e, C$ y( I; _* ]1 X
                .name = "user_led1",, _  a- x$ O; J$ r6 ~/ r
                .default_trigger = "default-on",- j. }9 A/ X2 X! S' c* S
        },. q! k' S1 J# \, J! P- j
        {
" i# D% J# N2 H3 a5 |/ j                .active_low = 0,
3 M! t/ J, a) K1 a5 Z7 i! H                .gpio = DA850_USER_LED2,- C5 w5 B8 k( g7 g5 S
                .name = "user_led2",6 C9 o" b0 x7 @. F4 G7 y
                .default_trigger = "default-on",
# F& |3 M2 I& i4 T2 u/ A        },. B* ]7 D$ \  p; F. `" A
        {' m! M) r% E6 }: m9 \# ~
                .active_low = 0,
- m$ G3 E% F/ C' U& Y( ]                .gpio = DA850_USER_LED3,
6 z4 Q. g2 J% x( x. i                .name = "user_led3",
, p2 g' y. h+ |' P* u" `' _& B; \                .default_trigger = "default-on",
; w5 t1 H+ B, Z- L! g+ u2 z' o        },9 g+ b1 e( a' p( Q/ R- A2 P
};8 E/ d9 ]1 a" F% F

/ g3 L. s6 W! p3 y) ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' W! D. r7 D1 h4 z+ h( j- u6 ~        .leds = da850_evm_tl_leds,( o% L) M% x% N
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' X& M5 I9 P/ @# P8 [
};
* w) V2 c& u% b! m8 v" Y( F$ s/ ?- k3 k4 d
static void led_dev_release(struct device *dev)
; u6 u9 d! `0 Q6 u/ E" H{
$ F1 u: ^+ A' Y( h- R  e9 t; [+ ?};
# l* L8 `9 B4 p: }6 d$ @* `1 A% W2 T, k7 ^, A- q
static struct platform_device da850_evm_tl_leds_device = {9 x; r, p* ?, a
        .name                = "leds-gpio",
% Q3 o2 o# `1 A2 p1 y. B" T7 y        .id                = 1,9 W( q1 f  N' r; E
        .dev = {" P  {/ j$ F8 L0 u& [- z1 \
                .platform_data = &da850_evm_tl_leds_pdata,
8 W$ j2 y8 L& ^. i5 Z7 W/ ^                .release = led_dev_release,
* }8 [# i. Q" d: E- l/ ?3 [        }- w1 ], h) _2 z
};9 Y1 {, p6 p! g/ l
/ w$ q) a2 z* |6 S5 M- I2 B# m
static int __init led_platform_init(void)& {- E# u' P+ I" q" N0 }
{, ^6 W1 @+ u  V6 d: _
        int ret;1 Q' \( ?2 Y8 L. E3 G* _+ r5 r2 A
#if 0% |) A% y! i$ m  s6 y7 j
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' T- T0 s0 @$ Y/ ]        if (ret)" y% c7 z+ Z5 F9 B* n- Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 l5 a$ V5 O" {7 @, K
                                "%d\n", ret);
5 k% x9 H; H2 P+ I9 ~#endif: Z% F" l& e) L
        ret = platform_device_register(&da850_evm_tl_leds_device);- S) g0 c: f" M7 C' O- P- o
        if (ret)
6 O& z7 y$ N% x, Y: F7 Q* p/ I                pr_warning("Could not register som GPIO expander LEDS");
) `( g' G. d# X7 K, d        else3 l) s0 L8 }* Y8 i' g6 a  P+ [
                printk(KERN_INFO "LED register sucessful!\n");
) R- Y$ S" e) w1 r+ `2 D; G+ [
' _0 ]* f" ]0 P/ o  Z        return ret;( g% Q3 U# y* P# n( l8 c' H' A
}
6 b/ R$ W% I* y0 K2 T, r! y. A* H, Y  d/ y
static void __exit led_platform_exit(void)& r3 Y  @) f( ?9 L) f5 N
{/ P( n/ A1 N/ J$ E4 v4 E
        platform_device_unregister(&da850_evm_tl_leds_device);. Q- ]: v8 o; o' B9 r

& j8 W# _* {! ^# r2 \  w: P5 i        printk(KERN_INFO "LED unregister!\n");
% H2 b8 V, X7 A, v}
) y3 o  `+ S' i- b! }
) `; W4 H/ |) ^  T6 u- tmodule_init(led_platform_init);
2 c7 ^9 ^$ Z7 B- c) n% l/ h8 Q, tmodule_exit(led_platform_exit);
$ P$ b1 ~3 x: y6 ?/ A1 H) C+ D
MODULE_DESCRIPTION("Led platform driver");
. x- U  o* U3 K9 EMODULE_AUTHOR("Tronlong");' E5 o3 X/ r# R  P
MODULE_LICENSE("GPL");
' _7 R' U5 c/ \9 `* _, j2 ^# m+ S, U$ O, e/ ]6 o# R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-17 22:07 , Processed in 0.039072 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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