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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. o" o* k: u" y6 O$ o: Y
#include <linux/init.h>$ T4 _* m; l1 k# l$ O
#include <linux/module.h>
6 Z, _. o4 `7 k. I+ y; [4 l#include <linux/kernel.h>
1 `: {% E$ o, ]2 R3 p  T/ T& U% ]0 p#include <linux/types.h>2 e! K7 `7 `' {( F) v
#include <linux/gpio.h>
" W4 ^7 h$ g3 x8 \/ d+ D6 e9 V8 X#include <linux/leds.h>: |  d% I# E  W1 j1 o: ^3 F( o
#include <linux/platform_device.h>
/ g& A3 K5 L1 e3 @2 r6 L2 l( {0 c. ^0 L" q0 Y* ]- e
#include <asm/mach-types.h>- D" M6 n  x; d# `$ [, v
#include <asm/mach/arch.h>1 {( ^. T) o5 S/ y7 a' z
#include <mach/da8xx.h>
- D- c5 m" \4 Z' m) }#include <mach/mux.h>0 W1 K3 J) A% W' j' y

( R* `1 Q5 @* y( }1 m2 ?' E#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ p, M) F4 b' \$ R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# K+ W' M  R& d& k3 s
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 O2 |, R: }: U
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) E& `* ~( B1 |

) @# ?0 `6 [/ k8 _# c8 t; u8 W4 f/* assign the tl som board LED-GPIOs*/  {, N" P# {8 _9 F7 T
static const short da850_evm_tl_user_led_pins[] = {) ^! C9 e, l0 [) r6 M% J; [
        /* These pins are definition at <mach/mux.h> file */
5 x$ ?; R5 I) C* n        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 U, ^( G2 v/ \& j        -1$ ]$ x) O* h4 @8 v3 Y' @$ t
};. _4 I. w* H2 D+ L% _+ Q5 D! d
) P! a  {( ^, z2 v% J
static struct gpio_led da850_evm_tl_leds[] = {
+ \4 `  I: G" t        {
+ D: r6 z2 x2 B2 \                .active_low = 0,
3 {- b, f7 E; E( p                .gpio = DA850_USER_LED0,2 G7 X7 M6 `& n+ m7 @" I
                .name = "user_led0",' \4 N+ [1 l; B& U' J
                .default_trigger = "default-on",
9 ?3 Y. B7 Q; J/ D        },
; O$ j' @3 {' D        {
# i6 e/ m8 d: p- P4 m; y$ {4 Z2 p6 H* q, l                .active_low = 0," Z: D9 n) O  t8 n
                .gpio = DA850_USER_LED1,
! Y7 h# W& z2 _                .name = "user_led1",
( H+ B& L; x3 s/ c4 u, ]3 K                .default_trigger = "default-on",$ |# @2 K8 U' h. V1 j: a3 x
        },
/ s" n6 y3 \8 ^5 i6 J        {
( T$ S/ v: \3 ^/ I- }- \                .active_low = 0,
" T2 ^: T" q4 T" q) z2 V, z                .gpio = DA850_USER_LED2,
% R3 B3 k- s! D8 ^                .name = "user_led2",+ I# k% l# y6 M) {) U# ^
                .default_trigger = "default-on",- u; ~  f" e# a. Z2 z- ~
        },+ s/ q% e: u& K3 x
        {- @9 M$ d6 C2 Z) j8 I  `6 o" I, k
                .active_low = 0,5 O$ }$ A1 g# t0 Z9 m; z4 @
                .gpio = DA850_USER_LED3,8 B5 t( K0 ~: F4 J& d% |8 x5 m* C
                .name = "user_led3",  s# s( p& H( @( f+ y' Z
                .default_trigger = "default-on",7 Y7 y& b' b2 R# [2 u$ l6 `/ g
        },
9 b- V& ~1 k7 o; H% E7 {};
9 ]0 k* L+ W8 s) d. x# u3 n
* ?  O  g  R" Ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- p  i1 h( X9 A
        .leds = da850_evm_tl_leds,, L9 Z' V3 Z; q1 W( E9 [
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 W! u& m: a! I  k$ b* q};
! e2 B+ H+ ^: \1 ]3 C6 S& X" a8 p- f( d6 f5 J7 a3 \1 ^
static void led_dev_release(struct device *dev)2 Q& K! b) I/ ?+ M, M8 L
{
3 p; t: z# a2 g. i  c};
1 Q9 ?: v/ |1 b, M: z! B7 I
0 T4 z! g0 ~/ q' \! wstatic struct platform_device da850_evm_tl_leds_device = {  Z) a: h3 @; @- z
        .name                = "leds-gpio",
8 y* `9 M* F0 U/ W5 u9 |        .id                = 1,0 ]# i( I6 _4 W7 j4 W" z/ e- \
        .dev = {: [% s+ @$ }* K7 \
                .platform_data = &da850_evm_tl_leds_pdata,
2 d9 a3 V& N& d+ S7 p                .release = led_dev_release,% y9 l' g, _6 ]$ n( ^
        }; t9 v4 a. }! a0 l( L. o
};
5 ^( p" L& Z$ S! Z0 Y$ l$ f) w/ L7 x) O( G
static int __init led_platform_init(void)3 R* O" O: \. {  X! u7 u
{
6 C5 _) q7 T* @, x% r        int ret;
1 z: p) Y* d+ b8 O: t#if 09 p9 @! I& p: H
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' w' \. U2 v3 C+ y        if (ret)
% `( `  n  k' ]' n# g% O9 f3 B                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( c% G. {# ]3 H2 V* N                                "%d\n", ret);
' H; l; d6 w: Q" ?# r. n#endif- R0 V3 [1 J" b  F/ X  A$ g6 m( L, e
        ret = platform_device_register(&da850_evm_tl_leds_device);' V5 e( q! ]4 Y1 c
        if (ret)
+ I  l; @) p4 {                pr_warning("Could not register som GPIO expander LEDS");
0 H( j; e$ a/ K) t4 d2 }5 |        else9 ?# v% R6 K) \  j: l1 i8 t
                printk(KERN_INFO "LED register sucessful!\n");: Y* a7 i- D6 J

5 Y+ v+ M8 x. q2 L! }, A" [        return ret;+ g0 ?0 Y% H$ q6 z2 N  O; j
}' u, I2 d- O  \+ y! y& F
! W3 h) l4 R* O$ X; f
static void __exit led_platform_exit(void)# O5 g* x$ x, u" P
{
2 _2 T: t, K- _" j  i. o& y        platform_device_unregister(&da850_evm_tl_leds_device);
/ w& ]) U& p% L! m$ c
7 _$ P0 c6 M% m7 `4 e! X        printk(KERN_INFO "LED unregister!\n");# `2 X6 Q+ z/ x3 N7 a* f% u
}, ?" b- u* N" r2 Z: d
2 u2 ^5 a& I& E, s! J! K9 }
module_init(led_platform_init);" a* {2 ~& q& e/ `
module_exit(led_platform_exit);
" }3 F4 |% j5 [+ ]! T7 K/ E/ @* V* M  S& _+ F- {' W& k3 w
MODULE_DESCRIPTION("Led platform driver");
# S: k" c7 T$ s% PMODULE_AUTHOR("Tronlong");, g1 }% t2 K% b0 j
MODULE_LICENSE("GPL");' |* U6 }9 D9 @& ]6 x

8 i* p* v* t) K6 N: L# x$ K  O. E- H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-28 00:44 , Processed in 0.036280 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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