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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ c8 `" D! Z* x: x7 Y- @#include <linux/init.h>
1 T& B! s0 O& z% J; [0 e#include <linux/module.h>
1 O. ]. n3 Q1 w9 i#include <linux/kernel.h>
, _+ U$ C! b8 e9 L7 E" U#include <linux/types.h>' a4 }! n' ?* D: O" ?
#include <linux/gpio.h>
9 ^+ t: N; u+ m0 ?#include <linux/leds.h>
, Y) G! P- n6 b6 j3 B# N: u#include <linux/platform_device.h>/ W; t. n5 Q0 q

- s5 }/ V. f2 @- N#include <asm/mach-types.h>* i, `: j1 u/ @2 O! _2 g
#include <asm/mach/arch.h>) I- o0 [6 g6 c5 L
#include <mach/da8xx.h>- e5 w7 h0 s! q/ ?% b  M% g2 n
#include <mach/mux.h>- Q. g1 \; m# v5 t7 d

7 x7 q! N" o. Y# r1 H#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 O6 F* D# s0 {% K* t/ H
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  q6 M. o+ M+ Y7 s4 l; u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, O  b9 Y" k' z* j, i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 m. t+ u- I7 I1 J; k2 _
* j  G9 n2 U( \6 y" i- D1 r/* assign the tl som board LED-GPIOs*/
9 Q& O5 M4 h5 n! Jstatic const short da850_evm_tl_user_led_pins[] = {
4 W# y) {0 [' j* R: q" f' n        /* These pins are definition at <mach/mux.h> file *// \2 }6 w  {, {2 u2 \6 W8 F" `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ W6 N9 Y* q( q; J/ E% `        -1
" c& q9 w, ]+ F! V3 w+ \};, T) _& q/ w+ i& X$ L+ A4 y

. U; u- k4 j$ s& Nstatic struct gpio_led da850_evm_tl_leds[] = {
" F6 ^2 v, T' p+ S# I7 u" ?        {3 p& d7 i! O0 h$ X" w7 h1 v, i  p; _1 o
                .active_low = 0,
1 S9 i8 ~# M! b8 ^  U2 ]                .gpio = DA850_USER_LED0,
8 [2 @4 A8 |, A/ z                .name = "user_led0",2 G  p0 P4 s$ X) G
                .default_trigger = "default-on",' l/ R- X8 l6 Q0 b
        },7 \/ g/ [, C2 }- g& c' O
        {
! J/ \- l1 ^' A3 e, P                .active_low = 0,: P+ l  N2 r/ M# `8 p  W
                .gpio = DA850_USER_LED1,
. a' }) f% i$ Y( R                .name = "user_led1",
- r4 q+ G  m- x7 t& N0 {                .default_trigger = "default-on",
( J$ J0 W1 O. H2 @* S& o, X0 x$ T        },
# q, i# Q$ Y+ C3 x        {
; s2 @) q' Z- u" U4 \                .active_low = 0,5 t! z6 Y3 N* `  d( j
                .gpio = DA850_USER_LED2,
/ W$ n$ q( e6 M4 Y6 A. P7 h                .name = "user_led2",- k# |- a% `9 P
                .default_trigger = "default-on",2 @2 L' t' J% {6 ?3 f
        },8 H5 Z: n) k  O  g' Q3 u+ I! f
        {
4 @/ F& |* j5 v9 a                .active_low = 0," d3 G' S9 j7 h& }# [; m
                .gpio = DA850_USER_LED3,! y$ v* _' h6 b3 S  l
                .name = "user_led3",
7 X7 R8 A3 X+ D6 ?7 d  B6 o; o                .default_trigger = "default-on",+ A2 T0 H: w6 b7 E) z* q/ N3 \
        },
) B+ j5 [! t5 D$ L};2 T2 G6 X) z7 y+ g  p2 {
/ B' S  r+ x0 a1 n9 y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) g. b1 {4 l4 g9 h+ y        .leds = da850_evm_tl_leds,, }2 m6 Z% K8 j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. K5 R  |1 K2 ~
};
- {* [  i4 c; \; b' V$ N; W3 {4 v
& B1 e0 N. x9 x. Lstatic void led_dev_release(struct device *dev)
% k/ R: r% d/ Q{
$ W  Y. H* @! N( q0 _' A};
! V6 W0 Z* z2 z, ]8 A  G1 B6 S" c4 \$ g3 J# Y" a
static struct platform_device da850_evm_tl_leds_device = {
. M9 y. \$ Y2 E' _        .name                = "leds-gpio",) h5 D3 V2 S* @/ N3 n; L/ ~
        .id                = 1,; C: C- l; p1 o  Y* x. E
        .dev = {
$ e/ a. g3 B: Q2 N                .platform_data = &da850_evm_tl_leds_pdata,* u: g+ X/ P7 m/ a2 B' c+ R- ?
                .release = led_dev_release,* b1 F& r8 J8 s, Q0 V. h( t
        }9 F" N6 x, j  H+ g  r% B
};
$ Z$ F2 u  u3 |. j+ I7 a& L9 h$ k2 U' P. v. }# ?+ ]# `
static int __init led_platform_init(void)
4 R6 T$ j4 v, A! V2 B" u6 Z! x  D{/ z5 d7 r  Y3 j1 u
        int ret;
1 T( @- G" o9 H" P* j+ Z" L; a#if 0
* ~' T* p' Z  z$ S        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; @9 n5 R2 p8 R# H/ M        if (ret)
) }% K+ I! q4 ?2 R% r" y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 j% L( t7 B8 ?2 l! Z                                "%d\n", ret);5 |1 f& ?8 @/ e1 m5 u
#endif! o, z' I& ?* ^1 r
        ret = platform_device_register(&da850_evm_tl_leds_device);
9 {& I" E0 w% ^# y        if (ret)
+ H! ]0 U6 }9 Q+ Q. S  y4 s8 z: Y                pr_warning("Could not register som GPIO expander LEDS");1 [1 `% E7 J# o- q% X( Y9 `& a8 h, M
        else0 J7 e2 `+ C1 y( s' o
                printk(KERN_INFO "LED register sucessful!\n");
- U: J7 U+ B( [! D6 R" ]+ a  z7 t# a
        return ret;4 t% x7 Z5 Z! j
}
/ Q7 N1 I/ j7 I# l3 r. T" J1 i7 p$ J2 |7 z% B
static void __exit led_platform_exit(void)
' j' R) C" t: V9 `! P9 j: \9 ]{
$ b/ J7 H& s7 P        platform_device_unregister(&da850_evm_tl_leds_device);
' o  I& V6 Z9 k6 p& s6 c9 @& F1 `. k* g! a: G: h; x
        printk(KERN_INFO "LED unregister!\n");
) O+ C' g# c2 b! @) D}  C, f$ u3 Q* ]0 N+ E
6 F+ l, \! R1 U' e% a+ F, H
module_init(led_platform_init);
/ w# P: g4 L' x# w2 Y3 Gmodule_exit(led_platform_exit);
7 |( h5 b" G/ l- b- a
6 [8 a; c% ?1 N! Y; v9 ^# YMODULE_DESCRIPTION("Led platform driver");& a5 u# ?! \8 v5 C
MODULE_AUTHOR("Tronlong");- q8 M: Q7 V1 C; u/ P
MODULE_LICENSE("GPL");8 N+ E; ]& ]1 L$ a# Q9 c; S

$ ?" q$ {) h4 X* z8 ?2 _$ }4 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-5 11:09 , Processed in 0.037302 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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