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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 [2 \+ z# v+ I8 g" b  a' H# f#include <linux/init.h>
* @2 Q5 g1 V* m; @& O( ]7 R#include <linux/module.h>; j0 c+ q# f$ h! y: D
#include <linux/kernel.h>
. |9 \& |" R4 B2 x& K8 F: j#include <linux/types.h>" x% G1 ^% E; N
#include <linux/gpio.h>
6 ]  m# D4 P, Q" I. g5 X, q#include <linux/leds.h>! R: E1 Z  u, X, [, b1 s
#include <linux/platform_device.h>; Z( q8 l8 m  ~& w

8 A/ y$ i  U: X* i# ^7 L" J#include <asm/mach-types.h>
, a7 e& M, J' W9 V. e9 U#include <asm/mach/arch.h>1 f; w* L/ [1 Y7 h4 z8 W) h! O
#include <mach/da8xx.h>" U5 W& {$ b) V6 H* N- s$ p0 S
#include <mach/mux.h>
' o7 \: o1 \- J  O. o# r) x3 s) G9 ]7 D( j* L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) W* r$ g5 p9 ?( G1 S; J: h+ ?- w#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) i  e4 {* q" A6 D! u
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 s- f% g5 ~& t0 h2 t#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" i! n1 \/ D' a! |( J9 A
# @: h6 t( `+ X# q6 c/ d1 h/* assign the tl som board LED-GPIOs*/
7 H. H% h6 r. _4 y; E' Z- `* Ustatic const short da850_evm_tl_user_led_pins[] = {* T4 t: I; f& L
        /* These pins are definition at <mach/mux.h> file */: L$ \5 i9 U' O& V+ o
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 A' H" x' s/ s; B" m2 Z
        -1- ?9 S' b# g- M# L
};
- u- [3 I' A: f2 u- p4 o6 r4 `2 _" @# r3 o1 J4 N% m
static struct gpio_led da850_evm_tl_leds[] = {
3 S- K7 Y: ~0 f7 p& f" I' {4 b, k        {4 e5 g1 }. C& V" q2 y/ G' K
                .active_low = 0," E. O# f. Q" g
                .gpio = DA850_USER_LED0,/ U+ k% Q8 e% o1 Z. H7 P- j; f+ ?
                .name = "user_led0",$ c/ I: I$ I  k. e2 r. s
                .default_trigger = "default-on",
  V! p/ ~* u$ T8 R) l        },& Z( L  w  I$ O- V) i+ C+ U
        {
5 I+ u& v. k2 @  T$ ?5 H  _1 E                .active_low = 0,% \% \8 v* ?- @8 l" [+ v
                .gpio = DA850_USER_LED1,
7 D2 q1 f+ U9 G; J% c                .name = "user_led1",
$ F, V' S; F9 v% E# T# Q                .default_trigger = "default-on",
$ v* h& c; m9 M# {1 g1 ?        },
% g1 _, I3 R& h. E        {
) w2 w8 _4 T( }- X' ]3 Q                .active_low = 0,1 `! u$ g5 M% u, x7 x
                .gpio = DA850_USER_LED2," z+ O/ H- \# O2 L
                .name = "user_led2",  K- i' }/ W, j
                .default_trigger = "default-on",0 \- f' x' o2 I9 U3 W9 m8 D
        },$ H) c8 s, Y3 R, O" F) x
        {
" z" ~& ~7 v0 M) n1 ~0 f3 }5 t                .active_low = 0,* B( F+ l) w) x$ l( Q0 h
                .gpio = DA850_USER_LED3,7 L( r6 \0 T  C" R" ^; W
                .name = "user_led3",
, J) V2 t. ?9 G3 A                .default_trigger = "default-on"," h$ [) f7 U& l$ y0 B4 K% }
        },# ^7 e9 X9 }# n2 @. N
};
  A1 e) J; a! Y8 b0 a+ M1 V% }
# _* H2 n  N' b" I( T  g! ~* H; {; H7 jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' q8 W! D+ m5 t. @
        .leds = da850_evm_tl_leds,
, g/ X7 Y0 X7 S7 E( e        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. a+ j/ M1 A4 Y2 }8 x2 x- A};7 }3 G5 O& e9 `  i- X) \+ H/ ?

0 D0 Q1 _2 N' n: H/ p* D+ Vstatic void led_dev_release(struct device *dev)9 ~6 o  f) H' I; I/ J; M% q
{
! G2 x* Y1 y+ j};
# j* i/ Q4 I. Y4 z- [
5 I, M" T8 H! @! @; V4 ]% R- @9 B2 Sstatic struct platform_device da850_evm_tl_leds_device = {
1 f, Q# K4 g2 l8 E& N9 L: I; V" p$ W        .name                = "leds-gpio",
  H) V. t; @  C6 c        .id                = 1,3 y" d  \8 I$ ]- [7 z4 F5 `2 r) [
        .dev = {! z* N' [! r- i0 A
                .platform_data = &da850_evm_tl_leds_pdata,) W& j! s2 y& N% t3 d3 M+ d9 Q
                .release = led_dev_release,
2 Z1 r5 a/ x+ g' z        }# P. u; j( f/ i3 e: Z, z/ `4 O
};. N& V% s' R9 R

, l- A# B+ Z! E  [static int __init led_platform_init(void)( U+ o; A0 i3 u3 v5 g9 {- i
{+ V" b  Q1 i" l3 A1 @
        int ret;8 Q/ k+ E5 N  M' R) y! q$ U3 E
#if 0
$ m0 p3 {) ~  T0 N1 J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" z& e+ ~' b$ W8 f2 e
        if (ret)0 i# \7 Q+ v- G! |' M# L: D
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 h% I- i0 C7 r/ i: C0 T, @
                                "%d\n", ret);
% V( F6 m$ I7 B, {#endif5 y. J( R4 r- {4 N: ?
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 S. Z. w5 Y: g        if (ret)
1 @, F. p8 s  q; y( z                pr_warning("Could not register som GPIO expander LEDS");
4 j! L; |1 M/ ?& o" d& ], c# m        else
1 b4 M2 W' l' H, K9 Z                printk(KERN_INFO "LED register sucessful!\n");
4 V, [) U: S6 F. p2 {0 v
6 ?( O" R0 H; ?7 e: d& o! }& Z) _# v        return ret;7 g5 [; \7 p% N
}/ i1 }5 |/ k' f; `. X/ C+ ~# b. z
0 s% W6 I2 M7 H! O$ B
static void __exit led_platform_exit(void)9 n1 Y. V+ o. R! Y
{) V; z1 x# T* F0 R! U8 Z1 a1 q" f
        platform_device_unregister(&da850_evm_tl_leds_device);
  f9 C) z; M/ u7 Q) E+ \6 W  k* ^8 {
        printk(KERN_INFO "LED unregister!\n");* T/ D: Y; j" A- {# W9 l& v
}, r$ U8 Z$ a% ~# ?
* Q0 O# O7 Q5 q
module_init(led_platform_init);3 u2 d; e& C2 I# J3 |, z  F
module_exit(led_platform_exit);! t' _# W7 @' Y* h9 G

# O  z3 m) T9 G: g& ?. P" vMODULE_DESCRIPTION("Led platform driver");/ K0 c2 A, V! r
MODULE_AUTHOR("Tronlong");' T- {2 H! B' {9 `' a+ I2 J+ N
MODULE_LICENSE("GPL");; `6 I( j/ t3 P2 }* G; y

. r% d6 B0 S& i+ K9 V1 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-13 13:12 , Processed in 0.040966 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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