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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# y( O0 D7 q9 C& g) V& R
#include <linux/init.h>* m* n) k" ]& B8 w, G; ?
#include <linux/module.h>8 h/ @9 r( N+ S/ R/ h0 X
#include <linux/kernel.h>
/ z$ }4 S' Q& T1 f/ v% p% T$ j: a#include <linux/types.h>$ z: O' g) X# G) D7 C' L
#include <linux/gpio.h>
, Q& q3 p& y1 u#include <linux/leds.h>$ d! f+ k) j3 v2 d. p6 Y
#include <linux/platform_device.h>2 Z% r& L! T2 d; [, A7 L
. k* I: a5 ~* c* p0 ]
#include <asm/mach-types.h>) x' S- |- s( Y2 t+ w" v
#include <asm/mach/arch.h>8 F3 r  A1 k' |: w* X. D
#include <mach/da8xx.h>2 F9 j1 r! O* a' s1 L* i6 l# O2 c2 J# T
#include <mach/mux.h>/ t  w# E1 R+ J' h+ r; _

' A/ _6 Z2 h7 D3 b# F- }* W) Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; y3 d7 |5 E. m9 H5 o4 f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% v: g! D5 ]2 }- t- H  r' P; i' A3 V9 m#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) o8 G, h) @! G* a" p  R
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 ?, d3 w# r7 J0 S" V/ T2 L; `: _% H" T8 G: F* J6 G
/* assign the tl som board LED-GPIOs*/; T6 v, r, i# o/ {1 R: W5 I' Z
static const short da850_evm_tl_user_led_pins[] = {
7 ~7 W# I3 }6 [( a, a# i7 Q; A" g        /* These pins are definition at <mach/mux.h> file */2 V% q2 r7 S6 r5 _; r
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) `  |! f" \3 b" [, f1 W8 R, |        -13 f4 a+ U: x/ x
};* F+ N! M5 j+ ]6 n6 |; r

$ ~- ]; {0 y) M& \4 Y7 Gstatic struct gpio_led da850_evm_tl_leds[] = {8 P: Z9 v+ m4 V
        {5 z! X; k' w8 q4 E8 e4 N- U0 D
                .active_low = 0,/ f" t, X4 l1 u+ S6 H1 |
                .gpio = DA850_USER_LED0,7 z8 h9 Y8 T, O  H) d1 S
                .name = "user_led0",0 S+ j" D' q5 x+ x
                .default_trigger = "default-on",0 g! f: s- S! b# f8 s2 Y! i# ^
        },
4 p/ j- u9 Y& p) a& H        {
' F5 O6 A8 I4 k  j3 E% o                .active_low = 0,
; c4 _8 R5 C3 f) q$ u  ?                .gpio = DA850_USER_LED1,
* m2 i8 S& P4 j4 C# a                .name = "user_led1",7 N& r) e  n  X: T2 f; k
                .default_trigger = "default-on",
# E0 [% l7 s( P( g        },0 b4 N. R' s( Z: P$ V& ]( s1 {: t
        {
$ C* _% s  B; B1 F                .active_low = 0,
' g7 p7 D3 e9 a& _( j- `+ K  k) o                .gpio = DA850_USER_LED2,9 O2 L$ x% Z9 ^% G/ g8 o; f" f: m
                .name = "user_led2",
  T$ F0 w% `5 p$ K# R9 B                .default_trigger = "default-on",/ g( Z+ g0 K9 b
        },8 X$ i8 b5 h5 N9 h
        {" @' K. ?) ^) r4 Y0 l7 C  w
                .active_low = 0,
6 w5 [; X; o+ [1 A1 T6 X& {! y7 i& Q                .gpio = DA850_USER_LED3,
/ F" g0 P" ?5 L3 j5 n# v7 h                .name = "user_led3",  l4 r4 s' F, N& P# P3 ?
                .default_trigger = "default-on",+ }& I4 ]4 s- L# x9 \
        },
' P+ b2 l7 g0 p4 R};+ a) @) r. Q9 |3 I' w0 \8 ^

# A4 b, `5 J3 N- E; k0 j8 J$ ?* Astatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 t: n5 X7 m8 g/ L/ ~        .leds = da850_evm_tl_leds,
0 r, o$ ?4 V# R2 b; t        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 \' Z+ v- w0 J, Y# R};8 \5 V* z& |5 ]3 H, o
" {- E; J1 {! M4 }; @
static void led_dev_release(struct device *dev)
6 _( t, o6 i' U4 f5 A; A, U9 R{* P% _, K( H% c5 ^# N
};$ l4 R. s/ L2 m

. m* p  _  ^! T) K! Bstatic struct platform_device da850_evm_tl_leds_device = {2 n1 C5 t! B- h! O
        .name                = "leds-gpio",
! \0 s' j7 K2 ?        .id                = 1,
! C/ t! k" n8 K7 k5 \        .dev = {9 _( n- w: _1 H& d. o) `6 P
                .platform_data = &da850_evm_tl_leds_pdata,6 a# u/ G% r, B
                .release = led_dev_release,  W/ w2 |/ C- z- Z1 v
        }% _+ v; A* ?8 W& L4 a
};: \/ @# N5 l* K/ w: t" e
5 W: ^2 o2 J8 S
static int __init led_platform_init(void)
4 ~& z. E' ]9 V7 C7 k/ T0 m{
4 F! A+ _" v8 o2 b        int ret;
/ f( i4 M& |/ g, o#if 0% s, Z& K6 }% s. B! I. V+ H
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: L# v  D+ e1 K; h        if (ret)
+ v: ~; Y7 \- q! Z! p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ P# ^) @, F* {: U$ y                                "%d\n", ret);
& O, [9 L% C3 K, Q#endif" M6 b# R  v% Q1 p; K7 K
        ret = platform_device_register(&da850_evm_tl_leds_device);1 L! l9 R6 ^. J; w9 i4 i
        if (ret)
6 ~' g+ [  f9 ?) J6 d' X( O/ V                pr_warning("Could not register som GPIO expander LEDS");
+ D$ @* s5 c5 n% q( C& ~4 j7 r        else
. L+ d2 t# c; f                printk(KERN_INFO "LED register sucessful!\n");3 v) q" @! V% v+ e1 M- K+ \; {
( }% W: @/ G8 c# ^* ]
        return ret;
/ _# H- W  ^+ h" c  c" k}
+ W7 h, z: |( F2 B
; @8 k9 v  e) F7 lstatic void __exit led_platform_exit(void)
" g: G9 m) M+ e{
5 V+ _* B* b- U3 X. M) j        platform_device_unregister(&da850_evm_tl_leds_device);2 P& v- U! y6 k0 I; f1 }
3 Q7 j# h+ O# q
        printk(KERN_INFO "LED unregister!\n");
$ F, o: L7 w# I}
7 [4 a1 }" A! e5 k& H* l/ h: _; Q9 W7 c, z# m
module_init(led_platform_init);
+ Z2 J( A. f& g& W8 ?module_exit(led_platform_exit);+ Y0 M4 O7 z$ {1 H- }

. [0 |- I) D( m9 M( `  oMODULE_DESCRIPTION("Led platform driver");/ y$ Q- X  h/ r! f3 `
MODULE_AUTHOR("Tronlong");
( n: }3 S# n. s0 J' r8 g3 Q6 D9 h* mMODULE_LICENSE("GPL");. u6 k& s& x8 z, `) _

  l  s8 D  M! h: x% [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 15:34 , Processed in 0.039818 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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